Назначение статического IPv4-адреса через `nmcli`
> [!Применимость] > **ALT Linux:** 10.4–11.x · **Доступ:** локальный терминал · **Инструмент:** NetworkManager / `nmcli` ## Оглавление - [[#Исходные данные|Исходные данные]] - [[#Настройка|Настройка
[!Применимость]
ALT Linux: 10.4–11.x · Доступ: локальный терминал · Инструмент: NetworkManager /nmcli
Оглавление
- [[#Исходные данные|Исходные данные]]
- [[#Настройка|Настройка]]
- [[#Проверка|Проверка]]
- [[#Откат|Откат]]
- [[#Типовые ошибки|Типовые ошибки]]
Исходные данные
| Параметр | Значение |
|---|---|
| IP-адрес | 10.0.0.112/24 |
| Шлюз | 10.0.0.1 |
| DNS | 10.1.1.1, 10.2.2.2 |
Предупреждение
Перед применением убедиться, что 10.0.0.112 выделен этому ПК или свободен.
Настройка
1. Проверить NetworkManager
systemctl is-active NetworkManager network systemd-networkd
Продолжать только если активен NetworkManager. Если активен network или systemd-networkd, остановиться.
2. Найти интерфейс и профиль
nmcli -f DEVICE,TYPE,STATE,CONNECTION device status
nmcli -f NAME,TYPE,DEVICE connection show
Указать найденные значения:
IFACE="enp1s0"
PROFILE="Проводное соединение 1"
Проверить физический линк:
nmcli -g WIRED-PROPERTIES.CARRIER device show "$IFACE"
Ожидается on.
3. Проверить IP на конфликт
При наличии arping:
sudo arping -D -I "$IFACE" -c 3 10.0.0.112
Если получен ответ от другого устройства, адрес занят.
4. Изменить существующий профиль
Создать резервную копию:
BACKUP="${PROFILE}-backup-$(date +%Y%m%d-%H%M%S)"
sudo nmcli connection clone "$PROFILE" "$BACKUP"
sudo nmcli connection modify "$BACKUP" connection.autoconnect no
Задать параметры:
sudo nmcli connection modify "$PROFILE" \
connection.interface-name "$IFACE" \
connection.autoconnect yes \
ipv4.method manual \
ipv4.addresses "10.0.0.112/24" \
ipv4.gateway "10.0.0.1" \
ipv4.dns "10.1.1.1 10.2.2.2" \
ipv4.routes "" \
ipv4.never-default no \
ipv4.may-fail no
Перейти к [[#Применить профиль|применению профиля]].
5. Создать профиль, если его нет
PROFILE="static-$IFACE"
sudo nmcli connection add \
type ethernet \
ifname "$IFACE" \
con-name "$PROFILE" \
connection.autoconnect yes \
ipv4.method manual \
ipv4.addresses "10.0.0.112/24" \
ipv4.gateway "10.0.0.1" \
ipv4.dns "10.1.1.1 10.2.2.2" \
ipv4.never-default no \
ipv4.may-fail no
Применить профиль
sudo nmcli connection up "$PROFILE" ifname "$IFACE"
Проверка
nmcli -f GENERAL.STATE,GENERAL.CONNECTION,IP4.ADDRESS,IP4.GATEWAY,IP4.DNS device show "$IFACE"
ip -4 address show dev "$IFACE"
ip -4 route
ping -c 4 10.0.0.1
Проверить DNS (Domain Name System) по известному доменному имени:
getent hosts <доменное_имя>
Постоянные параметры профиля:
nmcli -f connection.autoconnect,ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns connection show "$PROFILE"
Изменения сохраняются после перезагрузки.
Откат
Изменялся существующий профиль
sudo nmcli connection modify "$PROFILE" connection.autoconnect no
sudo nmcli connection modify "$BACKUP" connection.autoconnect yes
sudo nmcli connection up "$BACKUP" ifname "$IFACE"
Создавался новый профиль
sudo nmcli connection down "$PROFILE"
sudo nmcli connection delete "$PROFILE"
Типовые ошибки
| Ошибка | Проверка |
|---|---|
NetworkManager is not running |
Проверить активный сетевой менеджер. |
WIRED-PROPERTIES.CARRIER: off |
Проверить кабель и порт коммутатора. |
unknown connection |
Выполнить nmcli connection show. |
No suitable device found |
Проверить переменную IFACE. |
Not authorized |
Использовать sudo или оболочку root. |