Введение / Зачем это нужно
Правильная настройка сети — это основа работы любого сервера или рабочей станции под Linux. Без корректно назначенного IP-адреса, шлюза и DNS-серверов система не сможет общаться с другими устройствами в локальной сети и интернетом. Этот гайд покрывает практические аспекты настройки как для временных изменений (для тестирования), так и для постоянной конфигурации в основных современных дистрибутивах.
После прохождения вы сможете:
- Назначать IP-адреса и маршруты вручную.
- Понимать, какой инструмент (
ip,nmcli,netplan) использовать в вашем случае. - Диагностировать основные проблемы с сетевым подключением.
Требования / Подготовка
- Доступ к терминалу с правами
sudo(администратора). - Базовое понимание сетевых концепций: IP-адрес, маска подсети, шлюз (gateway), DNS.
- Знание имени вашего сетевого интерфейса. Узнать его можно командой:
Ищите запись безip link showLOOPBACK(обычноlo). Примеры имен:eth0,ens33,enp0s3,wlan0. - Информация о сети от администратора или роутера:
- Желаемый IP-адрес (или используйте DHCP).
- Маска подсети (например,
255.255.255.0или/24). - Адрес шлюза (gateway).
- Адреса DNS-серверов (например,
8.8.8.8,1.1.1.1).
Шаг 1: Временная настройка сети командой ip
Этот способ работает мгновенно, но все изменения исчезнут после перезагрузки. Идеально для тестов.
- Очистите старый адрес (если был) с интерфейса (например,
eth0):sudo ip addr flush dev eth0 - Назначьте новый IP-адрес и маску:
Здесьsudo ip addr add 192.168.1.100/24 dev eth0/24— это маска, эквивалентная255.255.255.0. - Включите (поднимите) интерфейс:
sudo ip link set eth0 up - Добавьте маршрут по умолчанию (шлюз):
sudo ip route add default via 192.168.1.1 - Настройте DNS временно, прописав серверы в
/etc/resolv.conf(файл может быть перезаписан):echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf
⚠️ Важно: Для постоянной настройки необходимо использовать конфигурационные файлы вашего дистрибутива (см. следующие шаги).
Шаг 2: Постоянная настройка в Ubuntu/Debian (Netplan)
Начиная с Ubuntu 17.10, по умолчанию используется Netplan — декларативный конфигуратор, который генерирует настройки для systemd-networkd или NetworkManager.
- Найдите конфигурационный файл в
/etc/netplan/. Обычно он имеет имя вроде00-installer-config.yamlили01-netcfg.yaml. - Отредактируйте файл (например,
sudo nano /etc/netplan/00-installer-config.yaml). Пример конфигурации для статического IP:network: version: 2 renderer: networkd # или 'NetworkManager' для десктопов ethernets: eth0: addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 1.1.1.1ethernets— раздел для проводных интерфейсов. Для Wi-Fi используйтеwifis.- Убедитесь, что отступы в YAML сделаны пробелами, а не табами.
- Примените конфигурацию:
Если вы допустили ошибку в синтаксисе, команда сообщит об этом.sudo netplan apply
Шаг 3: Постоянная настройка через NetworkManager (nmcli)
NetworkManager — популярный демон, часто используемый в десктоп-системах (Ubuntu, Fedora, RHEL). Управлять им можно через CLI утилиту nmcli.
- Проверьте имя существующего подключения (если оно есть):
nmcli connection show - Создайте новое подключение (или измените существующее). Для создания:
sudo nmcli connection add type ethernet con-name static-eth ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1 - Добавьте DNS-серверы к этому подключению:
sudo nmcli connection modify static-eth ipv4.dns "8.8.8.8 1.1.1.1" - Примените настройки и активируйте подключение:
sudo nmcli connection up static-eth - Чтобы подключение поднималось автоматически при загрузке, убедитесь, что флаг
connection.autoconnectустановлен вyes(по умолчанию так).
💡 Совет: Для Wi-Fi используйте
type wifiи добавьте параметрыwifi-sec.key-mgmt wpa-pskиwifi-sec.psk "пароль".
Шаг 4: Настройка в RHEL/CentOS 8+ (systemd-networkd)
В минимальных установках RHEL-семейства часто используется systemd-networkd.
- Создайте или отредактируйте файл конфигурации интерфейса в
/etc/systemd/network/. Имя файла должно оканчиваться на.network(например,20-wired.network).[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 DNS=1.1.1.1 - Перезапустите службу и перезагрузите сеть:
sudo systemctl restart systemd-networkd sudo systemctl restart systemd-resolved # для DNS - Включите автозагрузку служб (обычно уже включена):
sudo systemctl enable systemd-networkd
Проверка результата
- Убедитесь, что интерфейс имеет нужный IP:
В выводе должна быть строка с вашим адресомip addr show eth0inet 192.168.1.100/24. - Проверьте таблицу маршрутизации:
Должна быть записьip route showdefault via 192.168.1.1 dev eth0. - Проверьте доступ в интернет:
Если пинги идут, сетевая связность есть.ping -c 4 8.8.8.8 - Проверьте разрешение DNS-имен:
илиnslookup google.com
Должен вернуться IP-адрес.dig google.com
Возможные проблемы
Operation not permittedилиPermission denied: Вы забыли использоватьsudo.RTNETLINK answers: File exists: Попытка добавить дублирующий IP-адрес. Очистите интерфейс (ip addr flush) или используйте другой адрес.- Интерфейс не поднимается после конфигурации (
state DOWN):- Проверьте, физически ли подключен кабель (для wired) или включен ли Wi-Fi (кнопка/переключатель на ноутбуке,
rfkill list). - Проверьте корректность YAML-синтаксиса в netplan (
sudo netplan try). - Проверьте логи:
journalctl -u systemd-networkdилиjournalctl -u NetworkManager.
- Проверьте, физически ли подключен кабель (для wired) или включен ли Wi-Fi (кнопка/переключатель на ноутбуке,
- Нет доступа в интернет, но
ping 8.8.8.8работает: Проблема с DNS. Проверьте содержимое/etc/resolv.confи настройки DNS в вашем конфигурационном файле (netplan/nmcli). - Конфликт IP-адресов: Убедитесь, что выбранный вами адрес не занят другим устройством в сети. Используйте
arp-scanили проверьте аренду DHCP на роутере.