На главную
- Инструкции для UNIX-систем
- Обзор
- Подключение к серверу по SSH
- Подключение к серверу по SFTP
- Авторизация по SSH-ключу
- Смена или сброс пароля root
- Смена пароля root для MySQL
- Добавление пользователей
- Управление правами доступа
- Защита SSH от подбора пароля. Fail2ban
- Создание дампа базы и восстановление данных
- Установка LAMP на Ubuntu
- Установка phpMyAdmin на Ubuntu с LAMP
- Установка SSL-сертификата на Nginx
- Установка модулей PHP (CentOS)
- Установка модулей PHP (Debian / Ubuntu)
- Настройка параметров PHP (CentOS)
- Настройка параметров PHP (Debian / Ubuntu)
- Настройка перенаправлений
- Настройка перенаправлений (Nginx)
- Настройка FTP в Ubuntu 20.04
- Оптимизация MySQL с помощью MySQLTuner
- Сканирование с помощью ClamAV
- Управление службами в systemd
- Логирование в systemd
- Аудит системных событий
- Добавление дополнительного IP
- Настройка статического IP
- Добавление и удаление диска
- Изменение размера диска
- Монтирование резервных копий
- Создание swap, изменение его размера
- Установка и удаление программ. Менеджеры пакетов
- Установка графической оболочки XFCE на Ubuntu
- Настройка iptables
- Установка произвольной ОС на сервер
- Удаленный доступ к MySQL
- Установка QEMU-агента
- Установка Zabbix-агента
- Установка и работа с PostgreSQL
- Установка почтового сервера iRedMail
- Настройка почтового сервера iRedMail
- Установка SSL на сервер с Keitaro
- Запуск Wordpress на сервере c Ubuntu
- Запуск бота в фоновом режиме
- Установка сертификатов Минцифры
- Подготовка образа для создания облачного сервера
- Создание и развертывание образа с помощью утилиты dd
- Установка Minecraft на CentOS 7
- Запуск сервера Minecraft
- Запуск сервера с CS 1.6 и EngineGP
- Запуск сервера RageMP
- Настройка сети Outline
- Изменение настроек DNS-серверов
- Перенос сервера с большим диском на меньший с помощью rsync
- Диагностика и решение проблем
- Инструкции для Windows
- Панели управления
Добавление дополнительного IP
Это инструкция для серверов с операционными системами Linux. Если вы используете сервер с ОС Windows, воспользуйтесь этой статьей.
Чтобы добавить на сервер дополнительный IP-адрес, сначала его необходимо добавить в панели управления, после чего настроить статически внутри сервера — по инструкции ниже.
В качестве примера в этой инструкции мы будем использовать адреса:
-
192.0.2.70
-
198.51.100.12
-
2001:db8:a:a::a
-
2001:db8:b:b::b
Кроме самих адресов также потребуется указать маску сети, шлюз и название интерфейса.
-
Маска сети. Для IPv4-адресов указывайте
/24
, а для IPv6 —/64
. Например,192.0.2.70/24
и2001:db8:a:a::a/64
. -
Шлюз. Это первый адрес в сети, достаточно поменять последнее число IP-адреса (октет или хекстет) на 1. Подойдет шлюз любого из ваших адресов. Например,
192.0.2.1
и2001:db8:a:a::1
. -
Интерфейс. В зависимости от дистрибутива название интерфейса будет отличаться. Например, это могут быть
eth0
илиens3
. Проверить имя интерфейса на своем сервере можно командойip addr
.
Чтобы настроить IP-адрес на сервере, подключитесь к нему по SSH. В статье будут указаны команды, которые нужно выполнить в консоли.
Если во время настройки что-то пойдет не так и на сервере пропадет интернет, вы не сможете подключиться к нему удаленно по SSH. В этом случае вы можете использовать консоль в панели управления — продолжить настройку в ней или временно настроить интернет утилитой ip
.
Временная настройка
Если вам нужно настроить сеть временно, вы можете использовать утилиту ip
. Все изменения пропадут после перезагрузки сервера.
Проверьте, какие адреса уже добавлены на интерфейс:
ip addr
Добавьте нужные адреса командой ниже, указав верное значение IP. Для IPv4:
ip addr add 192.0.2.70/24 dev eth0
Для IPv6:
ip addr add 2001:db8:a:a::a/64 dev eth0
Проверьте, какой IPv4-адрес указан в качестве шлюза по умолчанию:
ip route show default
Посмотреть шлюз для IPv6 можно так:
ip -6 route show default
Если шлюза нет, добавьте его этой командой:
ip route add default via 192.0.2.1 dev eth0
Для IPv6:
ip route add default via 2001:db8:a:a::1 dev eth0
Постоянная настройка
Чтобы изменения сохранились в конфигурации сервера и не сбросились при перезагрузке, используйте инструкции ниже.
Ubuntu
Ubuntu использует netplan для сетевых настроек, все конфигурационные файлы находятся в /etc/netplan/
и называются произвольно. Своим файлам вы тоже можете выбрать произвольные названия, но они должны иметь расширение .yaml
.
В файлах формата YAML важно выставлять одинаковые отступы пробелами, табуляция не допускается. С помощью отступов вы указываете вложенность конфигурации, например, что настройка маршрутов routes
вложена в настройки интерфейса eth0
.
После выполнения этой инструкции у вас будет два файла: для IPv4 и IPv6. Вы можете держать их вместе одновременно без конфликтов, потому что netplan
объединит их в одну конфигурацию.
Посмотреть на объединенную конфигурацию можно этой командой:
netplan get
Вот пример вывода команды, который получится, если следовать каждому пункту в этой инструкции:
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- "192.0.2.70/24"
- "198.51.100.12/24"
- "2001:db8:a:a::a/64"
- "2001:db8:b:b::b/64"
nameservers:
addresses:
- "1.1.1.1"
- "1.0.0.1"
- "2606:4700:4700::1111"
- "2606:4700:4700::1001"
dhcp4: false
dhcp6: false
routes:
- to: "0.0.0.0/0"
via: "192.0.2.1"
- to: "::/0"
via: "2001:db8:a:a::1"
В этой конфигурации название интерфейса eth0
на некоторых версиях Ubuntu придется поменять. Проверьте имя интерфейса на своем сервере этой командой:
ip addr
Настройка IPv4 в Ubuntu
Создайте файл /etc/netplan/99-ipv4.yaml
:
nano /etc/netplan/99-ipv4.yaml
Скопируйте эти строки, заменив адреса (addresses
) и шлюз (via
) на нужные значения:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
addresses:
- "192.0.2.70/24"
- "198.51.100.12/24"
routes:
- to: "0.0.0.0/0"
via: "192.0.2.1"
nameservers:
addresses:
- "1.1.1.1"
- "1.0.0.1"
Закройте права на чтение этого файла всем, кроме root
:
chmod 600 /etc/netplan/99-ipv4.yaml
Настройка IPv6 в Ubuntu
Создайте файл /etc/netplan/99-ipv6.yaml
:
nano /etc/netplan/99-ipv6.yaml
Скопируйте эти строки, заменив адреса (addresses
) и шлюз (via
) на нужные значения:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp6: false
addresses:
- "2001:db8:a:a::a/64"
- "2001:db8:b:b::b/64"
routes:
- to: "::/0"
via: "2001:db8:a:a::1"
nameservers:
addresses:
- "2606:4700:4700::1111"
- "2606:4700:4700::1001"
Закройте права на чтение этого файла всем, кроме root
:
chmod 600 /etc/netplan/99-ipv6.yaml
Отключите dhclient6
из автозагрузки:
systemctl disable dhclient6.service
Так как служба systemd-networkd
тоже вызывает dhclient6
при запуске сервера, нужно отредактировать файл сервиса:
-
На Ubuntu 20.04, 22.04 и 24.04 откройте
/usr/lib/systemd/system/systemd-networkd.service
-
На Ubuntu 18.04 откройте
/lib/systemd/system/systemd-networkd.service
nano /usr/lib/systemd/system/systemd-networkd.service
Закомментируйте эту строку, чтобы dhclient6
не вызывался при каждом старте сервера:
#Wants=network.target dhclient6.service
Примените конфиг systemd
:
systemctl daemon-reload
Отключение прошлых настроек в Ubuntu
Проверьте директорию /etc/netplan/
, в ней могут быть другие настройки интерфейсов, которые будут конфликтовать с вашими. На чистой установке будет файл 50-cloud-init.yaml
, остальные можно проверить этой командой:
ls -a /etc/netplan/
Переименуйте файл /etc/netplan/50-cloud-init.yaml
, главное — чтобы он не заканчивался на .yaml
:
mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml-backup-$(date +"%Y%m%d")
Повторите это со всеми файлами, кроме 99-ipv4.yaml
и 99-ipv6.yaml
, если они есть.
В старых версиях Ubuntu также могут быть файлы 01-netcfg.yaml
или 00-installer-config.yaml
, их тоже нужно переименовать:
mv /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml-backup-$(date +"%Y%m%d")
mv /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml-backup-$(date +"%Y%m%d")
Чтобы cloud-init
больше не создавал свой файл после перезагрузки сервера, создайте файл /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
И пропишите в нем эту строку:
network: {config: disabled}
Прослушивание адреса в Ubuntu
После перезагрузки сервера адрес может не успеть добавиться, когда другие службы захотят его прослушивать. Поэтому разрешаем bind
на адреса, которых нет на интерфейсе.
Откройте файл /etc/sysctl.conf
:
nano /etc/sysctl.conf
Допишите в него эти строки:
net.ipv4.ip_nonlocal_bind = 1
net.ipv6.ip_nonlocal_bind = 1
Перезагрузите конфигурацию sysctl
:
sysctl -p /etc/sysctl.conf
Применение настроек в Ubuntu
Примените конфиг netplan
:
netplan --debug apply
Проверьте, что адреса добавились на интерфейс:
ip addr
После этого рекомендуем перезагрузить сервер и проверить, что адреса работают верно.
Debian
Debian использует файл /etc/network/interfaces для сетевых настроек.
Вот пример итоговой конфигурации, если следовать каждому пункту в этой инструкции:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.0.2.70/24
gateway 192.0.2.1
post-up ip addr add 198.51.100.12/24 dev eth0
pre-down ip addr del 198.51.100.12/24 dev eth0
auto eth0
allow-hotplug eth0
iface eth0 inet6 static
address 2001:db8:a:a::a/64
gateway 2001:db8:a:a::1
post-up ip addr add 2001:db8:b:b::b/64 dev eth0
pre-down ip addr del 2001:db8:b:b::b/64 dev eth0
Настройка IPv4 в Debian
Откройте файл /etc/network/interfaces
:
nano /etc/network/interfaces
Закомментируйте или удалите текущие настройки интерфейса eth0
:
#allow-hotplug eth0
#iface eth0 inet dhcp
Добавьте следующие строки, заменив адреса и шлюз (gateway
) на нужные значения:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.0.2.70/24
gateway 192.0.2.1
post-up ip addr add 198.51.100.12/24 dev eth0
pre-down ip addr del 198.51.100.12/24 dev eth0
Настройка IPv6 в Debian
Откройте файл /etc/network/interfaces
:
nano /etc/network/interfaces
Добавьте в него следующие строки, заменив адреса и шлюз (gateway
) на нужные значения:
auto eth0
allow-hotplug eth0
iface eth0 inet6 static
address 2001:db8:a:a::a/64
gateway 2001:db8:a:a::1
post-up ip addr add 2001:db8:b:b::b/64 dev eth0
pre-down ip addr del 2001:db8:b:b::b/64 dev eth0
Отключите dhclient6
из автозагрузки:
systemctl disable dhclient6.service
Так как служба networking
тоже вызывает dhclient6
при запуске сервера, нужно отредактировать файл /lib/systemd/system/networking.service
:
nano /lib/systemd/system/networking.service
Закомментируйте эту строку, чтобы dhclient6
не вызывался при каждом старте сервера:
#Wants=network.target dhclient6.service
Примените конфигурацию systemd
:
systemctl daemon-reload
Отключение прошлых настроек в Debian
Проверьте директорию /etc/network/interfaces.d/
, в ней могут быть другие настройки интерфейсов, которые будут конфликтовать с вашими. На чистой установке будет файл 50-cloud-init
, остальные можно проверить этой командой:
ls -a /etc/network/interfaces.d/
Переместите /etc/network/interfaces.d/50-cloud-init
в другую директорию, например, в /root/
:
mv /etc/network/interfaces.d/50-cloud-init /root/50-cloud-init-backup-$(date +"%Y%m%d")
Чтобы cloud-init
больше не создавал свой файл после перезагрузки сервера, создайте файл /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
И добавьте в него эту строку:
network: {config: disabled}
Прослушивание адреса в Debian
После перезагрузки сервера адрес может не успеть добавиться, когда другие службы захотят его прослушивать. Поэтому разрешаем bind
на адреса, которых нет на интерфейсе.
Откройте файл /etc/sysctl.conf
:
nano /etc/sysctl.conf
Допишите в него эти строки:
net.ipv4.ip_nonlocal_bind = 1
net.ipv6.ip_nonlocal_bind = 1
Перезагрузите конфигурацию sysctl
:
sysctl -p /etc/sysctl.conf
Применение настроек в Debian
Перезапустите службу networking
:
systemctl restart networking.service
Проверьте, что адреса добавились на интерфейс:
ip addr
После этого рекомендуем перезагрузить сервер и проверить, что адреса работают верно.
CentOS
CentOS использует NetworkManager для сетевых настроек. Вместо редактирования конфигурационных файлов можно использовать утилиту nmcli
или nmtui
.
Перед выполнением команд из инструкции проверьте имя соединения:
nmcli connection show
Отсюда вам нужно значение NAME
— в нашем случае это ens3
, в следующих командах будет использоваться это имя:
NAME UUID TYPE DEVICE
ens3 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet ens3
Чтобы не исправлять каждую команду в инструкции, вы можете временно переименовать соединение на ens3
, а потом вернуть удобное имя. Например, если соединение называется eth0
, команда будет выглядеть так:
nmcli connection modify eth0 connection.id ens3
В последних версиях CentOS NetworkManager
сохраняет настройки в директорию /etc/NetworkManager/system-connections/
. Раньше использовались ifcfg-файлы в /etc/sysconfig/network-scripts/
, но они устарели и скоро будут удалены.
Вот пример содержания итоговой конфигурации в /etc/NetworkManager/system-connections/
, который получится, если следовать каждому пункту в этой инструкции:
[connection]
id=ens3
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=ethernet
interface-name=ens3
timestamp=1719197216
[ethernet]
[ipv4]
address1=192.0.2.70/24,192.0.2.1
address2=198.51.100.12/24
dns=1.1.1.1;1.0.0.1;
method=manual
[ipv6]
addr-gen-mode=eui64
address1=2001:db8:a:a::a/64,2001:db8:a:a::1
address2=2001:db8:b:b::b/64
dns=2606:4700:4700::1111;2606:4700:4700::1001;
method=manual
[proxy]
Настройка IPv4 в CentOS
Добавьте первый адрес к соединению:
nmcli connection modify ens3 ipv4.addresses 192.0.2.70/24
С помощью +
перед ipv4.addresses
можно добавить второй адрес:
nmcli connection modify ens3 +ipv4.addresses 198.51.100.12/24
Аналогично с помощью -
перед ipv4.addresses
можно удалить адрес, если вы ошиблись. Проверить все добавленные адреса можно этой командой:
nmcli connection show ens3 | grep addresses
Добавьте шлюз:
nmcli connection modify ens3 ipv4.gateway 192.0.2.1
Остальные команды можно просто скопировать. В них прописаны настройки DNS и указывается ручной способ конфигурации.
nmcli connection modify ens3 ipv4.dns 1.1.1.1
nmcli connection modify ens3 +ipv4.dns 1.0.0.1
nmcli connection modify ens3 ipv4.method manual
Настройка IPv6 в CentOS
Конфигурация IPv6 выполняется по такому же принципу, как IPv4, только названия настроек теперь начинаются с ipv6
.
Добавьте ваши адреса и шлюз:
nmcli connection modify ens3 ipv6.addresses 2001:db8:a:a::a/64
nmcli connection modify ens3 +ipv6.addresses 2001:db8:b:b::b/64
nmcli connection modify ens3 ipv6.gateway 2001:db8:a:a::1
После этого скопируйте эти команды:
nmcli connection modify ens3 ipv6.dns 2606:4700:4700::1111
nmcli connection modify ens3 +ipv6.dns 2606:4700:4700::1001
nmcli connection modify ens3 ipv6.method manual
Отключение прошлых настроек в CentOS
Проверьте директорию /etc/sysconfig/network-scripts/
, в ней могут быть другие настройки интерфейсов, которые будут конфликтовать с вашими. На чистой установке будет файл ifcfg-ens3
, созданный cloud-init
. Остальные можно проверить этой командой:
ls -a /etc/sysconfig/network-scripts/
Проверьте, что ifcfg-ens3
действительно создан cloud-init
. Он должен начинаться со слов «Created by cloud-init on instance boot automatically»:
head /etc/sysconfig/network-scripts/ifcfg-ens3
Переместите /etc/sysconfig/network-scripts/ifcfg-ens3
в другую директорию, например, в /root/
:
mv /etc/sysconfig/network-scripts/ifcfg-ens3 /root/ifcfg-ens3-backup-$(date +"%Y%m%d")
Чтобы изменения сохранились после перезагрузки сервера, создайте файл /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
И пропишите в нем эту строку:
network: {config: disabled}
Прослушивание адреса в CentOS
После перезагрузки сервера адрес может не успеть добавиться, когда другие службы захотят его прослушивать. Поэтому разрешаем bind
на адреса, которых нет на интерфейсе.
Откройте файл /etc/sysctl.conf
:
nano /etc/sysctl.conf
Допишите в него эти строки:
net.ipv4.ip_nonlocal_bind = 1
net.ipv6.ip_nonlocal_bind = 1
Перезагрузите конфигурацию sysctl
:
sysctl -p /etc/sysctl.conf
Применение настроек в CentOS
Перезапустите службу NetworkManager
:
systemctl restart NetworkManager.service
Проверьте, что адреса добавились на интерфейс:
ip addr
После этого рекомендуем перезагрузить сервер и проверить, что адреса работают верно.
Была ли статья полезна?