← Назад к вопросам

Как настраивать сеть на Linux

1.7 Middle🔥 171 комментариев
#Linux и администрирование#Сети и протоколы

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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

Настройка сети в Linux — фундаментальная задача для любого системного администратора или DevOps -инженера. Современные дистрибутивы используют два основных подхода: классический с помощью утилит ip, ifconfig (устаревшая) и конфигурационных файлов, а также динамический через систему NetworkManager (чаще в desktop-дистрибутивах). В серверной среде предпочтение отдается статической настройке через конфиги для обеспечения предсказуемости и воспроизводимости.

Основные сетевые утилиты и управление интерфейсами

Традиционно для просмотра и настройки использовался ifconfig, но в современных системах он считается устаревшим. Основной инструмент — пакет iproute2 и утилита ip.

Просмотр информации о сетевых интерфейсах

# Показать все интерфейсы с адресами и состоянием
ip addr show
# или кратко:
ip a

# Показать статистику по интерфейсам (пакеты, ошибки)
ip -s link show

# Показать таблицу маршрутизации
ip route show

Управление состоянием интерфейсов

# Включить интерфейс eth0
ip link set eth0 up

# Выключить интерфейс eth0
ip link set eth0 down

# Изменить MAC-адрес интерфейса (только при выключенном состоянии)
ip link set eth0 address 00:11:22:33:44:55

Настройка IP-адресации

Назначение IP -адреса может быть временным (до перезагрузки) или постоянным через конфигурационные файлы.

Временная настройка через ip command

# Назначить IPv4 адрес интерфейсу eth0
ip addr add 192.168.1.100/24 dev eth0

# Добавить дополнительный IP (alias)
ip addr add 192.168.1.101/24 dev eth0 label eth0:1

# Назначить IPv6 адрес
ip -6 addr add 2001:db8::1/64 dev eth0

# Удалить IP адрес
ip addr del 192.168.1.100/24 dev eth0

Постоянная настройка через конфигурационные файлы

Расположение конфигурационных файлов зависит от дистрибутива. Основные варианты:

1. Debian/Ubuntu (/etc/network/interfaces)

# Пример статической настройки для eth0
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

# Пример DHCP настройки
auto eth1
iface eth1 inet dhcp

После изменений применяем:

systemctl restart networking
# или
ifdown eth0 && ifup eth0

2. RHEL/CentOS/Fedora (/etc/sysconfig/network-scripts/ifcfg-<interface>)

# Файл /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

Применяем изменения:

systemctl restart network

3. Systemd-networkd (современные дистрибутивы)

Конфигурация в /etc/systemd/network/:

# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4

Активируем:

systemctl restart systemd-networkd

Настройка маршрутизации

Просмотр и управление таблицей маршрутизации

# Показать таблицу маршрутизации
ip route
# или
route -n

# Добавить маршрут по умолчанию
ip route add default via 192.168.1.1 dev eth0

# Добавить статический маршрут к конкретной сети
ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0

# Удалить маршрут
ip route del 10.0.0.0/8 via 192.168.1.254

Постоянная настройка маршрутов

В Debian/Ubuntu в файле /etc/network/interfaces:

up ip route add 10.0.0.0/8 via 192.168.1.254

В RHEL/CentOS в файле /etc/sysconfig/network-scripts/route-eth0:

10.0.0.0/8 via 192.168.1.254

Настройка DNS

Файл /etc/resolv.conf определяет DNS -серверы:

nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com

Важно: в системах с NetworkManager или systemd-resolved этот файл может быть автоматически перезаписан. Для постоянной настройки DNS прописывайте серверы в конфигах интерфейсов (как показано выше).

Полезные диагностические команды

  • ping — проверка доступности хоста
  • traceroute или tracepath — трассировка маршрута
  • mtr — комбинированный инструмент (ping + traceroute)
  • netstat или ss — информация о сетевых соединениях и портах
  • dig или nslookup — DNS -запросы
  • tcpdump — сниффинг сетевого трафика

Безусловно важные моменты для DevOps

  1. Идемпотентность — конфигурация сети должна быть воспроизводимой. Используйте инструменты управления конфигурацией (Ansible, Puppet, Chef) для настройки сети на всех серверах одинаково.
  2. Проверка связности — автоматизируйте проверку сетевых настроек в скриптах развертывания.
  3. Понимание netplan — в Ubuntu начиная с 17.10 используется netplan (YAML -конфиги в /etc/netplan/). Обязательно изучите его синтаксис.
  4. Именование интерфейсов — современные системы используют Predictable Network Interface Names (enp3s0, ens1 и т.д.), что исключает проблемы с перестановкой сетевых карт.
  5. Виртуальные интерфейсы — умение настраивать VLAN (802.1q), bonding/teaming, bridge -интерфейсы критически важно в облачных и виртуализированных средах.

Пример Ansible-плейбука для настройки сети:

- name: Configure network
  hosts: servers
  tasks:
    - name: Copy network configuration
      template:
        src: ifcfg-eth0.j2
        dest: /etc/sysconfig/network-scripts/ifcfg-eth0
      notify: restart network

  handlers:
    - name: restart network
      systemd:
        name: network
        state: restarted

Настройка сети в Linux требует глубокого понимания сетевых концепций и особенностей конкретного дистрибутива. В продакшн-среде всегда тестируйте изменения в изолированном окружении, имейте план отката и используйте console доступ на случай, если сетевая настройка окажется некорректной и вы потеряете удаленный доступ к серверу.

Как настраивать сеть на Linux | PrepBro