В этой статье разберем настройку сети в Ubuntu 18.04|20.04|21.04. Настройку будем производить через утилиту netplan.
Не забываем о синтаксисе данного файла. !!! Табуляция не используется и количество пробелов должно быть одинаково для одноименных категорий !!!
Сперва давайте определим какие интерфейсы у нас присутствуют в системе:
ip a
или
ifconfig -a
- необходимо установить утилиту net-tools
Вывод команды покажет все имеющиеся в системе сетевые интерфейсы. Вот пример вывода:
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 14:d6:4d:56:b8:5a txqueuelen 1000 (Ethernet)
RX packets 2087766 bytes 2768743733 (2.7 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1996135 bytes 201457120 (201.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 10:78:d2:76:39:b3 txqueuelen 1000 (Ethernet)
RX packets 10585 bytes 2371990 (2.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16067 bytes 18280327 (18.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 10:78:d2:76:39:b3 txqueuelen 1000 (Ethernet)
RX packets 87766 bytes 68743733 (12.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13819 bytes 12743733 (12.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 242 bytes 35780 (35.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 242 bytes 35780 (35.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Настройки локальной сети. Динамический IP-адрес (DHCP)
Отредактируйте файл конфигурации netplan который находится в директории /etc/netplan/
. При открытии он должен выглядеть примерно так:
network:
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
dhcp6: true
version: 2
тут интерфейс enp0s3 настроен на автоматическое получение IP-адреса от DHCP сервера.
Настройки локальной сети. Статический IP-адрес.
Для локальной сети в которой используются статические ip-адреса подойдет следующая конфигурация:
network:
renderer: networkd
ethernets:
enp0s3:
addresses:
- 10.5.5.10/24
gateway4: 10.5.5.1
nameservers:
addresses: [10.5.5.1, 8.8.4.4]
search: [dom, mydomain]
optional: true
version: 2
Настройки беспроводной сети. Динамический IP-адрес.
Для корректной работы беспроводного интерфейса вам потребуется установить утилиту WPA supplicant, которая позволяет подключиться к точкам доступа с WPA и WPA2:
sudo apt install wpasupplicant
Добавьте новый файл конфигурации в каталог /etc/netplan/:
sudo nano /etc/netplan/02-wifi.yaml
Отредактируйте файл конфигурации беспроводной сети с динамическим ip-адресом (DHCP):
network:
version: 2
renderer: networkd
wifis:
wlp3s0:
dhcp4: yes
dhcp6: no
access-points:
"network_ssid_name":
password: "**********"
Настройки беспроводной сети. Статический IP-адрес.
Для беспроводной сети в которой используются статические ip-адреса подойдет следующая конфигурация:
network:
version: 2
renderer: networkd
wifis:
wlp3s0:
dhcp4: no
dhcp6: no
addresses: [10.5.5.10/24]
gateway4: 10.5.5.1
nameservers:
addresses: [10.5.5.1, 8.8.4.4]
access-points:
"network_ssid_name":
password: "**********"
Применение конфигураций
Используйте netplan для генерации необходимой конфигурации:
sudo netplan generate
Для подробного вывода информации при генерации, используйте опцию —debug:
sudo netplan --debug generate
Далее сохраняем изменения:
sudo netplan try
Пример конфигурации локальной сети с метриками
network:
version: 2
renderer: networkd
ethernets:
id0:
match:
macaddress: 00:11:22:33:44:55
wakeonlan: true
dhcp4: true
addresses:
- 192.168.14.2/24
- 192.168.14.3/24
- "2001:1::1/64"
gateway4: 192.168.14.1
gateway6: "2001:1::2"
nameservers:
search: [foo.local, bar.local]
addresses: [8.8.8.8]
routes:
- to: 0.0.0.0/0
via: 11.0.0.1
table: 70
on-link: true
metric: 3
routing-policy:
- to: 10.0.0.0/8
from: 192.168.14.2/24
table: 70
priority: 100
- to: 20.0.0.0/8
from: 192.168.14.3/24
table: 70
priority: 50
lom:
match:
driver: ixgbe
set-name: lom1
dhcp6: true
switchports:
match:
name: enp2*
mtu: 1280
wifis:
all-wlans:
match: {}
access-points:
"Joe's home":
password: "s3kr1t"
wlp1s0:
access-points:
"guest":
mode: ap
bridges:
br0:
interfaces: [wlp1s0, switchports]
dhcp4: true
Вот ещё пример
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
match:
macaddress: 02:70:4e:c8:68:e9
enp0s8:
dhcp4: false
addresses: [192.168.33.10/24]
routes:
- to: 0.0.0.0/0
via: 192.168.33.1
metric: 50
[endtxt]