Поиск по сайту:

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


В этом руководстве объясняется, как настроить статический IP-адрес в системе Ubuntu из командной строки. Он охватывает настройку сети для всех текущих версий Ubuntu и включает инструкции по настройке статического IP-адреса, установке имени хоста и настройке разрешения имен.

Конфигурация сети в Ubuntu 20.04 LTS и Ubuntu 18.04 LTS

Конфигурация сети в Ubuntu выполняется с помощью инструмента netplan, который заменил традиционный файл /etc/network/interfaces.

Настройте статический IP-адрес с помощью Netplan в Ubuntu

Вот шаги по настройке статического IP-адреса с помощью Netplan. Файлы конфигурации Netplan находятся в каталоге /etc/netplan/. Файл конфигурации по умолчанию – /etc/netplan/01-netcfg.yaml.

Откройте файл конфигурации сети с помощью редактора. Имя файла конфигурации netplan отличается в зависимости от версии Ubuntu.

Убунту 20.04:

sudo nano /etc/netplan/00-installer-config.yaml

Убунту 18.04:

sudo nano /etc/netplan/01-netcfg.yaml

Синтаксис конфигурации написан на языке программирования Python (формат .yaml), поэтому отступы строк важны!

Содержимое файла одинаково в Ubuntu 20.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 можно добавить в строку addresses через запятую. Пример:

# 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. Дополнительные примеры и подробное объяснение синтаксиса см. на справочной странице.

Конфигурация сети в 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 < 14.04, для более новых версий Ubuntu серверы имен настраиваются в файле /etc/network/interfaces или в файле конфигурации netplan.

а) 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]

б) 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 сразу после строки gateway.

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 для общего пользования, поэтому вы можете использовать их в конфигурации своей сети.

Если вы используете редактор «нано», нажмите Ctrl+x, чтобы сохранить изменения.

Сохранить измененный буфер (ОТВЕТ «Нет» УНИЧТОЖИТ ИЗМЕНЕНИЯ)?

<---Введите \у\

Имя файла для записи: интерфейсы

<---ВВОД

d) Версии Ubuntu < 14.04

На этом шаге вы вручную настроите файл конфигурации 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)

Если вы используете редактор «нано», нажмите 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 

На этом этапе вы можете проверить правильность настроек:

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 < 14.04 используйте сценарий инициализации сети:

sudo /etc/init.d/networking restart

Это должно вернуть результат, который выглядит следующим образом:

*Reconfiguring network interfaces… [OK]

Настройте имя хоста

Имя хоста Ubuntu Server или Desktop настраивается в файлах /etc/hostname и /etc/hosts . . Файл /etc/hostname задает фактическое системное имя хоста, а файл /etc/hosts используется для локального разрешения имен.

В этом примере я изменю имя хоста своей системы на obelix.example.com.

Сначала отредактируйте файл /etc/hostname.

sudo nano /etc/hostname

Файл имени хоста содержит только локальную часть имени хоста. Локальная часть здесь — «обеликс». Измените содержимое файла /etc/hostname на:

obelix

и сохраните файл. Файл имени хоста, как он выглядит в nano после редактирования:

Затем откройте файл /etc/hosts в редакторе:

sudo nano /etc/hosts

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

192.168.1.100   obelix.example.com     obelix

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

Формат такой:

[IP-адрес] [полное имя хоста, вкл. домен] [локальная часть имени хоста]

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