Сетевые настройки Linux

В Linux существует два основных способа настройки системы:

  1. Настройка, которая будет активна до перезагрузки;

  2. Настройка, которая будет активна после перезагрузки;

Перед началом настройки сетевого подключения в Linux нужно сначала проверить, каковы текущие настройки сети. Для этого нам вполне подойдёт команда ifconfig. В принципе, для получения информации мы можем использовать её и без прав ROOT, но если хотим получить привилегии суперпользователя, вводим sudo ifconfig. Результатом выполнения команды станет получение списка имеющихся сетевых подключений и их параметров:

результат вывода команды ifconfig

*команда доступна при установленном пакете net-tools

Аналогично с данной командой для вывода сетевых параметров могут использоваться:

ip a:

hostname -I - команда выведет IP-адрес сетевой карты.

Итак, мы видим, что на нашем компьютере используются два сетевых интерфейса: ens192 и lo. Давайте рассмотрим их подробнее.

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

Что касается интерфейса ens192, то это не что иное, как Ethernet — сетевая карта, имеющая следующие сетевые параметры: — 192.168.20.244 — это IP-адрес; — 255.255.255.0 — маска сети; — 00:0c:29:ad:e1:2d — MAC-адрес.

При этом значение RUNNING показывает нам, что в данный момент наш сетевой интерфейс ens192 работает. Кстати, нужно понимать, что в различных версиях Linux имя сетевого интерфейса может быть разным — eth0, eth1, ens192,ens224 и т. д.

Если хотим посмотреть тип соединения, скорость и поддерживаемые параметры, набираем:

sudo ethtool eth0

Из него мы видим, что скорость работы сетевого Linux-интерфейса ens192 — 1000 Мб/с с Full Duplex (с включённым полным дуплексом).

Тут можно уточнить, что полный дуплекс отличается от полудуплекса (Half Duplex) тем, что обеспечивает передачу входящих и исходящих данных одновременно, а не поочередно.

Начало сетевых настроек

Узнав информацию о текущих подключениях, можно переходить к настройкам локальной сети в Linux. У нас есть 3 способа сделать это:

— через графическую оболочку;

— используя команду ifconfig либо инструмент Network Manager;

— используя конфигурационные файлы сетевого сервиса Network либо Networking;

— используя пакет iproute2.

В принципе, последний способ считается одним из самых удобных и надёжных. Чтобы настроить сеть в Linux, нужно открыть файл, который содержит конфигурацию интерфейса. Здесь всё будет зависеть от того, какой именно Linux-дистрибутив используется.

О конкретных вариантах назначения сетевых параметров узнаете далее.

IP Forwarding

Помимо настройки сетевого интерфейса вам потребуется включить функцию IP Forwarding, которая позволяет сетевой операционной системе пересылать пакеты, предназначенные для других пунктов назначения (кроме себя)

Есть два варианта включения данной функции

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

sysctl -w net.ipv4.ip_forward=1

или

echo 1 > /proc/sys/net/ipv4/ip_forward

Постоянное включение

grep forward /etc/sysctl.conf

net.ipv4.ip_forward = 1

Работа с Systemd

Следующее препятствие возникло с выпуском Systemd версии 221. Переадресация IP отключена по умолчанию, и для ее включения требуется наличие дополнительного файла. Если его еще нет, просто добавьте его. Имя файла состоит из имени сетевого интерфейса, за которым следует суффикс `.network`, например `eth0.network` для сетевого интерфейса `/dev/eth0`. Как указано в документации [4], другие расширения игнорируются.

Следующий фрагмент кода показывает настройку сетевого интерфейса `/dev/tun0`. Он состоит из двух разделов — «Match» и «Network». В разделе Match укажите имя сетевого интерфейса, а в разделе Network включите IP Forwarding.

# cat /etc/systemd/network/tun0.network
[ Match ]
Name = tun0
[ Network ]
IPForward = ipv4

Проверка работоспособности

Вы можете проверить текущее значение функции net.ipv4.ip_forward след. образом:

cat /proc/sys/net/ipv4/ip_forward

Если команда возвращает значение 0, значит функция IP Forward выключена, если 1 - включена. Также вы можете проверить значение через команду 'sysctl'

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
#

Last updated