В этом руководстве объясняется, как настроить статический IP-адрес в системе Ubuntu из командной строки. Оно охватывает настройку сети для всех текущих версий Ubuntu и включает инструкции по настройке статического IP-адреса, установке имени хоста и настройке разрешения имен.
Настройка сети в Ubuntu 22.04, Ubuntu 20.04 и Ubuntu 18.04
Настройка сети в Ubuntu осуществляется с помощью инструмента под названием netplan. Он заменил традиционный файл /etc/network/interfaces.
Настройка статического IP-адреса с помощью Netplan в Ubuntu
Здесь описаны шаги по настройке статического IP-адреса с помощью Netplan. Конфигурационные файлы Netplan находятся в директории /etc/netplan/. По умолчанию используется файл конфигурации /etc/netplan/01-netcfg.yaml.
Откройте файл конфигурации сети с помощью редактора. Имя файла конфигурации netplan отличается в зависимости от версии Ubuntu.
Ubuntu 22.04 и Ubuntu 20.04:
sudo nano /etc/netplan/00-installer-config.yaml
Ubuntu 18.04:
sudo nano /etc/netplan/01-netcfg.yaml
Синтаксис конфигурации написан на языке программирования Python (формат .yaml), поэтому отступы между строками очень важны!
Содержимое файла одинаково на Ubuntu 22.04 — 18.04.
Вот пример статического IPv4-адреса 192.168.1.100 на первом сетевом интерфейсе ens33 и IP-адрес шлюза 192.168.1.1. Сервер будет использовать бесплатные DNS-серверы Google 8.8.8.8 и 8.8.4.4 для разрешения имен.
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]
Или, как скриншот с сервера Ubuntu:

Адрес IPv6 можно добавить в файл адреса , разделенные запятой. Пример:
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: [192.168.1.100/24, '2001:1::1/64'] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]
Вы должны заключить IPv6-адрес в одинарные кавычки. В противном случае вы получите синтаксическую ошибку.
Чтобы применить изменения, выполните следующее:
sudo netplan apply
Или используйте его с ключом —debug, чтобы получить полезный вывод, если разбор файла конфигурации netplan был успешным.
sudo netplan --debug apply
Настройка DHCP-адреса с помощью Netplan
Вот конфигурация для получения сетевой конфигурации для IPv4 и IPv6 от DHCP-сервера.
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: ens33: dhcp4: yes dhcp6: yes
Чтобы применить изменения, выполните команду:
sudo netplan apply
Дополнительные параметры конфигурации Netplan
Netplan — это новая сложная система настройки сетевых карт, виртуальных устройств, VLAN и мостов в Ubuntu 18.04. Дополнительные примеры и подробное объяснение синтаксиса можно найти на странице man.
Настройка сети на Ubuntu 12.04 — 17.04 (включая Ubuntu 16.04 LTS)
Шаг 1: Настройка сетевого интерфейса
На этом шаге вы вручную настроите сетевой интерфейс, отредактировав следующие файлы с помощью удобного для вас текстового редактора (nano gedit vi). В данном примере я использую редактор «nano». Вы можете отредактировать соответствующий файл, введя в терминале следующую команду:
Вы можете копировать и вставлять прямо из этой строки.
sudo nano /etc/network/interfaces
Введите свой пароль root, после того как выбранный вами редактор откроет файл, вы сможете увидеть это на старых версиях Ubuntu:
auto lo eth0 iface lo inet loopback iface eth0 inet dynamic
В системах Ubuntu с systemd (например, Ubuntu 16.04 и новее) сетевой интерфейс теперь называется ens33 вместо eth0, а слово «dynamic» заменено на «dhcp».
Конфигурация, в которой IP-адрес назначается автоматически по DHCP, будет выглядеть следующим образом:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens33
iface ens33 inet dhcp
Статически настроенные сетевые карты будут иметь такой раздел в старых версиях Ubuntu:
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address xxx.xxx.xxx.xxx(enter your ip here)
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
Вот пример для старой версии Ubuntu:
auto lo eth0 iface lo inet loopback iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1
А вот пример для Ubuntu 16.04 и новее:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# test
# The primary network interface
auto ens33
iface ens33 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
А здесь полный файл конфигурации сети из системы Ubuntu 16.04.

