Перевод существующего соединения на DHCP через `nmcli`
> [!INFO] Применимость > **ALT Linux 10.4–11.x** · **NetworkManager** · локальная работа через CLI/TTY > Изменяется только конфигурация **IPv4**. Настройки IPv6 не затрагиваются.
[!INFO] Применимость
ALT Linux 10.4–11.x · NetworkManager · локальная работа через CLI/TTY
Изменяется только конфигурация IPv4. Настройки IPv6 не затрагиваются.
Оглавление
- [[#Исходные условия|Исходные условия]]
- [[#Найти интерфейс и профиль|Найти интерфейс и профиль]]
- [[#Сохранить резервную копию|Сохранить резервную копию]]
- [[#Перевести профиль на DHCP|Перевести профиль на DHCP]]
- [[#Применить настройки|Применить настройки]]
- [[#Проверить результат|Проверить результат]]
- [[#Откатить изменения|Откатить изменения]]
- [[#Типовые проблемы|Типовые проблемы]]
Исходные условия
На ПК уже существует профиль NetworkManager со статическими параметрами IPv4.
Необходимо получать по DHCP (Dynamic Host Configuration Protocol):
- IPv4-адрес и маску;
- шлюз по умолчанию;
- DNS-серверы;
- маршруты, передаваемые DHCP-сервером.
Предупреждение
При переключении интерфейс кратковременно потеряет сеть. Работу выполнять с локальной консоли.
Найти интерфейс и профиль
nmcli -f DEVICE,TYPE,STATE,CONNECTION device status
Пример:
DEVICE TYPE STATE CONNECTION
enp1s0 ethernet connected Проводное соединение 1
Подставить найденные значения:
IFACE="enp1s0"
PROFILE="Проводное соединение 1"
Проверить текущие параметры:
nmcli -f \
ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns,ipv4.dns-search,ipv4.routes \
connection show "$PROFILE"
Сохранить резервную копию
BACKUP="${PROFILE}-static-backup-$(date +%Y%m%d-%H%M%S)"
sudo nmcli connection clone "$PROFILE" "$BACKUP"
sudo nmcli connection modify "$BACKUP" connection.autoconnect no
Проверить наличие копии:
nmcli -f NAME,TYPE,DEVICE,AUTOCONNECT connection show
Перевести профиль на DHCP
sudo nmcli connection modify "$PROFILE" \
ipv4.method auto \
ipv4.addresses "" \
ipv4.gateway "" \
ipv4.dns "" \
ipv4.dns-search "" \
ipv4.routes "" \
ipv4.ignore-auto-dns no \
ipv4.ignore-auto-routes no \
ipv4.never-default no \
ipv4.may-fail no
Команда удаляет сохранённые статические параметры IPv4 и разрешает принимать адрес, шлюз, DNS и маршруты от DHCP-сервера.
Применить настройки
sudo nmcli connection down "$PROFILE"
sudo nmcli connection up "$PROFILE" ifname "$IFACE"
Успешное подключение завершается сообщением:
Connection successfully activated
Проверить результат
Проверить параметры профиля
nmcli -f \
ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns,ipv4.routes,ipv4.ignore-auto-dns \
connection show "$PROFILE"
Ожидаемые ключевые значения:
ipv4.method: auto
ipv4.addresses: --
ipv4.gateway: --
ipv4.dns: --
ipv4.routes: --
ipv4.ignore-auto-dns: no
Примечание
Это сохранённые параметры профиля. Полученные по DHCP значения проверяются на самом интерфейсе.
Проверить полученные параметры DHCP
nmcli -f \
GENERAL.STATE,GENERAL.CONNECTION,IP4.ADDRESS,IP4.GATEWAY,IP4.DNS,IP4.ROUTE \
device show "$IFACE"
Дополнительно:
ip -4 address show dev "$IFACE"
ip -4 route
Должны присутствовать:
- IPv4-адрес рабочей сети;
- маршрут до локальной подсети;
- маршрут по умолчанию через полученный шлюз;
- DNS-серверы.
Адрес вида 169.254.x.x не является нормальным DHCP-адресом рабочей сети.
Проверить связь
ping -c 3 <IP-адрес_шлюза>
getent hosts <имя_доменного_ресурса>
Откатить изменения
Отключить изменённый профиль:
sudo nmcli connection down "$PROFILE"
sudo nmcli connection modify "$PROFILE" connection.autoconnect no
Вернуть резервную копию:
sudo nmcli connection modify "$BACKUP" connection.autoconnect yes
sudo nmcli connection up "$BACKUP" ifname "$IFACE"
Проверить восстановленные параметры:
nmcli -f \
GENERAL.CONNECTION,IP4.ADDRESS,IP4.GATEWAY,IP4.DNS,IP4.ROUTE \
device show "$IFACE"
Типовые проблемы
| Симптом | Проверка |
|---|---|
| IPv4-адрес не получен | Проверить кабель, линк, VLAN и доступность DHCP-сервера |
Получен адрес 169.254.x.x |
DHCP-сервер не ответил; проверить сетевой сегмент |
| Остался старый статический адрес | Проверить имя изменённого профиля и повторно активировать его |
| Адрес получен, шлюза нет | Проверить параметры DHCP-сервера и ipv4.never-default no |
| DNS не получен | Проверить ipv4.ignore-auto-dns no и параметры DHCP-сервера |
| Активировался другой профиль | Проверить nmcli connection show --active и приоритет автоподключения |