Утилиты и команды для настройки сети в Ubuntu 18.04. В данном посте я расматриваю способы подключения через Network Manager, Wicd, WPA Supplicant.
Настройка через Netplan
Настройка сети по умолчанию для серверов.
Создайте файл /etc/netplan/10-enp0s3.yaml
Будет выдан адрес по dhcp4
_x000D_network:_x000D_ version: 2_x000D_ ethernets:_x000D_ enp0s3:_x000D_ dhcp4: true_x000D_ dhcp-identifier: macНастройка статического ip адреса 192.168.1.2
_x000D_network:_x000D_ version: 2_x000D_ ethernets:_x000D_ enp0s3:_x000D_ dhcp4: no_x000D_ dhcp6: no_x000D_ addresses: [192.168.1.2/24]_x000D_ gateway4: 192.168.1.1_x000D_ nameservers:_x000D_ addresses: 192.168.1.1Подключение по WiFi
Создайте файл /etc/netplan/10-wlp3s0.yaml
Обратите внимание на wlp3s0 — это название интерфейса, у вас может быть другой. Проверьте через команду ip a
_x000D_network:_x000D_ version: 2_x000D_ ethernets:_x000D_ wlp3s0:_x000D_ dhcp4: false_x000D_ dhcp6: false_x000D_ addresses: [192.168.1.2/24]_x000D_ gateway4: 192.168.1.1_x000D_ nameservers:_x000D_ addresses: 192.168.1.1_x000D_ access-points:_x000D_ "SSID":_x000D_ password: "password"Примените настройки:
_x000D_netplan applyНастройка DNS
Работает, если у вас установлен systemd-resolved в качестве DNS резолвера. Обычно он установлен по умолчанию
Выполните
_x000D_rm /etc/resolv.conf_x000D_nano /etc/resolv.confУкажите следующие настройки
_x000D_nameserver 127.0.0.53_x000D_options edns0 trust-ad_x000D_ndots:1_x000D_search .Настройка через Network Manager
Настройка сети для Desktop.
Пакеты:
Существует несколько способо управлять сетью в 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
- Dnsmasq — это кэширующий DNS сервер
- Resolvconf — программа, которая может обновлять список рекурсивных DNS серверов. При этом она умеет передавать Dnsmasq новые списки через файл /var/run/dnsmasq/resolv.conf
Установка:
_x000D_apt install network-manager network-manager-gnome net-tools dnsutilsИзмените файл /etc/NetworkManager/NetworkManager.conf
_x000D_[main]_x000D_plugins=ifupdown,keyfile_x000D__x000D_[ifupdown]_x000D_managed=true_x000D_В файле /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf пропишите строчку:
_x000D_[keyfile]_x000D_unmanaged-devices=*,except:type:ethernet,except:type:wifi,except:type:gsm,except:type:cdma,interface-name:lxc*,interface-name:docker*,interface-name:virtual*,interface-name:veth*Этот файл задает какие интерфейсы будут управляться Network Manager. Запрещаем управлять мостами lxc, lxd, docker и virtualbox. Возможно нужно прописать еще. Локальной сетью и wifi разрешаем управлять. Более подробнее о командах здесь
Закоментируйте все строки в файле /etc/network/interfaces кроме строк для loopback интерфейса
_x000D_#source /etc/network/interfaces.d/*_x000D__x000D_auto lo_x000D_iface lo inet loopback_x000D_Отключите управление сетью через systemd
_x000D_systemctl disable systemd-networkd.socket_x000D_systemctl disable systemd-networkd.service_x000D_systemctl disable networkd-dispatcher_x000D_systemctl disable cloud-init_x000D__x000D_systemctl stop systemd-networkd.service_x000D__x000D_apt-get purge ifupdown_x000D_apt-get purge cloud-init_x000D_rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/Графический интерфейс
Чтобы настраивать network manager мышкой, установите:
_x000D_apt install network-manager-gnomeКоманды Network Managment
Посмотреть список устройств, которыми можно управлять nmcli d
_x000D_DEVICE TYPE STATE CONNECTION_x000D_wlp3s0 wifi connected MyWiFi_x000D_enp2s0 ethernet connected Eth0_x000D_lxcbr0 bridge unmanaged --_x000D_virtualbox bridge unmanaged --_x000D_lo loopback unmanaged --Если стоит unmanaged, то Network Managment не может управлять устройством.
Посмотреть список соединений nmcli c
_x000D_NAME UUID TYPE DEVICE_x000D_MyWiFi 118f13de-b635-4332-9ef4-8151dfb5068f wifi wlp3s0_x000D_Eth0 f74f8a7a-ca6c-4d94-9c57-0ce7b37fd439 ethernet enp2s0Это список соединений, для подключений. Этот список можно расширять через команды консоли, или через интерфейс nm-connection-editor.
Локальная сеть в Network Manager
Чтобы создать новую сеть, выполните команду:
_x000D_nmcli connection add type ethernet con-name Eth0 ifname enp2s0_x000D_nmcli c m Eth0 ipv4.route-metric 100_x000D_nmcli c m Eth0 ipv4.dns 8.8.8.8 8.8.4.4_x000D_nmcli c m Eth0 ipv4.ignore-auto-dns yes_x000D_nmcli c m Eth0 connection.autoconnect-priority 999_x000D_Также можно создать файл
nano /etc/NetworkManager/system-connections/Eth0.nmconnection
_x000D_[connection]_x000D_id=Eth0_x000D_uuid=311e72ed-fd9b-347d-9400-0e58a7171d73_x000D_type=ethernet_x000D_autoconnect-priority=-999_x000D_interface-name=enp2s0_x000D_timestamp=1708765081_x000D__x000D_[ethernet]_x000D__x000D_[ipv4]_x000D_dns=8.8.8.8;8.8.4.4;_x000D_ignore-auto-dns=true_x000D_method=auto_x000D_route-metric=100_x000D__x000D_[ipv6]_x000D_addr-gen-mode=stable-privacy_x000D_method=auto_x000D_Обратите внимание на параметр route-metric 100 в конфигах.
Route metric — это приоритет в таблице машрутизации, куда будут отправлены пакеты для выхода в интернет (Маршрутизация по умолчанию). Чем меньше число, тем выше приоритет.
Далее вы можете установить статический IP Адрес
_x000D_nmcli c m Eth0 ipv4.method manual_x000D_nmcli c m Eth0 ipv4.address1 192.168.1.5/24,192.168.1.1Подключиться к определенной сети:
_x000D_nmcli c up Eth0Отключиться от сети;
_x000D_nmcli c down Eth0Если по какой то причине локальная сеть не работает попробуйте сделать:
_x000D_[ifupdown]_x000D_managed=trueА затем:
_x000D_systemctl restart NetworkManagerРекомендуется также создать файл /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf если его нет .
Список комманд:
Установка статического IP адреса
_x000D_nmcli c m Eth0 ipv4.addresses "192.168.1.25/24"_x000D_nmcli c m Eth0 ipv4.gateway "192.168.1.1"_x000D_nmcli c m Eth0 ipv4.method manualФайл nano /etc/NetworkManager/system-connections/Eth0.nmconnection
_x000D_[connection]_x000D_id=Eth0_x000D_uuid=311e72ed-fd9b-347d-9400-0e58a7171d73_x000D_type=ethernet_x000D_autoconnect-priority=-999_x000D_interface-name=enp2s0_x000D_timestamp=1708765081_x000D__x000D_[ethernet]_x000D__x000D_[ipv4]_x000D_address1=192.168.1.25/24,192.168.1.1_x000D_dns=8.8.8.8;8.8.4.4;_x000D_method=manual_x000D_route-metric=100_x000D__x000D_[ipv6]_x000D_addr-gen-mode=stable-privacy_x000D_method=auto_x000D__x000D_[proxy]Подключение по WiFi через Network Manager
Включите WiFi:
_x000D_nmcli radio wifi onПросмотрите список доступных WiFi сетей:
_x000D_nmcli device wifi listПодключитесь к сети, используя логин и пароль:
_x000D_nmcli device wifi connect "YourWifiNetwork" password "YourWifiPassword"Установите параметры подключения
_x000D_nmcli c m YourWifiNetwork ipv4.route-metric 10_x000D_nmcli c m YourWifiNetwork ipv4.ignore-auto-dns yes_x000D_nmcli c m YourWifiNetwork ipv4.dns 8.8.8.8 8.8.4.4_x000D_Количество попыток подключения к wifi если он не доступен:
_x000D_nmcli c m YourWifiNetwork connection.autoconnect-retries 3_x000D_nmcli c m YourWifiNetwork connection.autoconnect-priority 0Подключение к wifi через это соединение выполняется командой:
_x000D_nmcli c up YourWifiNetworkПосле этой команды, соединение будет автоматически подниматься, после появления WiFi сети
Установка статического адреса через команду ip
Этот способ использовать, если NetworkManger не работает.
Откройте файл командой
_x000D_nano /etc/rc.localДобавьте строчки в конец файла
_x000D_ip addr add 192.168.1.25/24 dev eth0_x000D_ip route add 192.168.1.0/24 dev eth0 metric 100_x000D_ip route add default via 192.168.1.1 dev eth0 metric 10Настройка dnsmasq
Нужно в том случае, если вы хотите поменять DNS резолвер
Установите
_x000D_apt install dnsmasqПропишите в NetworkManager.conf
_x000D_[main]_x000D_#auth-polkit=false_x000D_plugins=ifupdown,keyfile_x000D_systemd-resolved=false_x000D_dns=none_x000D__x000D_[ifupdown]_x000D_managed=false_x000D__x000D_[device]_x000D_wifi.scan-rand-mac-address=noОтключите системный DNS.
_x000D_systemctl disable systemd-resolvedУдалите пакет resolvconf
_x000D_apt-get purge resolvconfПоменяйте файл /etc/resolv.conf
_x000D_rm -f /etc/resolv.conf_x000D_echo "nameserver 127.0.0.1" > /etc/resolv.conf_x000D_echo "options edns0 trust-ad" >> /etc/resolv.confСкопируйте конфиг:
_x000D_cp /etc/dnsmasq.conf /etc/dnsmasq.conf.example_x000D_echo "" > /etc/dnsmasq.confСоздайте файл /etc/resolv.dnsmasq
_x000D_nameserver 8.8.8.8_x000D_nameserver 8.8.4.4_x000D_nameserver 1.1.1.1В /etc/dnsmasq.conf пропишите:
_x000D_port=53_x000D_#listen-address=0.0.0.0_x000D_no-dhcp-interface=_x000D_bind-interfaces_x000D_expand-hosts_x000D_local-ttl=1_x000D_no-negcache_x000D__x000D_# Динамические настройки DNS_x000D_resolv-file=/run/NetworkManager/resolv.conf_x000D__x000D_# Настройки DNS по умолчанию_x000D_#resolv-file=/etc/resolv.dnsmasq_x000D__x000D_conf-dir=/etc/dnsmasq.d_x000D_cache-size=150_x000D_max-cache-ttl=600_x000D_min-cache-ttl=60_x000D__x000D_# Одновременный запрос ко всем DNS серверам_x000D_# all-servers_x000D__x000D_# Запрещаем резолвить домены без точки (нужно для Docker Swarm)_x000D_domain-needed_x000D__x000D_# Для отладки_x000D_#log-queriesСоздайте файл /etc/NetworkManager/dispatcher.d/99-dnsmasq
_x000D_#!/bin/bash_x000D__x000D_if [[ "$1" = "enp2s0" || "$1" = "wlp3s0" ]]; then_x000D_ if [ "$2" = "up" ]; then_x000D_ kill -9 `cat /var/run/dnsmasq/dnsmasq.pid`_x000D_ sleep 1_x000D_ systemctl start dnsmasq_x000D_ fi_x000D_fiРаскоментируйте строку в файле /etc/default/dnsmasq
_x000D_IGNORE_RESOLVCONF=yesВыключите резолвер из внешней сети интернет. Создайте файл /etc/dnsmasq.d/disable-external-network
_x000D_bind-interfaces_x000D_except-interface=eth*_x000D_except-interface=enp*_x000D_except-interface=wlan*_x000D_except-interface=wlp*Если вы хотите прописать свои хосты в системе, вы можете использовать файл /etc/hosts или создать новый файл в папке /etc/dnsmasq.d/examle.domain со следующим содержанием:
_x000D_# Example_x000D_address=/.example/127.0.0.2_x000D_address=/ns.example/127.0.0.1_x000D_address=/test.example/127.0.0.5Данный файл говорит dnsmasq резолвить домен .examle, учитывая wildcard запросы.
Также dnsmasq переодически будет проверять файл /var/run/NetworkManager/resolv.conf на наличие новых записей. Network Manager будут помещать туда DNS сервера при подключении к сети.
Также есть инструкция для настройки dnsmaq для Docker swarm .
Управление WiFi через Wicd
Устаревший способ. Wicd в новых версиях убунту уже не используется.
Установка:
_x000D_apt install wicd resolvconfWicd управляет WiFi. В принципе этого достаточно для ноутбука.
После его установки нужно запретить Network Manager управлять WiFi.
Для этого в файле /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf нужно дописать вконце type:wifi и убрать except:type:wifi вначале.
Пример:
_x000D_[keyfile]_x000D_unmanaged-devices=*,except:type:gsm,except:type:cdma,except:type:ethernet,interface-name:lxc*,interface-name:docker*,interface-name:virtual*,interface-name:veth*,type:wifi_x000D_Также нужно включить resolvconf в NetworkManager в файле /etc/NetworkManager/NetworkManager.conf
_x000D_[main]_x000D_plugins=ifupdown,keyfile_x000D_systemd-resolved=false_x000D_rc-manager=resolvconf_x000D_dns=default_x000D__x000D_[ifupdown]_x000D_managed=falseв /etc/dnsmasq.conf нужно поменять файл DNS
_x000D_resolv-file=/var/run/dnsmasq/resolv.confОчистите файл original.resolvconf
_x000D_echo "" > /etc/resolvconf/resolv.conf.d/original_x000D_rm /var/run/resolvconf/interface/original.resolvconfпересоздайте файл resolv.conf
_x000D_rm -f /etc/resolv.conf_x000D_echo "nameserver 127.0.0.1" > /etc/resolv.confи перезапустить Network Manager и dnsmasq
_x000D_service NetworkManager restart_x000D_service dnsmasq restartЕсли все сделано правильно, то через команду
_x000D_resolvconf -l_x000D_service dnsmasq statusБудут показаны текущие ДНС
Добавьте Wicd в автозапуск. Создайте файл nano ~/.config/autostart/wicd-tray.desktop
_x000D_[Desktop Entry]_x000D_Categories=Application;Network;_x000D_Comment=Display network connection status in the system tray_x000D_Comment[en_US]=Display network connection status in the system tray_x000D_Comment[he]=הצגת מצב חיבור רשת במגש מערכת_x000D_Exec=wicd-gtk --tray_x000D_GenericName=Network Manager_x000D_Icon=wicd-gtk_x000D_Icon[en_US]=wicd-gtk_x000D_Name=Wicd Network Manager Tray_x000D_Name[en_US]=Wicd Network Manager Tray_x000D_Terminal=false_x000D_Type=Application_x000D_Version=1.0_x000D_X-GNOME-Autostart-enabled=true_x000D_X-KDE-autostart-after=panelПодключение к WiFi через WPA Supplicant
Создайте файл:
_x000D_touch /root/wifi.sh_x000D_chmod +x /root/wifi.shПосмотрите название вашего Wi Fi модуля:
_x000D_ip aОн может называться как wlp3s0 или wlan0.
Измените содержимое файла /root/wifi.sh и укажите в нем название вашего Wi Fi модуля. Вместо mynetwork и passphrase укажите свои данные.
_x000D_wpa_passphrase mynetwork passphrase > /root/wifi.conf_x000D_wpa_supplicant -i wlan0 -c /root/wifi.conf &_x000D_sleep 10_x000D__x000D_ip addr add 192.168.1.150/24 dev wlan0_x000D_ip route add 192.168.1.0/24 dev wlan0 metric 100_x000D_ip route add default via 192.168.1.1 dev wlan0 metric 10_x000D__x000D_echo "nameserver 8.8.8.8" > /etc/resolv.conf_x000D_echo "Connected"Подключитесь к Wi Fi:
_x000D_/root/wifi.shПроверьте интернет:
_x000D_ping ya.ruСтарый способ создания сети через interfaces
Данный способ не рекомендуется использовать. У меня не работал.
Установите пакет:
_x000D_apt install ifupdownПропишите в /etc/network/interfaces настройте Localhost и Ethernet соединение
_x000D_# ifupdown has been replaced by netplan(5) on this system. See_x000D_# /etc/netplan for current configuration._x000D_# To re-enable ifupdown on this system, you can run:_x000D_# sudo apt install ifupdown_x000D__x000D_# Localhost_x000D_auto lo_x000D_iface lo inet loopback_x000D__x000D_# Ethernet_x000D_#allow-hotplug enp2s0_x000D_auto enp2s0_x000D_iface enp2s0 inet dhcp_x000D_ metric 100 allow-hotplug — Позволяет перезапускать интерфейс, если он упадет
auto enp2s0 — Автоматическое подключение интерфейса при старте системы
Отключите systemd network daemon
_x000D_systemctl stop systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online_x000D_systemctl disable systemd-networkd.socket systemd-netword networkd-dispatcher systemd-networkd-wait-onlineЗапустите networking
_x000D_systemctl enable networking_x000D_systemctl restart networking