- Настройка сети в Ubuntu 18.04 через Network Manager
- Настройка через Network Manager
- Настройка dnsmasq и resolvconf
- Команды Network Managment
- Локальная сеть в Network Manager
- Установка статического IP адреса
- Подключение по WiFi через Network Manager
- Графический интерфейс
- Управление через WiFi Wicd
- Подключение к WiFi через WPA Supplicant
- Способ через ip addr
- Старый способ создания сети через interfaces
Настройка сети в 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
Dnsmasq — это кэширующий DNS сервер
Resolvconf — программа, которая может обновлять список рекурсивных DNS серверов. При этом она умеет передавать Dnsmasq новые списки через файл /var/run/dnsmasq/resolv.conf
Настройка через Network Manager
apt install network-manager dnsmasq resolvconf
Измените файл /etc/NetworkManager/NetworkManager.conf
[main] #auth-polkit=false plugins=ifupdown,keyfile systemd-resolved=false rc-manager=resolvconf dns=default [ifupdown] managed=false [device] wifi.scan-rand-mac-address=no
В файле /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf пропишите строчку:
Linux настройка сети network manager unmanaged-devices=*,except:type:wifi,except:type:gsm,except:type:cdma,except:type:ethernet,interface-name:lxc*,interface-name:docker*,interface-name:virtual*,interface-name:veth*
Этот файл задает какие интерфейсы будут управляться Network Manager. Запрещаем управлять мостами lxc, lxd, docker и virtualbox. Возможно нужно прописать еще. Локальной сетью и wifi разрешаем управлять. Более подробнее о командах здесь
Отключите управление сетью через systemd
systemctl disable systemd-networkd.socket systemctl disable systemd-networkd.service systemctl disable systemd-resolved systemctl disable networkd-dispatcher systemctl disable cloud-init apt-get purge cloud-init rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/
Настройка dnsmasq и resolvconf
Если используете Network Manager, то настройте dnsmasq.
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.example echo "" > /etc/dnsmasq.conf
Создайте файл /etc/resolv.dnsmasq
nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 1.1.1.1
В /etc/dnsmasq.conf пропишите:
port=53 listen-address=0.0.0.0 no-dhcp-interface= bind-interfaces expand-hosts local-ttl=1 no-negcache # Динамические настройки DNS resolv-file=/var/run/dnsmasq/resolv.conf # Настройки DNS по умолчанию #resolv-file=/etc/resolv.dnsmasq conf-dir=/etc/dnsmasq.d cache-size=150 max-cache-ttl=600 min-cache-ttl=60 # Одновременный запрос ко всем DNS серверам # all-servers # Запрещаем резолвить домены без точки (нужно для Docker Swarm) domain-needed # Для отладки #log-queries
Но лучше всегда задавать DNS параметры через менеджер подключений, такие как wicd или network manager. Чтобы он через resolvconf обновлял DNS сервера.
Если вы хотите прописать свои хосты в системе, вы можете использовать файл /etc/hosts или создать новый файл в папке /etc/dnsmasq.d/examle.domain со следующим содержанием:
# Example address=/.example/127.0.0.2 address=/ns.example/127.0.0.1 address=/test.example/127.0.0.5
Данный файл говорит dnsmasq резолвить домен .examle, учитывая wildcard запросы.
Также dnsmasq переодически будет проверять файл /var/run/dnsmasq/resolv.conf на наличие новых записей. Wicd и Network Manager будут помещать туда DNS сервера при подключении.
Также есть инструкция для настройки dnsmaq для Docker swarm.
Команды 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.
Подключиться к определенной сети:
Локальная сеть в Network Manager
Чтобы создать новую сеть, выполните команду:
nmcli connection add type ethernet con-name Eth0 ifname enp2s0 nmcli c m Eth0 ipv4.route-metric 100 nmcli c m Eth0 ipv4.dns 8.8.8.8 8.8.4.4 nmcli c m Eth0 ipv4.ignore-auto-dns yes nmcli c m Eth0 connection.autoconnect-priority 999
Обратите внимание на параметр route-metric 100 в конфигах.
Route metric — это приоритет в таблице машрутизации, куда будут отправлены пакеты для выхода в интернет (Маршрутизация по умолчанию). Чем меньше число, тем выше приоритет.
Далее вы можете установить статический IP Адрес
nmcli c m Eth0 ipv4.method manual nmcli c m Eth0 ipv4.address1 192.168.1.5/24,192.168.1.1
Установка статического IP адреса
nmcli c m Eth0 ipv4.addresses "192.168.1.25/24" nmcli c m Eth0 ipv4.gateway "192.168.1.1" nmcli c m Eth0 ipv4.method manual
Подключение по WiFi через Network Manager
Просмотрите список доступных WiFi сетей:
Подключитесь к сети, используя логин и пароль:
nmcli device wifi connect "YourWifiNetwork" password "YourWifiPassword"
Установите параметры подключения
nmcli c m YourWifiNetwork ipv4.route-metric 10 nmcli c m YourWifiNetwork ipv4.ignore-auto-dns yes nmcli c m YourWifiNetwork ipv4.dns 8.8.8.8 8.8.4.4
Количество попыток подключения к wifi если он не доступен:
nmcli c m YourWifiNetwork connection.autoconnect-retries 3 nmcli c m YourWifiNetwork connection.autoconnect-priority 0
Подключение к wifi через это соединение выполняется командой:
nmcli c up YourWifiNetwork
После этой команды, соединение будет автоматически подниматься, после появления WiFi сети
Графический интерфейс
Чтобы настраивать network manager мышкой, установите два пакета:
apt install nm-tray network-manager-gnome
Управление через WiFi Wicd
Wicd управляет WiFi. В принципе этого достаточно для ноутбука.
После его установки нужно запретить Network Manager управлять WiFi.
Для этого в файле /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf нужно дописать вконце type:wifi и убрать except:type:wifi вначале.
Linux настройка сети network manager 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
и перезапустить Network Manager
service network-manager restart
Добавьте Wicd в автозапуск. Создайте файл nano ~/.config/autostart/wicd-tray.desktop
[Desktop Entry] Categories=Application;Network; Comment=Display network connection status in the system tray Comment[en_US]=Display network connection status in the system tray Comment[he]=הצגת מצב חיבור רשת במגש מערכת Exec=wicd-gtk --tray GenericName=Network Manager Icon=wicd-gtk Icon[en_US]=wicd-gtk Name=Wicd Network Manager Tray Name[en_US]=Wicd Network Manager Tray Terminal=false Type=Application Version=1.0 X-GNOME-Autostart-enabled=true X-KDE-autostart-after=panel
Подключение к WiFi через WPA Supplicant
touch /root/wifi.sh chmod +x /root/wifi.sh
Посмотрите название вашего Wi Fi модуля:
Он может называться как wlp3s0 или wlan0.
Измените содержимое файла /root/wifi.sh и укажите в нем название вашего Wi Fi модуля. Вместо mynetwork и passphrase укажите свои данные.
wpa_passphrase mynetwork passphrase > /root/wifi.conf wpa_supplicant -i wlan0 -c /root/wifi.conf & sleep 10 ip addr add 192.168.1.150/24 dev wlan0 ip route add 192.168.1.0/24 dev wlan0 metric 100 ip route add default via 192.168.1.1 dev wlan0 metric 10 echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "Connected"
Способ через ip addr
ip addr add 192.168.1.150/24 dev eth0 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
Данный способ не рекомендуется использовать. У меня не работал.
Пропишите в /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
systemctl enable networking systemctl restart networking