Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Настройка сети из командной строки

Для выключения автоматической настройки сети следует отключить NetworkManager, для чего выполнить команду:

Информация
sudo systemctl --now mask NetworkManager

Традиционно, настройка сети TCP/IP из командной строки выполняется с использованием инструментов ifup и ifdown, входящих в пакет ifupdown, и предназначенных для высокоуровневого конфигурирования сети.
При этом можно выделить два типичных случая

  • Для систем, работающих в постоянной сети (например, для серверов), следует сохранять как можно более простую конфигурацию ;
  • Для систем с динамически меняющимися сетями IP-адресами (например, для мобильных компьютеров) рекомендуется дополнительно использовать для настройки пакет  resolvconf, упрощающий переключение конфигураций при смене сетевого адреса.

Пакет ifupdown содержит две три команды:  ifup(8) and ifdown(8)команды ifup и ifdown, которые обеспечивают настройки сетевых интерфейсов в соответствии с конфигурационным файлом /etc/network/interfaces, и команда ifquery, проверяющая корректность конфигурационного файла /etc/network/interfaces
При этом список включенных интерфейсов хранится в файле /run/network/ifstate

Сценарий изменения настройки сетевого интерфейса (на примере интерфейса eth0):

  • остановить Остановить сетевой интерфейс командой

    Информация
    sudo ifdown eth0

    Эта команда удалит запись об интерфейсе eth0 из файла /run/network/ifstate.  (Могут выдаваться сообщения об ошибке, однако эта команда в целом безопасна.)

  • внести Внести изменения в файл /etc/network/interfaces в секцию, относящуюся к интерфейсу eth0.

  • Проверить корректность файла:

    Информация
    sudo ifquery eth0 


  • Повторно запустить интерфейс командой:

    Информация
    sudo ifup eth0


Допускается вносить изменения в файл /etc/network/interfaces заранее, после чего перезапускать интерфейс одной командой:

...

Предупреждение
Не следует использовать низкоуровневые конфигурационные команды как, например, ifconfig(8) и ip(8) для переключения сетевых интерфейсов во включенное (up) состояние.


Типичной ошибкой при использовании команд ifdown/ifup является  сохранение ранее назначенный параметров сетевого соединения, что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.
Для проверки полного состояния сетевого интерфейса следует вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:

  • проверить все сетевые адреса, назначенные сетевому интерфейсу:

    Информация
    ip address show dev eth0


  • очистить все сетевые адреса, назначенные сетевому интерфейсу:

    Информация
    ip address flush dev eth0


Сетевые интерфейсы со статическими адресами

...

Информация

nameserver 192.168.11.1
domain example.com

...

Мобильный режим

В мобильном режиме используется сетевой менеджер

...

connman,  а файл /etc/resolv.conf заменяется на ссылку на файл  /var/run/connman/resolv.conf.

...

Сетевой менеджер connman поддерживает собственный интерфейс командной строки connmanctl.
Описание команд commanctl доступно в системе документации:

Информация
man commmanctl

 

Для отключения автоматической настройки сети необходимо выполнить команды:

Для режима настольного компьютера:

панель
borderColor#c2e6ff
bgColor#e2f3ff
sudo systemctl mask network-manager.service
sudo systemctl mask NetworkManager.service
sudo rm -f /etc/xdg/autostart/nm-applet.desktop
sudo rm -f /etc/resolv.conf

Для мобильного режима:

панель
borderColor#c2e6ff
bgColor#e2f3ff
sudo systemctl mask connman.service
sudo rm -f /etc/resolv.conf

и после этого прописывать настройки сети в файле /etc/network/interfaces

Пример /etc/network/interfaces:

Подсказка
iconfalse

auto lo eth0 eth1
iface lo inet loopbackauto eth0

allow-hotplug eth0
iface eth0 inet static

address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 192.168.0.1

iface eth1 inet dhcp

Для повторного включения автоматичеcкой настройки сети необходимо выполнить команды:

Для режима настольного компьютера:

панель
borderColor#c2e6ff
bgColor#e2f3ff
sudo systemctl unmask network-manager.service
sudo systemctl unmask NetworkManager.service
sudo cp -f /usr/share/applications/nm-applet.desktop /etc/xdg/autostart

Для мобильного режима:

панель
borderColor#c2e6ff
bgColor#e2f3ff
sudo systemctl unmask connman.service

...