Настройка сети в Ubuntu 18.04 через Network Manager

Утилиты и команды для настройки сети в Ubuntu 18.04. В данном посте я расматриваю способы подключения через Network Manager, Wicd, WPA Supplicant.

Пакеты:

Существует несколько способо управлять сетью в Ubuntu. Через Wicd, Network Manager, WPA Supplicant, ifupdown, ifconfig и т.д. Я рекомендую использовать Wicd. Потому что большинство задач он решает. Особенно для ноутбуков. 

Network Manager может потребоваться, если вы хотите одновременно подключится по wifi и по локальной сети, или раздвать интернет с wifi в локальную сеть. При этом у wicd убрать управление Ethernet и дать это управление Network Manager.

Network Manager — пакет, который позволяет подключаться к WiFi и управлять сетевыми подключениями. Он позволяет автоматически выполнять переподключение к WiFi, если сеть недоступна по какой-то причине.
nmcli — Команда управления Network Manager
nm-tray — Иконка в трее
nm-connection-editor — Интерфейс для управлением соединений
ifupdown — Стандартный пакет для /etc/network/interfaces

Управление через Wicd

Установка:

apt install wicd

Wicd управляет WiFi. В принципе этого достаточно для ноутбука. Wicd будет автоматически запускаться при старте системы. Этот пакет создает файл /usr/share/applications/wicd.desktop. Если автозапуск не происходит, то нужно скопировать этот файл в домашнюю папку ~/.config/autostart.

cp /usr/share/applications/wicd.desktop ~/.config/autostart/wicd.desktop

Настройка через Network Manager

Установка:

apt install network-manager nm-tray network-manager-gnome

Измените файл /etc/NetworkManager/NetworkManager.conf

[main]
#auth-polkit=false
plugins=ifupdown,keyfile
dns=none

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

В файле /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf пропишите

[keyfile]
#unmanaged-devices=*,except:type:wifi,except:type:wwan
unmanaged-devices=type:bridge,interface-name:lxc*,interface-name:docker*,interface-name:virtual*

Этот файл задает какие интерфейсы будут управляться Network Manager. Запрещаем управлять мостами lxc, lxd, docker и virtualbox. Возможно нужно прописать еще. Локальной сетью и wifi разрешаем управлять. Более подробнее о командах здесь

Если у вас установлен Wicd, то добавьте через запятую type:wifi. Это позволит запретить Network Manager'у управлять WiFi соединениями.

Команды Network Managment

Посмотреть список устройств, которыми можно управлять nmcli d

DEVICE      TYPE      STATE      CONNECTION
wlp3s0      wifi      connected  MyWiFi
enp2s0      ethernet  connected  Eth0
lxcbr0      bridge    unmanaged  --
virtualbox  bridge    unmanaged  --
lo          loopback  unmanaged  --

Если стоит unmanaged, то Network Managment не может управлять устройством.

Посмотреть список соединений nmcli c

NAME     UUID                                  TYPE      DEVICE
MyWiFi   118f13de-b635-4332-9ef4-8151dfb5068f  wifi      wlp3s0
Eth0     f74f8a7a-ca6c-4d94-9c57-0ce7b37fd439  ethernet  enp2s0

Это список соединений, для подключений. Этот список можно расширять через команды консоли, или через интерфейс nm-connection-editor.

Подключиться к определенной сети:

nmcli c up Eth0

Отключиться от сети;

nmcli c down Eth0

Локальная сеть в Network Manager

Чтобы создать новую сеть, выполните команду:

nmcli connection add type ethernet con-name Eth0 ifname enp2s0

Эта команда создаст файл /etc/NetworkManager/system-connections/Eth0. Поправьте его до следующей конфигурации:

[connection]
id=Eth0
uuid=f74f8a7a-ca6c-4d94-9c57-0ce7b37fd439
type=ethernet
interface-name=enp2s0
permissions=

[ethernet]
mac-address-blacklist=

[ipv4]
dns-search=
method=auto
route-metric=100

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
route-metric=100

