Настройка сети в Linux

В большинстве случаев хватает стандартных настроек сети в операционных системах. Но иногда требуется ручное вмешательство.

Все команды для настройки сети требуют root-прав. Не забывайте использовать sudo или зайти в систему root’ом.
В статье используется для примера сетевой интерфейс eth0. Возможно, у вас интерфейс называется иначе. Самый простой способ просмотреть список доступных интерфейсов — выполнить команду ip a.

Получение настроек (в том числе и IP-адреса) от DHCP

Без NetworkManager

До первой перезагрузки

Рассмотрим ситуацию, когда в вашей ОС не установлен NetworkManager (или его аналоги): в этом случае мы можем получить IP-адрес с DHCP сервера с помощью следующей команды:

1
dhclient eth0

Персистентно

Но после перезагрузки нам опять придётся получать IP-адрес. Для того, чтобы каждый раз этого не делать руками, подправим конфиги. В рамках данного поста я рассматриваю DEB-based системы, значит для меня конфиги для сетевых интерфейсов находятся в каталоге /etc/network/interfaces.d. В этом каталоге я создам файл с названием интерфейса: eth0. Вот его содержимое:

1
2
auto eth0
iface eth0 inet dhcp

Первая строчка нужна для автоматической инициализации интерфейса при запуске ОС. Вторая ­— сообщает, что интерфейс должен конфигурироваться автоматически, получая настройки от DHCP.

Для применения изменений нужно перезагрузить сетевой интерфейс: ifdown eth0 && ifup eth0.

Если установлен NetworkManager

Чтобы установить получение настроек с DHCP, мы будем использовать утилиту nmcli. Для начала нам надо узнать название нашего интерфейса командой:

1
nmcli con

В моём случае интерфейс назывался Wired connection 1. Для того, чтобы указать, что настройки должны получаться от DHCP используется команда:

1
nmcli con modify "Wired connection 1" ipv4.method auto

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

1
nmcli con modify --temporary "Wired connection 1" ipv4.method auto

Назначение настроек (в том числе и IP-адреса) статически

Без NetworkManager

До первой перезагрузки

1
ip a change 192.168.0.1/24 dev eth0

Персистентно

Для фиксирования изменений нужно сохранить настройки в конфигурационном файле. Все конфиги для сетевых интерфейсов находятся в каталоге /etc/network/interfaces.d. В этом каталоге я создам файл с названием интерфейса: eth0. Вот его содержимое:

1
2
3
4
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0

Полный список параметров, доступных для конфигурирования, можно увидеть, выполнив команду man interfaces.

Для применения изменений нужно перезагрузить сетевой интерфейс: ifdown eth0 && ifup eth0.

Если установлен NetworkManager

Для начала нам надо узнать название нашего интерфейса командой:

1
nmcli con

В моём случае интерфейс назывался Wired connection 1. Для того, чтобы указать статический адрес, используется команда:

1
nmcli con modify "Wired connection" ipv4.method manual ipv4.addresses 192.168.0.1/24

Для того, чтобы установить DNS-сервер и прочие параметры, можно перейти в интерактивный режим конфигурирования командой nmcli con edit "Wired connection 1" и там выполнить команду describe ipv4 для просмотра списка доступных параметров.

Данные изменения носят персистентный характер. Если вам это не нужно, то можно использовать флаг --temporary у команды nmcli con modify.

GUI (Debian 8, GNOME)

  1. Находим “Настройки” через главное меню GNOME.
  2. Идем в раздел “Сеть”
  3. Выбираем наше соединение
  4. Далее графический интерфейс позволяет без проблем настроить соединение как со статическими настройками, так и с настройками, получаемыми с DHCP-сервера.

Следует лишь учесть, что настройки, сделанные данным способом, носят персистентный характер.

Поделиться Комментарии