Смена IP-адреса сервера Staffcop¶
Автоматическая смена IP-адреса на Ubuntu¶
Примечание
Автоматический способ гарантирует сохранение текущего адреса без изменений. Текущий динамический IP-адрес будет становлен в качестве статического.
Для смены адреса выполните:
wget docs.staffcop.ru/dynamic-to-static-ip.sh
sudo bash dynamic-to-static-ip.sh
Если вы хотите сразу задать определенный адрес серверу, введите этот адрес через пробел после имени скрипта, например так:
sudo bash dynamic-to-static-ip.sh 192.168.1.132
Ручная смена IP-адреса на Ubuntu¶
Предупреждение
Актуально только для версии 4.7 и выше
В Ubuntu для установки статического IP-адреса сервера используется утилита Netplan.
1. Установите Netplan¶
apt install netplan
Все настройки Netplan выполняются только от имени пользователя root. Для этого войдите в режим root с помощью команды sudo su -
и введите пароль обычного пользователя:
sudo su
2. Отключите Cloud-init¶
После установки Netplan отключите Cloud-init.
Примечание
Cloud-init — это инструмент для настройки серверов на стадии запуска. На серверах со статическими IP-адресами Cloud-init может сбрасывать заданные вручную настройки сети. Чтобы сохранить настройки сети неизменными, отключите для Cloud-init управление сетью.
Создайте файл:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Добавьте в файл строку, которая отключает управление сетью для Cloud-Init:
network: {config: disabled}
Чтобы настройки сети не перезаписывались, удалите конфигурационный файл, который Cloud-init создает для Netplan:
sudo rm -f /etc/netplan/50-cloud-init.yaml
После этого можно создавать свою конфигурацию.
3. Создайте конфигурацию¶
Определите, в каком файле содержится текущая конфигурация. Для этого посмотрите содержимое папки /etc/netplan с помощью команды ls
:
ls /etc/netplan
В этом примере конфигурация лежит в файле 01-netcfg.yaml. Запустите редактор Nano с параметром – именем этого файла:
nano /etc/netplan/01-netcfg.yaml
Откроется окно редактора.
Добавьте в файл сниппет:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [192.168.124.200/24]
gateway4: 192.168.124.1
nameservers:
addresses: [192.168.124.1, 8.8.8.8, 8.8.4.4]
В Ubuntu 22.04 формат конфигурации немного изменился. Вместо устаревшего gateway4
задайте маршрут через ключ via
.
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses: [192.168.124.200/24]
routes:
to: 0.0.0.0/0
via: 192.168.124.1
nameservers:
addresses: [192.168.124.1, 8.8.8.8, 8.8.4.4]
где:
адрес
192.168.124.200
в первой строкеaddresses
замените на адрес вашего сервера;маска
/24
соответствует255.255.255.0
. Если она совпадает с вашей маской, ничего не меняйте. В противном случае, замените на свою;адрес
192.168.124.1
в строкеgateway4
илиvia
— на адреc своего шлюза;значения адресов DNS-серверов во второй строке
addresses
— на значения адресов своих DNS-серверов;в конце текста должна быть как минимум одна пустая строка.
После внесения изменений выйдите из режима редактирования с помощью клавиш Ctrl+X. Редактор запросит сохранение изменённого файла:
Ответьте нажатием клавиши Y (yes). Редактор предложит имя файла для сохранения. Нажмите Enter, чтобы согласиться.
Примените конфигурацию:
netplan apply
Если вывод без ошибок — все выполнено верно. Для гарантии перезагрузитесь c помощью команды reboot
и проверьте получение IP-адреса:
ifconfig -a