Управление IP-адресом в Linux

Что это и зачем
IP-адрес — это адрес устройства в сети, аналог телефонного номера. Он позволяет устройствам обмениваться пакетами данных. DNS переводит доменные имён в IP-адреса. Hostname — человекочитаемое имя устройства, удобное для идентификации в локальной сети.
В этой статье вы найдёте практические команды и шаги для всех распространённых сценарииев: определение текущей конфигурации, статическая и динамическая настройка, изменение hostname, управление в GUI и проверка корректности после изменений.
Как найти IP-адрес и адреса DNS
Командная строка
Современный и рекомендуемый инструмент — команда ip. Она показывает интерфейсы, их IP-адреса в CIDR-нотации и состояние.
ip addr showВ выводе ищите строки вида “inet 192.168.1.10/24” — это ваш IPv4 в CIDR (адрес/маска). Если рядом указано “dynamic” — адрес назначен через DHCP.
Чтобы получить DNS-сервера, используйте NetworkManager через nmcli или читайте /etc/resolv.conf (если система не использует systemd-resolved):
nmcli device show <интерфейс> | grep IP4.DNSПример альтернативной команды, если systemd-resolved активен:
resolvectl status | grep 'DNS Servers' -A1Короткая подсказка: интерфейсы чаще называются eth0, ens33, enp3s0 или wlan0 — зависит от дистрибутива и правил именования systemd.
Графический интерфейс (GUI)
В старых версиях Ubuntu откройте значок сети на верхней панели и выберите “Connection Information” или “Информация о соединении” — там видны IP, шлюз и DNS.
В новых версиях: клик по значку сети → выберите активный интерфейс → нажмите шестерёнку (настройки) → вкладка IPv4/IPv6.
Как задать или изменить IP-адрес (старые системы)
На старых десктопных Ubuntu и Debian конфигурация могла храниться в /etc/network/interfaces. Проверьте файл:
cat /etc/network/interfacesЕсли в файле конфигурация использует “dhcp”, адрес назначается автоматически. Чтобы перейти на статический адрес — отредактируйте файл:
sudo nano /etc/network/interfacesПример записи для статического IPv4:
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Сохраните (Ctrl+X, затем Y и Enter). Примените изменения перезапуском сетевого сервиса:
sudo /etc/init.d/networking restartИли через systemctl, если сервис управляется systemd:
sudo systemctl restart networkingGUI для старых систем
В System Settings → Network выберите интерфейс → Options → вкладка IPv4 → Method: Manual → Add. Введите Address, Netmask, Gateway, DNS и сохраните.
Как задать или изменить IP-адрес (новые системы с Netplan)
Начиная с Ubuntu 17.10 появился Netplan. Файлы конфигурации находятся в /etc/netplan. Netplan использует YAML — обращайте внимание на отступы.
Откройте существующий файл для редактирования (имя может отличаться):
sudo nano /etc/netplan/01-network-manager-all.yamlПример статической конфигурации для интерфейса ens33:
# Этот файл описывает доступные сетевые интерфейсы
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
dhcp6: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]Чтобы вернуться к получению адреса по DHCP:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: yes
dhcp6: yesПримените изменения командой:
sudo netplan applyДля отладки добавьте ключ –debug:
sudo netplan --debug applyGUI для новых систем
Откройте Settings → Network → выберите интерфейс → шестерёнка → IPv4 → Manual → введите адреса и сохраните → Apply.
Как изменить hostname
Hostname — имя устройства в сети. Его можно изменить через файл /etc/hostname и /etc/hosts.
Через командную строку
Откройте файл с текущим именем:
sudo nano /etc/hostnameЗамените старое имя на новое, сохраните и закройте. Затем откройте /etc/hosts и замените старое имя рядом с localhost на новое, например:
127.0.0.1 localhost
127.0.1.1 my-new-hostnameПосле правки перезагрузите систему:
sudo rebootИли временно примените и в текущей сессии:
sudo hostnamectl set-hostname my-new-hostnameОбновлённый /etc/hosts гарантирует, что локальные инструменты разрешают новое имя в правильный IP.
Через GUI
В Settings → Details → About (Сведения) измените Device name, затем отредактируйте /etc/hosts и перезагрузитесь.
Дополнительные способы и утилиты
- nmtui — текстовый интерфейс NetworkManager, удобен на серверах и без X: sudo nmtui
- nmcli — мощный CLI для NetworkManager, позволяет создавать/редактировать подключения
- ifconfig — устаревшая, но иногда всё ещё доступная утилита (пакет net-tools)
- iproute2 (ip) — современный набор инструментов для управления сетью
Команды для быстрого управления через nmcli:
# Список устройств
nmcli device status
# Просмотр соединений
nmcli connection show
# Изменить соединение или создать новое
nmcli connection edit <имя>Проверка и отладка после изменений
- Проверить адреса интерфейсов: ip addr show
- Проверить маршрут по умолчанию: ip route show
- Проверить доступность шлюза: ping -c 4 192.168.1.1
- Проверить DNS-разрешение: dig example.com @8.8.8.8 или nslookup example.com
- Проверить логи NetworkManager или systemd-networkd: journalctl -u NetworkManager -b
Если подключение не появляется — проверьте: правильность отступов в YAML (netplan), отсутствие конфликтов IP в сети, корректность файла /etc/hosts и отсутствие блоков firewall.
Когда подход не работает — типичные причины и решения
- Netplan не применяется: проверьте синтаксис YAML и выполните sudo netplan –debug apply.
- DHCP не даёт адреса: проверьте DHCP-сервер, кабели, VLAN; временно назначьте статический адрес в том же подсети для диагностики.
- IP конфликт: другой хост использует тот же IP — используйте ip neigh или arp-scan, чтобы найти конфликт.
- GUI изменения не действуют: NetworkManager может перезаписывать файлы — используйте nmcli или редактируйте connection через nm-connection-editor.
Ментальные модели и эвристики
- Слой 2 vs слой 3: MAC-адреса работают на канальном уровне (L2), IP — на сетевом (L3). Если передача пакетов шатается на L2, смена IP ничего не даст.
- DHCP — быстро и удобно, но непредсказуемо для серверов. Статический IP — стабильно для серверов и устройств инфраструктуры.
- Храните конфигурацию в одном месте: либо netplan, либо NetworkManager, либо /etc/network/interfaces — смешение приводит к конфликтам.
Чек-листы по ролям
Администратор сети:
- Проверить связанные маршрутизаторы и DHCP-пулы
- Убедиться, что выбранный IP вне DHCP-пула или зарезервирован
- Обновить документацию и CMDB
Системный администратор сервера:
- Конфигурация в /etc/netplan или /etc/network/interfaces под контролем версий
- Обновить /etc/hosts и hostname
- Проверить firewall и SELinux/AppArmor
Обычный пользователь:
- Использовать GUI или nmtui
- Если нет интернета — проверить кабель и индикаторы интерфейса
Мини-методология: стандартные шаги при смене IP
- Записать текущие настройки (ip addr, ip route, /etc/resolv.conf).
- Согласовать новый адрес с администратором сети.
- Внести изменения в конфигурацию (netplan или interfaces или NM).
- Применить изменения и выполнить тесты (ping, dig, curl).
- Обновить документацию и мониторинг, уведомить заинтересованных людей.
Критерии приёмки
- Устройство имеет нужный IP и корректную маску
- Шлюз и маршруты настроены верно
- DNS разрешает имена корректно
- Система корректно отвечает на пинги из сети управления
- Логи сетевых сервисов не содержат критических ошибок
Безопасность и приватность
- Не публикуйте в открытом доступе детали вашей внутренней сети (IP-планы, структуры).
- Для критичных серверов используйте статические IP и ACL на уровне маршрутизаторов.
- Контролируйте доступ к конфигурационным файлам (разрешения 600 для приватных ключей, 644 для конфигураций).
Совместимость и миграция
- Перед миграцией с /etc/network/interfaces на Netplan убедитесь, что все зависимости (services, scripts) совместимы.
- Для массовой миграции составьте скрипт, который создаёт netplan-файлы на основе текущих настроек и тестируйте на тестовой подсети.
Быстрый словарь (1 строка на термин)
- IP: логический адрес устройства в сети.
- CIDR: обозначение адреса и маски через слэш (например, /24).
- DHCP: протокол динамической выдачи адресов.
- DNS: система разрешения имён в IP.
- Hostname: человекочитаемое имя устройства.
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужна смена IP?] --> B{Сервер или рабочая станция}
B -->|Сервер| C[Использовать статический IP]
B -->|Рабочая станция| D{Требуется ручной контроль}
D -->|Да| C
D -->|Нет| E[DHCP]
C --> F{Система использует Netplan?}
F -->|Да| G[Отредактировать /etc/netplan/*.yaml и sudo netplan apply]
F -->|Нет| H[Отредактировать /etc/network/interfaces и restart]
E --> I[Убедиться в корректности DHCP и резервации]Короткое резюме
- Для диагностики используйте ip, nmcli и journalctl.
- Для современных Ubuntu — netplan; для старых — /etc/network/interfaces.
- Для GUI можно применять Settings или nmtui на серверах без X.
- Всегда проверяйте изменения тестами (ping, dig) и обновляйте документацию.
Важно: перед изменением сетевых настроек сохраните конфигурацию и подготовьте способ удалённого восстановления (например, SSH-консоль через IPMI или KVM), иначе вы можете потерять доступ к машине.
Контролируйте и документируйте изменения: грамотное управление сетью повышает надёжность и упрощает отладку.
Похожие материалы
Стереопара Echo: как объединить два динамика
Подключение Flask к CouchDB
Оцифровка CD и DVD: образы дисков и виртуальные приводы
Bixel от Binance: обзор генератора NFT на базе ИИ
Как распознать мошеннический криптотокен