Ubuntu. Настройка сети
03.11.2023
Теги: CLI • Linux • Ubuntu • Конфигурация • ЛокальнаяСеть • Настройка
Есть несколько способов настройки сети в современных версиях Ubuntu. В настоящее время используют Network Manager, Systemd Networkd и Netplan. В прошлом за настройку отвечал файл конфигурации /etc/network/interfaces
.
Файл /etc/network/interfaces
Интерфейсы, настроенные с помощью файла /etc/network/interfaces
, можно включать и выключать с помощью команд ifup
и ifdown
.
$ sudo ifdown enp7s0 $ sudo ifup enp7s0
При внесении больших изменений в сеть — например, при добавлении виртуальных интерфейсов — можно повторно инициализировать сеть, перезапустив службу
$ sudo systemctl restart networking.service
При использовании DHCP файл /etc/network/interfaces
будет совсем простым
iface lo inet loopback auto eth0 iface eth0 inet dhcp
Директива iface
описывает сетевой интерфейс, inet
означает семейство интернет-протоколов (IPv4), lo
означает виртуальный сетевой интерфейс, которому мы назначаем ip-адрес 127.0.0.1
. Директива auto eth0
предписывает автоматически включить сетевой интерфейс eth0
во время загрузки.
При назначении статического ip-адреса файл /etc/network/interfaces
будет таким
iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4
Есть возможность выполнить команду или скрипт перед или после включения-выключения интерфейса
pre-up command post-up command pre-down command post-down command
Служба systemd-networkd
Перед настройкой и активацией systemd-networkd.service
потребуется отключить применение сетевых настроек из файла /etc/network/interfaces
. Для этого достаточно просто переименовать данный конфигурационный файл.
$ sudo mv /etc/network/interfaces /etc/network/interfaces.save
Файлы конфигурации systemd-networkd.service
находятся в директории /etc/systemd/network
и могут быть трех видов
*.link
— конфигурация физических параметров интерфейсов (имя, MAC, MTU и т.д.)*.network
— конфигурация сети (IP-адрес, DHCP, маршруты, DNS и т.д.)*.netdev
— для настройки виртуальных интерфейсов (VLAN, мосты, туннели, VPN и т.п.)
Файлы *.link
в обязательном порядке создавать необходимости нет. Они нужны, когда необходимо изменить физические параметры интерфейсов. Например, если не устраивает системное именование интерфейсов, управляемое udev
, то можно прописать новое правило именования интерфейса, отталкиваясь от его MAC-адреса или адреса на шине PCI.
Пример конфигурационного файла /etc/systemd/network/90-nic1-port0.link
, в котором изменяется имя интерфейса с определённым MAC адресом
[Match] MACAddress=04:01:50:23:1f:02 [Link] Name=nic1-port0
Пример конфигурационного файла /etc/systemd/network/80-lan0-dhcp.network
для настройки интерфейса eth0
с помощью DHCP
[Match] Name=eth0 [Network] DHCP=ipv4 LinkLocalAddressing=no
Опция LinkLocalAddressing
поможет избежать появления в системе IPv6 адреса, если есть желание отключить IPv6 в системе полностью.
Обратите внимание на то, что если мы изменили имя интерфейса с помощью *.link файла
, как в примере выше, то при последующей настройке этого интерфейса в *.network
файле, в директиве Name
нужно использовать именно изменённое имя интерфейса.
Пример конфигурационного файла /etc/systemd/network/80-lan0-dhcp.network
для настройки IPv4/v6 на всех интерфейсах, имена которых подпадают под маску eth*
, с помощью DHCP
[Match] Name=eth* [Network] DHCP=ipv4 DHCP=ipv6
Пример конфигурационного файла /etc/systemd/network/50-lan0-static.network
для статической настройки интерфейса enp8s0
[Match] Name=enp8s0 [Network] Description=Local network Address=192.168.1.20/24 Gateway=192.168.1.1 DNS=192.168.1.1 192.168.2.1 Domains=sub1.holding.com sub2.holding.com LinkLocalAddressing=no
То есть, для минимальной конфигурации сети, например, с указанием статического ip-адреса на основном интерфейсе сервера, нам достаточно настроить один *.network
файл.
Включаем автоматический запуск службы systemd-networkd
при старте системы
$ sudo systemctl enable systemd-networkd.service
Запускаем службу
$ sudo systemctl start systemd-networkd
Проверяем статус интерфейсов
$ networkctl list
Проверяем статус настроек сети
$ networkctl status
Проверяем лог службы
$ journalctl -u systemd-networkd.service
Netplan
Netplan — новый уровень абстракции над сетевыми менеджерами. В Ubuntu Server для настроки сети используется systemd-networkd.service
, в Ubuntu Desktop для той же цели используется NetworkManager.service
, а завтра может появится что-то еще.
Все конфигурационные файлы Netplan находятся в директории /etc/netplan
. Во время запуска системы, конфигурация Netplan преобразуется в конфигурацию той службы, которая будет управлять сетью и помещается в каталог /run
. По умолчанию в Ubuntu Desktop есть только один конфигурационный файл со следующим содержимым.
$ cat /etc/netlan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Первые две строчки конфигурации стандартны. Первая указывает, что мы будем иметь дело с сетью, а вторая указывает версию стандарта конфигурации, которая будет использоваться. Третья строка означает, что управление всей сетью передаётся NetworkManager
.
Сетевой интерфейс enp0s3
получает все настройки от DHCP-сервера
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes
Переопределим часть настроек, которые приходят от DHCP-сервера
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes dhcp4-overrides: use-dns: no use-domains: no nameservers: addresses: - 8.8.8.8 - 8.8.4.4
Формат YAML допускает блочный и строчный формат для списков
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes dhcp4-overrides: use-dns: no use-domains: no nameservers: addresses: [8.8.8.8, 8.8.4.4]
Теперь для интерфейса enp0s3
назначим статический ip-адрес
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
- Монтирование NFS на сервере Ubuntu 18.04 LTS
- Установка DHCP-сервера на Ubuntu Server 18.04 LTS
- Настройка сети в Ubuntu 18.04 LTS
- Установка WireGuard на Ubuntu 20.04 LTS. Часть вторая из двух
- Установка OpenVPN на Ubuntu 18.04 LTS. Часть 12 из 12
- Установка OpenVPN на Ubuntu 18.04 LTS. Часть 11 из 12
- Установка OpenVPN на Ubuntu 18.04 LTS. Часть 10 из 12
Поиск: CLI • Linux • Ubuntu • Конфигурация • Локальная сеть • Настройка