Как назначить IP-адрес удаленным системам Linux через SSH
Легко настраивайте IP-адреса для удаленных систем Linux с помощью команды nmcli через SSH.
Мы уже узнали, как установить статический IP-адрес для системы Linux, а также как настроить несколько IP-адресов в системе Linux. В этом руководстве мы узнаем, как назначить IP-адрес удаленной системе Linux с помощью команды nmcli.
Существует ряд причин, по которым вам может потребоваться изменить IP-адрес удаленной системы Linux. Некоторые распространенные причины включают в себя:
- Для соблюдения сетевых политик. Во многих организациях действуют политики, требующие, чтобы все устройства в сети имели определенный диапазон IP-адресов. Если удаленная система Linux не соответствует этим политикам, вам может потребоваться изменить ее IP-адрес.
- Для устранения проблем с сетью. Если в удаленной системе Linux возникают проблемы с сетью, изменение ее IP-адреса иногда может помочь решить проблему.
- Чтобы перенести систему в новую сеть: если вы переносите удаленную систему Linux в новую сеть, вам потребуется изменить ее IP-адрес, чтобы он соответствовал диапазону адресов новой сети.
- Для повышения безопасности: изменение IP-адреса удаленной системы Linux может затруднить ее обнаружение и нацеливание на злоумышленников.
Независимо от причин, если вам когда-нибудь понадобится изменить IP-адрес удаленной системы Linux, это можно легко сделать с помощью команды nmcli
.
Назначьте IP-адрес удаленной системе Linux с помощью команды nmcli
Как вы, возможно, уже знаете, мы можем запускать команды в удаленной системе Linux с помощью SSH, что упрощает эффективное и гибкое управление удаленными системами Linux.
Прежде чем назначать IP-адрес удаленной системы Linux с помощью nmcli
, сначала нам нужно найти сетевой интерфейс этой системы. Для этого запустите:
ssh ostechnix@192.168.1.40 'nmcli con show'
Замените имя пользователя и IP-адрес на свои собственные.
Пример вывода:
NAME UUID TYPE DEVICE
Wired connection 1 60e8eaf3-89f9-3e9f-9919-1944e7abee20 ethernet ens18
Как вы видите в выводе выше, имя сетевого подключения — «Проводное соединение 1
».
Теперь давайте изменим IP-адрес с помощью команды:
ssh -t ostechnix@192.168.1.40 "sudo nmcli con modify 'Wired connection 1' ipv4.address 192.168.1.50/24"
Здесь флаг -t
с ssh заставляет его выделить псевдотерминал, который позволяет sudo запрашивать пароль. Когда вы запускаете эту команду, ssh должен запросить у вас пароль удаленного пользователя (если требуется), а затем sudo запросит пароль на удаленном компьютере. Другими словами, вам будет предложено дважды ввести пароль удаленного пользователя.
Вот полная разбивка приведенной выше команды.
ssh
: это команда Secure Shell, которая используется для установки безопасного соединения с удаленным компьютером.-t
: этот параметр принудительно распределяет псевдотерминал. Здесь он используется, чтобы убедиться, что терминал выделен на удаленной стороне, что позволяетsudo
запрашивать пароль при необходимости.ostechnix@192.168.1.40
: указывает удаленного пользователя и хост, к которому вы подключаетесь. Заменитеostechnix
на фактическое имя пользователя и192.168.1.40
на IP-адрес вашей удаленной системы."sudo nmcli conmodify 'Проводное соединение 1' ipv4.address 192.168.1.50/24"
: это команда, которая выполняется на удаленном компьютере после установления SSH-соединения.sudo
: запускает следующую команду от имени суперпользователя (или другого пользователя), предполагая, чтопользователь
имеет необходимые разрешения.
nmcli
: интерфейс командной строки NetworkManager, инструмент для управления NetworkManager (который представляет собой демон, управляющий сетевыми настройками во многих дистрибутивах Linux).conmodify
: эта опция используется для изменения настроек определенного сетевого подключения.'Проводное соединение 1'
: имя сетевого подключения, которое вы хотите изменить. Он заключен в одинарные кавычки для обработки пробелов в имени соединения.ipv4.address 192.168.1.50/24
: устанавливает IPv4-адрес сетевого интерфейса192.168.1.50
с маской подсети255.255.255.0
(обозначается/24
в нотации CIDR).
Вот и все. Присвоен новый IP-адрес. Давайте проверим это с помощью команды:
ssh ostechnix@192.168.1.40 "ip addr show ens18"
Замените имя пользователя, 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-адресов к удаленному Linux через SSH, используя команду nmcli
.
Как я уже сказал, этот метод добавит дополнительный IP. Существующий старый IP-адрес останется неизменным.
Вы также можете использовать опцию -S
для передачи пароля sudo. Это позволяет sudo читать пароль со стандартного ввода. Вы можете повторить пароль и передать его по ssh, но имейте в виду, что этот метод небезопасен, поскольку пароль может быть виден в списке процессов или истории оболочки.
echo 'yourpassword' | ssh -t user@ip "sudo -S nmcli con modify YourConnectionName ipv4.address YourIPAddress"
Еще раз предупреждаю вас: этот метод небезопасен, поскольку ваш пароль может быть доступен другим пользователям на вашем локальном компьютере или через сеть.
Скрипт Bash для назначения IP-адреса удаленной системе Linux через SSH с использованием nmcli
Мы создали простой сценарий Bash под названием nmcli_remote_ip_changer для назначения нового IP-адреса удаленной системе Linux с помощью команды nmcli через SSH.
Этот скрипт довольно прост и в основном делает следующее:
- Попросите вас ввести имя удаленного пользователя и IP-адрес,
- Установите SSH-соединение,
- Получите и отобразите сетевые подключения на удаленном компьютере,
- Предложите вам выбрать соединение для изменения и запросите новую конфигурацию IP,
- Используйте
sudo
в удаленном сеансе, чтобы применить изменения и перезапустить NetworkManager.
Он размещен в репозитории Ostechnix GitHub. Вы можете скачать и изменить его по своему усмотрению.
Если вы хотите использовать этот сценарий для добавления нового IP-адреса в удаленную систему Linux, выполните следующие действия:
1. Git клонирует скрипт:
git clone https://gist.github.com/ostechnix/2c053aba072c3f201f32c22b60cdf9a6 nmcli_remote_ip_changer
Это клонирует сценарий в каталоге с именем nmcli_remote_ip_changer
в текущем каталоге.
2. Перейдите в каталог и сделайте скрипт исполняемым с помощью команд:
cd nmcli_remote_ip_changer/
chmod +x nmcli_remote_ip_changer.sh
3. Запустите скрипт командой:
./nmcli_remote_ip_changer.sh
Вам будет предложено ввести имя пользователя вашей удаленной системы, текущий IP-адрес, новый IP-адрес, шлюз, DNS и т. д. После предоставления всех необходимых данных введите пароль sudo вашей удаленной системы Linux.
Enter the remote username: ostechnix
Enter the remote host IP address: 192.168.1.40
Fetching list of network connections from the remote system...
ostechnix@192.168.1.40's password:
NAME UUID TYPE DEVICE
Wired connection 1 60e8eaf3-89f9-3e9f-9919-1944e7abee20 ethernet ens18
Enter the NAME of the connection you want to modify: Wired connection 1
Enter the new IP address (in CIDR format, e.g., 192.168.1.10/24): 192.168.1.50/24
Enter the new Gateway (leave empty if unchanged): 192.168.1.101
Enter the new DNS (leave empty if unchanged, space separated for multiple): 8.8.8.8,8.8.4.4
ostechnix@192.168.1.40's password:
Applying the new IP address...
[sudo] password for ostechnix:
IP address applied successfully.
Restarting NetworkManager to apply changes...
NetworkManager restarted successfully.
Please verify the connectivity to the remote system.
Connection to 192.168.1.40 closed.
Назначьте IP-адрес удаленной системе Linux через SSH с помощью сценария nmcli_remote_ip_changer
Вы можете проверить новый IP-адрес, подключившись к удаленной системе по SSH, или запустить эту команду из локальной системы, чтобы проверить IP-адрес удаленной системы через SSH:
ssh ostechnix@192.168.1.40 'ip addr show ens18'
Внимание. Если вы не хотите вводить пароль удаленного пользователя, вы можете настроить аутентификацию на основе ключей SSH.
Заключение
Как видите, изменение IP-адреса удаленной системы Linux — простой процесс. Команда nmcli
существенно упрощает эту задачу.
Предпочитаете ли вы выполнять команды nmcli
напрямую или включать их в сценарий, вы можете легко выполнить эту задачу.