В большинстве сетевых конфигураций DHCP-сервер по умолчанию назначает IP-адрес динамически. Но в некоторых ситуациях удобнее, когда IP-адрес остается неизменным всегда. В этом вам помогут статические IP.
Шаг 1
Для начала необходимо узнать имя интерфейса, которому мы будем присваивать статический IP. Это можно сделать с помощью команды
ip a
Пример вывода:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 50:50:50:5e:53:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.122.213/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 3547sec preferred_lft 3547sec
inet6 fe80::20b7:e59b:9d09:b9a1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Интерфейс = enp1s0, текущий IP = 192.168.122.213/24
Шаг 2
Netplan - это инструмент управления сетью по умолчанию в последних версиях Ubuntu. Конфигурация Netplan хранится в YAML-файлах.
Пробелы являются частью синтаксиса в конфигурационных файлах Netplan, поэтому будьте осторожны с ними.
Конфигурация хранится в директории /etc/netplan
. Зайдите в нее и посмотрите, какие .yaml файлы там храняться. Дефолтное название файла конфигурации - 01-network-manager-all.yaml
, но название может быть и другим.
Если ни одного .yaml файла там нет, то вы можете создать его сами. Имя может быть любым, но по соглашению, оно должно начинаться с цифры, например 01.
Я напишу такой 01-network-manager-all.yaml
файл:
network:
version: 2
renderer: NetworkManager
ethernets:
enp1s0:
dhcp4: no
addresses: [10.0.0.11/20]
routes:
- to: default
via: 10.0.0.1
nameservers:
addresses: [10.0.0.1]
network:
- блок начала конфигурационного файла
renderer: NetworkManager
- указали сетевого менеджера, который будем использовать. Это может быть NetworkManager или networkd.
enp1s0:
- указываем интерфейс, которому будем присваивать статический IP и который мы определили на шаге 1.
dhcp4: no
- отключаем DHCP IPv4. Если нужно отключить для IPv6, то используем dhcp6:
addresses: [10.0.0.11/20]
- статический IP, который задаем на интерфейс.
В блоке routes:
определяем адрес gateway. В более ранних версиях Ubuntu gateway задается по-другому: gateway4: 10.0.0.1
В блоке nameservers:
определяем адрес DNS-сервера.
Шаг 3
Применяем изменения.
sudo netplan try
При вводе этой команды изменения сначала будут протестированы. Если ошибок не будет, то вас спросят хотите ли вы принять изменения.
Шаг 4
Остается только проверить, что изменения вошли в силу. Это можно сделать командой с первого шага:
ip a