Мы уже узнали, как задать статический IP-адрес для системы Linux, а также как настроить несколько IP-адресов в системе Linux.
В этом руководстве мы узнаем, как назначить IP-адрес удаленной Linux-системе с помощью команды nmcli.
Существует ряд причин, по которым может потребоваться изменить IP-адрес удаленной Linux-системы.
К числу распространенных причин относятся:
- Для соблюдения сетевых политик: Во многих организациях существуют политики, требующие, чтобы все устройства в сети имели определенный диапазон IP-адресов. Если удаленная система Linux не соответствует этим требованиям, то может потребоваться изменить ее IP-адрес.
- Для устранения сетевых проблем: Если удаленная система Linux испытывает проблемы с сетью, изменение ее IP-адреса иногда помогает решить проблему.
- Для переноса системы в новую сеть: При переносе удаленной системы Linux в новую сеть необходимо изменить ее IP-адрес, чтобы он соответствовал диапазону адресов новой сети.
- Для повышения безопасности: Изменение IP-адреса удаленной Linux-системы может затруднить злоумышленникам ее поиск и атаку.
Независимо от причин, если вам вдруг понадобится изменить IP-адрес удаленной Linux-системы, это можно легко сделать с помощью команды nmcli.
🖧 Как изменить имя хоста в Linux с помощью nmcli
Назначение IP-адреса удаленной Linux-системе с помощью команды nmcli
Прежде чем назначать IP-адрес удаленной Linux-системы с помощью nmcli, необходимо найти сетевой интерфейс этой системы.
Для этого выполните команду:
🐧 Как найти доступные сетевые интерфейсы в системах Linux
Замените имя пользователя и IP-адрес на свои собственные.
Пример вывода:
NAME UUID TYPE DEVICE Wired connection 1 60e8eaf3-89f9-3e9f-9919-1944e7abee20 ethernet ens18
Как видно из приведенного результата, имя сетевого подключения – ‘Wired connection 1’.
Теперь изменим IP-адрес с помощью команды:
Здесь флаг -t в команде ssh заставляет ее выделять псевдотерминал, что позволяет sudo запрашивать пароль.
При выполнении этой команды ssh должен запросить пароль удаленного пользователя (если требуется), а затем sudo запросит пароль на удаленной машине.
Другими словами, вам будет предложено ввести пароль удаленного пользователя дважды.
Ниже приводится полное описание приведенной выше команды.
- ssh: Это команда Secure Shell, которая используется для установления безопасного соединения с удаленной машиной.
- -t: Эта опция заставляет выделять псевдотерминал. Здесь она используется для того, чтобы убедиться, что на удаленной стороне выделен терминал, что позволяет sudo запрашивать пароль при необходимости.
- itsecforu@192.168.1.40: Здесь указывается удаленный пользователь и хост, к которому вы подключаетесь. Замените itsecforu на реальное имя пользователя, а 192.168.1.40 – на IP-адрес вашей удаленной системы.
- “sudo nmcli con modify ‘Wired connection 1’ ipv4.address 192.168.1.50/24”: Это команда, которая выполняется на удаленной машине после установления SSH-соединения.
- sudo: Запускает следующую команду от имени суперпользователя (или другого пользователя), при условии, что пользователь имеет необходимые права.
- nmcli: Интерфейс командной строки NetworkManager, инструмент для управления NetworkManager (демон, управляющий сетевыми настройками во многих дистрибутивах Linux).
- con modify: Эта опция используется для изменения настроек конкретного сетевого соединения.
- ‘Wired connection 1’: Имя сетевого подключения, которое необходимо изменить. Оно заключено в одинарные кавычки для обработки пробелов в имени подключения.
- ipv4.address 192.168.1.50/24: Устанавливает IPv4-адрес сетевого интерфейса 192.168.1.50 с маской подсети 255.255.255.0 (обозначается /24 в нотации CIDR).
Новый IP-адрес назначен.
Проверим это с помощью команды:
Замените имя пользователя, IP-адрес и имя сетевой карты (ens18) на свои.
Вы увидите, что новый IP-адрес назначен.
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff altname enp0s18 inet 192.168.1.40/24 brd 192.168.1.255 scope global noprefixroute ens18 valid_lft forever preferred_lft forever inet 192.168.1.50/24 brd 192.168.1.255 scope global secondary noprefixroute ens18 valid_lft forever preferred_lft forever inet6 fe80::bfcf:b9d3:60de:af1b/64 scope link noprefixroute valid_lft forever preferred_lft forever
Этот способ позволяет добавить несколько IP-адресов к удаленному Linux через SSH с помощью команды nmcli.
Как я уже говорил, при этом способе добавляется дополнительный IP-адрес.
Существующий старый IP-адрес останется неизменным.
Вы также можете использовать опцию -S для передачи пароля sudo.
Она позволяет sudo считывать пароль из стандартного ввода.
Вы можете передать пароль через echo и передать его в ssh, но учтите, что этот метод небезопасен, так как пароль может быть виден в списке процессов или истории оболочки.
$ echo 'yourpassword' | ssh -t user@ip "sudo -S nmcli con modify YourConnectionName ipv4.address YourIPAddress"
Еще раз предупреждаю, что этот метод небезопасен, так как ваш пароль может быть открыт другим пользователям на локальной машине или через сетевую передачу.
Заключение
Как видите, изменение IP-адреса удаленной Linux-системы – несложный процесс.
Команда nmcli значительно упрощает эту задачу.