Обратите внимание на параметр route-metric=100 в конфигах.

Route metric — это приоритет в таблице машрутизации, куда будут отправлены пакеты для выхода в интернет (Маршрутизация по умолчанию). Чем меньше число, тем выше приоритет.

method=auto задает автоматическое определение IP адреса. Чтобы установить IP адрес статически, нужно прописать в конфиге:

method=manual
dns=8.8.8.8;8.8.4.4;
address1=192.168.1.5/24,192.168.1.1

Более подробные параметры здесь

или через cli команды

nmcli c m Eth0 ipv4.method manual
nmcli c m Eth0 ipv4.dns 8.8.8.8;8.8.4.4;
nmcli c m Eth0 ipv4.address1 192.168.1.5/24,192.168.1.1
nmcli c m Eth0 route-metric 100

Подключение по WiFi через Network Manager

Включите WiFi:

nmcli radio wifi on

Просмотрите список доступных WiFi сетей:

nmcli device wifi list

Подключитесь к сети, используя логин и пароль:

nmcli device wifi connect "YourWifiNetwork" password "YourWifiPassword"

Данные команды создадут файл /etc/NetworkManager/system-connections/YourWifiNetwork примерного содержания:

[connection]
id=YourWifiNetwork
uuid=118f13de-b635-4332-9ef4-8151dfb5068f
type=wifi
permissions=

[wifi]
mac-address-blacklist=
mode=infrastructure
ssid=YourWifiPassword

[wifi-security]
key-mgmt=wpa-psk
psk=FyfkjujWbahjdst

[ipv4]
dns-search=
method=auto
route-metric=10

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
route-metric=10

Подключение к wifi через это соединение выполняется командой:

nmcli c up YourWifiNetwork

После этой команды, соединение будет автоматически подниматься, после появления WiFi сети

Графический интерфейс

Чтобы настраивать network manager мышкой, установите два пакета:

apt install nm-tray network-manager-gnome

Запретить Network Manager управлять WiFi

В линуксе есть очень удобный менеджер WiFi wicd. Устанавливается через команду:

apt install wicd

После его установки нужно запретить Network Manager управлять WiFi. Для этого в файле /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf нужно дописать type:wifi.

Пример:

unmanaged-devices=type:bridge,interface-name:lxc*,except:interface-name:docker*;interface-name:virtual*,type:wifi

и перезапустить Network Manager

service network-manager restart

Добавьте в автозапуск wicd tray

wicd-gtk --tray

Подключение к WIFI через WPA Supplicant

Создайте папку:

sudo mkdir /etc/wpa
sudo chmod 700 /etc/wpa

Создайте ключ:

sudo wpa_passphrase mynetwork passphrase > /etc/wpa/mynetwork.conf

 Подключитесь к сети:

sudo wpa_supplicant -i wlp3s0 -c /etc/wpa/mynetwork.conf
sudo dhcpd

Способ через ifconfig

ifconfig eth0 up
ifconfig eth0 192.168.1.25 netmask 255.255.255.0 up
ip route add 192.168.1.0/24 dev eth0 metric 100
ip route add default via 192.168.1.1 dev eth0 metric 10

Старый способ создания сети через interfaces

Данный способ не рекомендуется использовать. У меня он плохо работал.

Установите пакет:

apt install ifupdown

Пропишите в /etc/network/interfaces настройте Localhost и Ethernet соединение

# ifupdown has been replaced by netplan(5) on this system.  See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
#    sudo apt install ifupdown

# Localhost
auto lo
iface lo inet loopback

# Ethernet
#allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet dhcp
    metric 100

allow-hotplug — Позволяет перезапускать интерфейс, если он упадет
auto enp2s0 — Автоматическое подключение интерфейса при старте системы

Отключите systemd network daemon

systemctl stop systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
systemctl disable systemd-networkd.socket systemd-netword networkd-dispatcher systemd-networkd-wait-online

Запустите networking

systemctl enable networking
systemctl restart networking