Если вы используете редактор «nano» для редактирования файла конфигурации, введите Ctrl+x для сохранения изменений.
Сохранить измененный буфер (ОТВЕТ «Нет» УНИЧТОЖИТ ИЗМЕНЕНИЯ) ?
Имя файла для записи: интерфейсы
Шаг 2: Настройка DNS-серверов
Изменения в /etc/resolv.conf требуются только для систем с Ubuntu
a) Ubuntu 20.04
Откройте файл конфигурации netplan с помощью редактора. В этом примере я буду использовать редактор nano:
sudo nano /etc/netplan/00-installer-config.yaml
Я выделил IP-адреса DNS-серверов жирным шрифтом:
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]
b) Ubuntu 18.04
Откройте файл конфигурации netplan с помощью редактора nano:
sudo nano /etc/netplan/01-netcfg.yaml
Я выделил IP-адреса DNS-серверов жирным шрифтом:
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]
c) Ubuntu версий 14.04 и 16.04
Откройте /etc/network/interfaces снова откройте файл и добавьте строку dns-nameservers 8.8.8.8 сразу после строки шлюза.
sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback
iface ens33 inet static
address xxx.xxx.xxx.xxx(enter your ip here)
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx(enter gateway ip here,usually the address of the router)
dns-nameservers 8.8.8.8
Серверы имен 8.8.8.8 и 8.8.4.4 предоставлены компанией Google для публичного использования, поэтому вы можете использовать их в своей конфигурации сети.
Если вы используете редактор «nano», введите Ctrl+x для сохранения изменений.
Сохранить измененный буфер (ОТВЕТ «Нет» УНИЧТОЖИТ ИЗМЕНЕНИЯ) ?
Имя файла для записи: интерфейсы
г) Версии Ubuntu
В этом шаге вы вручную настроите файл конфигурации dns.
sudo nano /etc/resolv.conf
После того как ваш редактор откроет файл, введите следующую информацию…
nameserver xxx.xxx.xxx.xxx(enter your dns server ip) nameserver xxx.xxx.xxx.xxx(enter your alt dns server ip)
Если вы используете редактор «nano», введите Ctrl+x для сохранения изменений.
Сохранить измененный буфер (ОТВЕТ «Нет» УНИЧТОЖИТ ИЗМЕНЕНИЯ) ?
Имя файла для записи: resolv.conf
Вот пример:
nameserver 8.8.8.8 nameserver 8.8.4.4
Шаг 3: Перезапустите сеть
Вручную перезапустите сетевой интерфейс с новыми настройками.
Для Ubuntu 20.04 и 18.04, используйте команду netplan для применения изменений и перезапуска сети. Команда выглядит следующим образом:
sudo netplan apply
Для Ubuntu версий 14.04 и 16.04 вместо нее мы используем systemctl:
systemctl restart ifup@eth0
На этом этапе вы можете проверить правильность настроек:
ifconfig
Если все правильно, вы получите такой результат.
eth0 Link encap:Ethernet direcciónHW 00:33:27:46:2v:34 Direc. inet:192.168.1.101 Difus.:0.0.0.0 Másc:255.255.255.0 ...
Для Ubuntu
sudo /etc/init.d/networking restart
Это должно дать результат, похожий на следующий:
*Reconfiguring network interfaces… [OK]
Настройка имени хоста
Имя хоста сервера или рабочего стола Ubuntu настраивается в файлах /etc/hostname и /etc/hosts. Файл /etc/hostname задает фактическое имя хоста системы, а /etc/hosts используется для разрешения локальных имен.
В этом примере я изменю имя хоста моей системы на obelix.example.com.
Сначала отредактируйте файл /etc/hostname
sudo nano /etc/hostname
Файл hostname содержит только локальную часть имени хоста. Здесь локальная часть — это «obelix». Измените содержимое файла /etc/hostname на:
obelix
и сохраните файл. Файл hostname выглядит так, как он выглядит в nano после редактирования:

Затем откройте файл /etc/hosts с помощью редактора:
sudo nano /etc/hosts
и измените строку, начинающуюся с IP-адреса системы, следующим образом:
192.168.1.100 obelix.example.com obelix
Вот скриншот /etc/hosts файл.

Формат выглядит следующим образом:
[IP Addesss] [full hostname incl. domain] [local part of the hostname]
Наконец, перезагрузите систему, чтобы применить изменение имени хоста.