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

Утилита ip

ip заменяет ifconfig, route и некоторые другие утилиты.

  • ip r вывод таблицы маршрутизации
  • ip ro list table all вся таблица маршрутизации
  • ip addr show eth0 вывод конфигурации интерфейса
  • ip link set eth0 up включить интерфейс eth0
  • ip link set eth0 down выключить интерфейс eth0
  • ip neigh show просмотреть физические адреса узлов из ARP кэша
  • ip addr add 192.168.10.15/24 broadcast 192.168.10.255 dev eth0 присвоить ip адрес
  • ip addr del 192.168.10.15/24 dev eth0 удалить ip адрес
  • ip addr add 192.168.10.16/24 dev eth0 label eth0:1 добавить вторичный адрес
  • ip route add 192.168.10.1/24 dev eth1 добавить маршрут
  • ip route del 192.168.10.1/24 dev eth1 удалить маршрут
  • ip route add default via 192.168.10.1 добавить маршрут по умолчанию
  • ip -s link show eth0 оценка производительности сети

Утилита настройки сети NetworkManager command-line (nmcli)

    У нее есть такие понятия как:
  • Устройство (device) - это сетевой интерфейс
  • Подключение (connection) - это набор настроек, использующих устройство для организации сетевого подключения
  • nmcli con show вывод списка всех подключений
  • nmcli con show -active вывод списка активных подключений
  • nmcli con show <connection> вывод списка текущих параметров и их значения для указанного подключения. Выводимые параметры можно изменить с помощью команды nmcli con mod
  • nmcli con up <connection> активация подключения
  • nmcli con down <connection> деактивация подключения. Подключение перезапустится, если значение autoconnect = yes

  • nmcli con mod <connection> connection.autoconnect no(yes) выключить или включить автоматическое подключение сетевого интерфейса
  • nmcli con mod <connection> ipv4.addresses 192.168.10.15/24 указать ip-адрес
  • nmcli con mod <connection> +ipv4.addresses 192.168.10.15/24 добавить вторичный ip-адрес
  • nmcli con mod <connection> ipv4.dns 192.168.10.25/24 указать ip-адрес сервера DNS
  • nmcli con mod <connection> +ipv4.dns 192.168.10.35/24 добавить ip-адрес вторичного сервера DNS
  • nmcli con mod <connection> ipv4.gateway 192.168.10.45/24 указать ip-адрес шлюза

  • nmcli con del <connection> удаление подключения

  • nmcli dev status вывод состояния сетевых устройств
  • nmcli dev show <device> вывод подробного состояние сетевого устройства
  • nmcli dev dis <device> остановка интерфейса и временное отключение автоматическое подключения

  • nmcli net off отключение всех управляемых интерфейсов
Чтобы изменения вступили в силу нужно повторно активировать подключение
nmcli con up <connection>
Или перезапустить сетевой интерфейс
sudo nmcli con down <connection> && sudo nmcli con up <connection>

С помощью nmcli можно создать новое подключение, например:
Определение нового подключения с именем dynamic для подключения через ethernet к устройству ens192 по протоколу DHCP и выключенным автоподключением. В /etc/sysconfig/network-scripts создаться файл ifcfg-dynamic с параметрами подключения
nmcli con add con-name "dynamic" type Ethernet ifname ens192 autoconnect no
Определение нового подключения с именем static с явным указанием ip-адреса, шлюза и включенным автоподключением. В /etc/sysconfig/network-scripts создаться файл ifcfg-static с параметрами подключения
nmcli con add con-name "static" ifname ens192 autoconnect yes type ethernet ip4 192.168.10.15/24 gw4 192.168.10.10
Для переключения между подключениями используется
nmcli con up "static"
nmcli con up "dynamic"

Полный перечень настроек можно увидеть перейдя по |ссылке|

Текстовый интерфейс NetworkManager Text User Interface (nmtui)

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

Запуск утилиты осуществляется командой
nmtui
Если утилита не установлена, ее можно установить
В CentOS
yum install networkmanager-tui
В Ubuntu
apt install network-manager
    После запуска нужно будет выбрать опцию и подключение, есть следующие опции:
  • edit - редактор соединений
  • connect - список соединений с возможностью их активации и деактивации
  • hostname - изменение имени хоста
Можно запустить утилиту сразу указав опцию и нужное подключение
nmtui edit <connection>
nmtui connect <connection>
nmtui hostname <hostname>
Имя подключения можно узнать выполнив команду
ip a
Чтобы изменения вступили в силу нужно повторно активировать подключение
nmcli con up <connection>
Или перезапустить сетевой интерфейс
sudo nmcli con down <connection> && sudo nmcli con up <connection>

Настройка сети через конфигурационный файл в CentOS

Конфиг с настройками сети лежит по пути:
/etc/sysconfig/network-scripts/ifcfg-*
где * - это название сетевого интерфейса, которое можно посмотреть командой
ip a
Конфиг должен содержать как минимум следующие строки:
TYPE=Ethernet
BOOTPROTO=static  #(или dhcp)    статический или динамический ip-адрес
IPV6INIT=no       #(или yes)     отключение ipv6
NAME=ens192       #Имя интерфейса
DEVICE=ens192     #Имя устройства
IPADDR=192.168.10.15     #статический ip-адрес системы
PREFIX=24         #(или NETMASK=255.255.255.0)    маска сети
GATEWAY=192.168.10.25    #Шлюз по умолчанию для этого сетевого интерфейса
DNS1=192.168.10.35       #DNS сервер
ONBOOT=yes        #(или no)  автоматический запуск сети
Чтобы изменения вступили в силу нужно выполнить команду для считывания изменений конфигурации
nmcli con reload
Затем перезапустить сетевой интерфейс
sudo nmcli con down <connection> && sudo nmcli con up <connection>

Настройка сети через конфигурационный файл в Ubuntu

Ubuntu последних версий использует netplan в качестве сетевого менеджера по умолчанию

Конфиг сетевых настроек храниться в файле с расширением yaml в каталоге
/etc/netplan/
Перед изменением файла рекомендуется сделать его бэкап
Проверка конфигурации при изменении и применение новой конфигурации при нажатии Enter
netplan try
Проверка конфигурации, после этого конфигурация измениться без принудительной перезагрузки сетевого интерфейса
netplan apply
Чтобы увидеть что конкретно происходит при выполнении netplan apply, можно добавить ключ --debug
netplan --debug apply
Для перезапуска сетевого интерфейса можно выполнить
sudo ip link set dev <device> down && ip link set dev <device> up

Именование сетевого интерфейса в linux

Название сетевого интерфейса обычно выглядит следующим образом: PrefixTypeN

    Prefix - префикс интерфейса
  • en - ethernet
  • wl - WLAN (Wi-Fi, WiMax, Bluetooth)
  • ww - WWAN (GSM, UMTS, LTE)
    Type - тип адаптера
  • o - для адаптера расположенного на материнской плате
  • s - для разъема с горячим подключением
  • p - для PCI-адаптера
  • x - используется для включения MAC-адреса в состав имени

Число N - для представления индекса, идентификатора или порта.

Например:
eno1 - встроенный сетевой интерфейс;
enp2s0 - сетевой интерфейс PCI-платы.

Если фиксированное имя не может быть определено, используются традиционные имена, например ethN.

Прочие утилиты для работы с сетью

ss

  • ss -ta список прослушиваемых портов
  • ss -t отображение сокетов TCP
  • ss -u отображение сокетов UDP
  • ss -l отображение только прослушиваемых сокетов
  • ss -a отображение всех используемых сокетов
  • ss -p отображение процесса, использующего сокеты
  • ss -n4 отображение только ipv4

nc

  • nc -zv 192.168.10.15 22 проверка, прослушивается ли порт по tcp
  • nc -ul 5555 включение прослушивания порта по udp
  • nc -u 192.168.10.15 5555 проверка подключения по udp, при этом на компьютере, к которому осуществляется подключение должна быть запущена предыдущая команда