Как использовать Neworkd вместо NetworkManager на рабочем столе Ubuntu 18.04

Я ищу правильный способ настройки сети со статическим IP на Ubuntu Desktop 18.04, но из командной строки, а не из графического интерфейса.

Спасибо

1 ответ

Решение

Я думаю, это как можно ближе к "правильному пути".

Сначала вы должны узнать, как называется ваш интерфейс. Для этого просто запустите ip address из терминала. На моей машине это eno1 который можно найти в первой строке:

me@pc:~$ ip address
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 90:b1:1c:aa:bb:cc brd ff:ff:ff:ff:ff:ff
    inet 10.1.2.16/24 brd 10.1.2.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::5cd1:3ee8:c461:6f12/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Тогда вам просто нужно отредактировать файл /etc/netplan/01-network-manager-all.yaml и сделайте так, чтобы это было для назначения статического IP-адреса:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno1:
      renderer: networkd
      match:
        name: eno1
      addresses: [10.1.2.16/24]
      gateway4: 10.1.2.1
      nameservers:
        search: [example.com]
        addresses: [10.1.2.10]

Это говорит netplan использовать networkd на интерфейсе eno1 вместо NetworkManager.

TL;DR

Отредактируйте /etc/systemd/network/*.network

ПОЛНЫЙ ПРИМЕР:

Для правильной работы Wi-Fi ниже убедитесь, что вы заменили wlan0 с вашим точным именем Wi-Fi.

Вы можете использовать systemd напрямую, добавив файлы конфигурации в /etc/systemd/network/*.network

Изменить: /etc/systemd/network/10-eth0.network

[Match]
Name=eth0

[Network] 
Address=10.10.10.9/24
Gateway=10.10.10.1
DNS=9.9.9.9

Изменить: /etc/systemd/network/20-wlan0.network

[Match]
Name=wlan0
SSID=Wifi-SSID

[Network]
DHCP=ipv4

Я не использую netplan, поэтому предпочитаю его удалить:

apt purge netplan.io
rm -rf /etc/netplan

Включите systemd-networkd:

systemctl unmask systemd-networkd
systemctl enable systemd-networkd

Установите пароль Wi-Fi и начните при загрузке:

wpa_passphrase Wifi-SSID Sweet-Password >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
systemctl enable  wpa_supplicant@wlan0.service

Ускорьте загрузку, отказавшись ждать сети при загрузке:

systemctl disable systemd-networkd-wait-online.service

ПОЯСНЕНИЕ:

Я вижу, что это устарело, но я добавил сюда другой метод, который не использует уровень абстракции, например netplan.io или NetworkManager, который, вероятно, более точно отвечает на заголовок этой ветки, если не на вопрос.

Лично я предпочитаю этот метод, потому что:

  • Теперь все основные дистрибутивы используют systemd, но немногие используют netplan.
  • это просто
  • легко устранить неполадки
  • может использоваться с очень сложными настройками, включая мосты, соединения, vlan и т. д.
  • может использоваться для переименования устройств и изменения MAC-адресов
  • может использоваться для установки различных настроек на основе беспроводного SSID и других директив [Match]

Серьезно, взгляните на вики-страницу Arch, которая очень подробно объясняет это с примерами. Прочтите все, потому что есть несколько ошибок. https://wiki.archlinux.org/index.php/Systemd-networkd

Другие вопросы по тегам