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

Рассмотрим настройку сети в Linux Ubuntu.

Приведу пример команд просмотра информации о сетевых интерфейсах:

ifconfig
ifconfig -a
ifconfig eth0
ip a
ethtool eth0
ethtool -i eth0
ethtool -k eth0
ethtool -S eth0
ip -s -s link show
lshw -C network
lspci | grep Ethernet
netstat -st

Пример включения/отключения сетевых интерфейсов:

sudo ifconfig eth0 up
sudo ifconfig eth0 down
sudo ifconfig wlan0 up

Если имя сетевого интерфейса неизвестно, то смотрим его в logical name набрав команду:

sudo lshw -C network

Чтобы единоразово запросить IP адрес по DHCP выполним команду:

dhclient
dhclient eth0
dhclient enp0s3

Ручное назначение настроек (сбрасываются после перезагрузки):

sudo ifconfig eth0 inet 192.168.0.2 netmask 255.255.255.0

Удалить все IP с интерфейса eth0 можно так:

sudo ip addr flush dev eth0

Чтобы настройки не сбрасывались их необходимо прописать в конфигурационный файл:

sudo nano /etc/network/interfaces

Пример содержания:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1

auto eth1
iface eth1 inet static
address 10.0.0.2
netmask 255.255.255.0

auto eth2
iface eth2 inet dhcp

В редакторе nano комбинация клавиш Ctrl+O служит для сохранения изменений, Ctrl+X для выхода.

DNS адреса добавляются в конфигурационный файл /etc/resolv.conf, каждый с новой строки, таким образом:

nameserver 192.168.0.1
nameserver 8.8.8.8

Посмотреть/добавить/удалить маршрут по умолчанию можно так:

sudo route add default gw 192.168.1.1
sudo route del default gw 192.168.1.1

Удалить сеть:

sudo route del -net 238.1.0.0/16

Посмотреть таблицу маршрутизации так:

sudo ip route show
sudo ip route show 172.16.0.0/16
sudo route
sudo route -n
sudo netstat -rn
sudo cat /proc/net/route

Пример добавления маршрутов для сети через шлюз, сетевой интерфейс и маршрут для конкретного адреса через шлюз:

sudo route add -net 172.16.0.0/16 gw 10.0.0.1
sudo route add -net 172.16.0.0/16 dev eth0
sudo route add -host 192.168.0.1 gw 172.16.0.1

Например с указанным маршрутом можно удалять пакеты:

sudo ip route add blackhole 10.10.0.0/24

Можно добавить маршруты в отдельную таблицу, например мы добавим маршрут по умолчанию всем, а адресу 192.168.5.12 указали свой маршрут по умолчанию:

sudo route add default gw 192.168.1.1
sudo ip rule add from 192.168.5.12 lookup 4
sudo ip route add default via 10.0.2.1 table 4

Перезапуск сетевых служб:

sudo /etc/init.d/networking restart

Либо перезапуск сервера:

sudo reboot

В случае потерь пакетов при большом трафике, можно попробовать отключить offload:

ethtool -K eth0 tso off
ethtool -K eth0 ufo off
ethtool -K eth0 gro off
ethtool -K eth0 gso off
ethtool -K eth0 lro off

Посмотрим какие offload активированы, например generic-segmentation-offload — это сокращено «gso»:

ethtool --show-offload eth0

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

grep eth0 /proc/interrupts

Смотрите также мои статьи:
Как поднять сетевой интерфейс в Linux без IP адреса
Настройка маскарадинга в Ubuntu
Изменение TX и RX буферов сетевых интерфейсов
Изменение txqueuelen в Linux
Причина увеличения RX overruns на сетевом адаптере

Подписаться на IT Blog (RU) по Email
Subscribe to IT Blog (EN) by Email

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

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