Основы Linux — установка статического IP-адреса в Ubuntu

В этом руководстве объясняется, как настроить статический 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:

Ubuntu 22.04 Файл конфигурации сети

Адрес 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 после редактирования:

Настройка имени хоста Ubuntu

Затем откройте файл /etc/hosts с помощью редактора:

sudo nano /etc/hosts

и измените строку, начинающуюся с IP-адреса системы, следующим образом:

192.168.1.100   obelix.example.com     obelix

Вот скриншот /etc/hosts файл.

Файл hosts в Ubuntu

Формат выглядит следующим образом:

[IP Addesss] [full hostname incl. domain] [local part of the hostname]

Наконец, перезагрузите систему, чтобы применить изменение имени хоста.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *