Настройка сети в Ubuntu 18.04 LTS
04.01.2020
Теги: CLI • Linux • Ubuntu • Команда • Конфигурация • ЛокальнаяСеть • Настройка
Начиная с Ubuntu 17.10, для управления конфигурацией сети используется утилита Netplan
. Раньше для этих целей применялся скрипт ifupdown
, конфигурационные файлы которого находились в папке /etc/network/interfaces
. Недостатком такого подхода было то, что файлы настройки сети были разбросаны по всей системе, частью настроек мог управлять NetworkManager
, частью systemd-networkd
, а часть вообще делалась с помощью ifupdown
.
Все конфигурационные файлы Netplan
находятся в папке /etc/netplan/
. Во время запуска службы, она преобразовывает свою конфигурацию в конфигурацию той службы, которая будет управлять сетью и помещает её в каталог /run/
. По умолчанию в Ubuntu Desktop есть только один конфигурационный файл со следующим содержимым:
$ cat /etc/netlan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Первые две строчки конфигурации стандартны. Первая указывает, что мы будем иметь дело с сетью, а вторая указывает версию стандарта конфигурации, которая будет использоваться. Третья строка означает, что управление всей сетью передаётся утилите NetworkManager
.
Примеры конфигурации
Сначала нужно посмотреть, как называются сетевые интерфейсы в системе:
$ ls /sys/class/net enp0s3 lo
Интерфейс enp0s3
получает все настройки от DHCP-сервера:
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes
Изменим этот файл конфигурации, назначим вручную DNS-сервера:
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes nameservers: addresses: - 8.8.8.8 - 8.8.4.4
Формат YAML допускает блочный и строчный формат для списков:
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes nameservers: addresses: [8.8.8.8, 8.8.4.4]
Переопределим часть настроек, которые приходят от DHCP-сервера:
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes dhcp4-overrides: use-dns: no use-domains: no nameservers: addresses: [8.8.8.8, 8.8.4.4]
Теперь для интерфейса enp0s3
назначим статический ip-адрес:
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.10/24] # список IP-адресов, которые нужно присвоить интерфейсу gateway4: 192.168.1.1 # адрес роутера, чтобы компьютер имел выход в интернет nameservers: addresses: [8.8.8.8, 8.8.4.4]
Кроме проводного подключения, система конфигурации Netplan
умеет управлять подключением к Wi-Fi. Например, у нас есть точка доступа AccessPoint
с паролем qwerty
и мы хотим к ней подключаться:
network: version: 2 renderer: NetworkManager wifis: wlp0s3: dhcp4: yes nameservers: addresses: [8.8.8.8, 8.8.4.4] access-points: "AccessPoint": password: "qwerty"
networkd
надо, чтобы в системе был установлен пакет wpa_supplicant
, который обеспечивает поддержку WEP, WPA и WPA2.
Пример задания маршрута по умолчанию и еще одного:
network: version: 2 renderer: NetworkManager ethernets: enp0s3: addresses: [192.168.110.2/24] #gateway4: 192.168.110.1 routes: - to: 0.0.0.0/0 # маршрут по умолчанию via: 192.168.110.1 - to: 192.168.30.0/24 # еще один маршрут via: 192.168.110.8
Директива gateway4
в настоящее время считается устаревшей и вместо нее рекомендуется использовать блок routes
.
routes: - to: default # маршрут по умолчанию via: 192.168.110.1
Применение конфигурации
Теперь нужно проверить конфигурационный файл на ошибки и файлы конфигурации NetworkManager
(для Ubuntu Desktop) или networkd
(для Ubuntu Server). Для этого предназначена утилита netplan
:
$ netplan опции команда
Команда может быть:
try
— попытка применить новый YAML-файл к работающей системе и откат назад при неудачеapply
— применить новый YAML-файл к работающей системе (после успешного выполненияtry
)generate
— создать файлы конфигурацииNetworkManager
илиnetworkd
на основе/etc/netplan/*.yaml
$ netplan --help usage: /usr/sbin/netplan [-h] [--debug] ... Network configuration in YAML optional arguments: -h, --help show this help message and exit --debug Enable debug messages Available commands: help Show this help message apply Apply current netplan config to running system generate Generate backend specific configuration files from /etc/netplan/*.yaml info Show current netplan version and available features ip Retrieve IP information from the system try Try to apply a new netplan config to running system, with automatic rollback
Сначала проверяем YAML-файл(ы) на ошибки:
$ sudo netplan try
Если новая конфигурация успешно применилась к работающей системе, netplan
предложит так и оставить, без отката назад.
Do you want to keep these settings? Press ENTER before the timeout to accept the new configuration Changes will revert in ..... seconds
Применяем YAML-файл(ы) к работающей системе. При этом netplan
создает все необходимые файлы конфигурации NetworkManager
или networkd
и при необходимости перезапускает эти службы, чтобы применить эти новые файлы.
$ sudo netplan apply
Можно просто записать файлы конфигурации NetworkManager
или networkd
на диск, тогда потребуется вручную перезапустить службу.
$ sudo netplan generate $ sudo systemctl restart NetworkManager.service # для Ubuntu Desktop $ sudo systemctl restart system-networkd.service # для Ubuntu Server
Дополнительно
Поиск: Linux • Ubuntu • Локальная сеть • Netplan • NetworkManager • networkd • ifupdown • CLI • Конфигурация • Настройка