Как я понял, теперь в Ubuntu 18.04 за основную утилиту для настройки сетевых настроек из командной строки — это netplan. Настройка работы интерфейсов сводится к правильному конфигурированию через абстракцию YAML.
На заметку: При настройке конфигурационного файла netplan
самое глачное не использовать символы табуляции, только символы пробела. Именно это и есть абстракция использования YAML (Yet Another Markup Language» — «Ещё один язык разметки»)
ekzorchik@srv-bionic:~$ sudo apt remove ifupdown -y
Отобразить все сетевые интерфейсы системы:
ekzorchik@srv-bionic:~$ ifconfig -a
- интерфейс в выводе: epn0s3 → это сетевой интерфейс на который настроена система
- интерфейс в выводе: lo → интерфейс обратной петли (loopback)
Если система установлена, а интерфейс не назначен системой или системе, то при просмотре конфигурационного файла утилиты netplan
содержимое ничего не содержит, нужно его сформировать:
ekzorchik@srv-bionic:~$ sudo netplan generate
Чтобы установить статический IP-адрес:
ekzorchik@srv-bionic:~$ sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
# имя сетевого интерфейса
enp0s3:
# активация или дезактивация получения настроек от DHCP-сервиса для IPv4
# можно указывать, как no/yes так и true/false
dhcp4: no
# активация или дезактивация получения настроек от DHCP-сервиса для IPv6
# можно указывать, как no/yes так и true/false
dhcp6: no
# установка статического адреса с указанием действующей маски подсети
addresses: 172.40.40.25/24
# установка шлюза для IPv4 (по умолчанию)
gateway4: 172.40.40.1
# установка DNS-серверов, если в доменной сети, то указываем IP адреса контроллеров домена, если без домена, то адрес Вашего маршрутизатора или же публичные DNS: 8.8.8.8, 8.8.4.4 или DNS провайдера.
nameservers:
addresses: [172.40.40.1,172.40.40.8]
Не забываем сохранить внесенные изменения и применить:
ekzorchik@srv-bionic:~$ sudo netplan apply
Error in network definition //etc/netplan/01-netcfg.yaml line 7 column 14: expected sequence
Если в файле конфигурации присутствует ошибка она будет выведена на консоль и ее нужно исправить т.к. изменения не будут применены. Подсказка: седьмая строка и четырнадцатый символ в моем случае.
Addresses: [172.40.40.25/24]
→ нужны квадратные скобки
Итоговый конфигурационный файл:
network:
version: 2
# Выбор сетевого рендера. Выбран networkd
renderer: networkd
# Блок с настройкой сетевых интерфейсов
ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [172.40.40.25/24]
macaddress: 08.00.27.28.31.1f
gateway4: 172.40.40.1
nameservers:
addresses: [172.40.40.1]
Чтобы установить динамический IP-адрес:
ekzorchik@srv-bionic:~$ sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
dhcp6: no
ekzorchik@srv-bionic:~$ sudo netplan apply
На заметку: как всегда расширенную информацию по использованию следует черпать в справочном файле: ekzorchik@srv-bionic:~$ man netplan
Чтобы установить несколько сетевых интерфейсов, то их можно либо разбить, как каждый конфигурационный файл с расширением yaml
или все указать в едином. Просто начав с новой строки именованием второго или более сетевым интерфейсом:
ekzorchik@srv-bionic:~$ sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
dhcp6: false
enp0s4:
dhcp4: no
addresses: [172.40.40.26/24]
gateway4: 172.40.40.1
nameservers:
addresses: [8.8.8.8]
dhcp6: no
ekzorchik@srv-bionic:~$ sudo netplan apply
Чтобы проверить правильность конфигурационного файла на ошибки:
ekzorchik@srv-bionic:~$ sudo netplan try
Warning: Stopping systemd-networkd.service, but it can still be activated by:
systemd-networkd.socket
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 118 seconds
Configuration accepted.
И если все правильно сказать системе нажатием клавиши Enter применить их.
А после проверяем, что интерфейс поднялся и получил или был назначен:
ekzorchik@srv-bionic:~$ sudo ifconfig -a
Установить сетевой интерфейс использую NetworkManager если настройка ведется через интерфейс wifi:
ekzorchik@navy:~$ sudo nano /etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: NetworkManager
wifis:
wlp3s0:
dhcp4: no
addresses: [172.40.40.7/24]
gateway4: 172.40.40.1
nameservers:
addresses: [172.40.40.1,8.8.8.8]
access-points:
ekzorchik:
password: "Aa1234567"
ekzorchik@navy:~$ sudo netplan apply
ekzorchik@navy:~$ sudo ifconfig -a | egrep -E "wlp3s0|inet"
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.40.40.7 netmask 255.255.255.0 broadcast 172.40.40.255
inet6 fe80::96d1:8a4e:ed15:9be8 prefixlen 64 scopeid 0x20<link>
И если все правильно указано для подключения к точке доступа, то интерфейс поднимется и подключиться к Wi-Fi и в зависимости от настроек получит сетевой адрес, как у меня. Для справки Wi-Fi подключение работает на базе Mikrotik. Скорее всего у Вас также как у меня при подключении к Wi-Fi сетевой адрес выдает от DHCP-сервиса и тогда конфигурационный файл можно сократить до вида:
network:
version: 2
renderer: NetworkManager
wifis:
wlp3s0:
dhcp4: yes
access-points:
ekzorchik:
password: "Aa1234567"
Дабы не мудрить с правильность настройки конфигурационного файла под интерфейса за основу можно взять один из примеров прилагаемых вместе с утилитой netplan:
ekzorchik@navy:~$ ls /usr/share/doc/netplan.io/examples/
bonding_router.yaml direct_connect_gateway.yaml static.yaml
bonding.yaml loopback_interface.yaml vlan.yaml
bridge_vlan.yaml network_manager.yaml windows_dhcp_server.yaml
bridge.yaml source_routing.yaml wireless.yaml
dhcp.yaml static_multiaddress.yaml
ekzorchik@navy:~$ sudo cp /usr/share/doc/netplan.io/examples/wireless.yaml /etc/netplan/01-networkd.yaml
На заметку: любой настроечный файл в каталоге /etc/netplan
будет обрабатываться утилитой netplan имеющий расширение yaml.
Вот мой рабочий конфиг с ноутбука Lenovo E555 системы Ubuntu 18.04 Desktop amd64, если нажать клавишу F8 то выключаем Wi-Fi, если подключен кабель ethernet, то настройки автоматически присваиваются и интернет и локальная сеть есть, если вытаскиваю кабель, а включаю Wi-Fi то также интернет есть, если оба интерфейса включены то интернет также есть:
ekzorchik@navy:~$ sudo nano /etc/netplan/01-networkd.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: yes
wifis:
wlp3s0:
dhcp4: yes
access-points:
ekzorchik:
password: "Aa1234567"
ekzorchik@navy:/etc/netplan$ sudo netplan apply
На заметку: в файле ekzorchik@navy:~$ cat /etc/network/interfaces
все закомментировано, за исключением:
auto lo
iface lo inet loopback
Итого, я для себя разобрал, как настраивается сетевой интерфейс(ы) через утилиту netplan в системе Ubuntu 18.04 независимо от используемой редакции, как Server или Desktop. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.