- Настройка сети в 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
- Configure WiFi Connections
- Establish a Wireless Connection
- Connect to a Hidden Network
- Further Information
Настройка сети в 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 wifi 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 wifi 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
Configure WiFi Connections
This section explains how to establish a WiFi connection. It covers creating and modifying connections as well as directly connecting.
Establish a Wireless Connection
This section will show how to establish a wifi connection to the wireless network. Note that directly connecting will implicitly create a connection (that can be seen with “nmcli c”). The naming of such will follow “SSID N” pattern, where N is a number.
First, determine the name of the WiFi interface:
$ nmcli d DEVICE TYPE STATE CONNECTION . wlan0 wifi disconnected --
Make sure the WiFi radio is on (which is its default state):
Then, list the available WiFi networks:
$ nmcli d wifi list * SSID MODE CHAN RATE SIGNAL BARS SECURITY . my_wifi Infra 5 54 Mbit/s 89 ▂▄▆█ WPA2
As an example, to connect to the access point ‘my_wifi’, you would use the following command:
$ nmcli d wifi connect my_wifi password
is the password for the connection which needs to have 8-63 characters or 64 hexadecimal characters to specify a full 256-bit key.
Connect to a Hidden Network
A hidden network is a normal wireless network that simply does not broadcast it’s SSID unless solicited. This means that its name cannot be searched and must be known from some other source.
Issue the following command to create a connection associated with a hidden network :
$ nmcli c add type wifi con-name ifname wlan0 ssid $ nmcli c modify wifi-sec.key-mgmt wpa-psk wifi-sec.psk
Now you can establish a connection by typing:
is an arbitrary name given to the connection and is the password to the network. It needs to have between 8-63 characters or 64 hexadecimal characters in order to specify a full 256-bit key.
Further Information
You will find further information and more detailed examples on following pages: