Как настроить VDS в качестве шлюза (NAT) для других серверов

Как настроить VDS в качестве шлюза (NAT) для других серверов

Если у вас есть несколько виртуальных серверов в облаке NetAngels и только один из них имеет белый IP-адрес, вы можете использовать этот сервер как шлюз для выхода в интернет для остальных машин. Такое решение безопасно и позволяет эффективно использовать адресное пространство. В этой инструкции мы подробно рассмотрим настройку шлюза на базе Linux с помощью iptables.

Для примера мы будем использовать VDS с двумя сетевыми интерфейсами:

  • eth0 с белым IP-адресом 80.80.80.80 — для выхода в интернет;

  • eth1 с серым (приватным) IP-адресом 192.168.0.1 — для связи с внутренними серверами в сети 192.168.0.0/24.

Подключить приватную сеть между VDS можно по инстуркции

1. Настраиваем шлюз

Подключитесь к серверу, который будет выполнять роль шлюза, по SSH. Все дальнейшие действия выполняются на этой машине.

1.1. Устанавливаем утилиты Установите необходимые пакеты одной командой:

sudo apt update && apt install -y iptables iptables-persistent

1.2. Добавляем правила маршрутизации Необходимо разрешить пересылку трафика между интерфейсами и настроить трансляцию адресов (NAT). Это позволит серверам из приватной сети выходить в интернет, используя белый IP-адрес шлюза. Выполните следующие команды:

sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING  -o eth0 -s 192.168.0.0/24 -j MASQUERADE

1.3. Сохраняем правила После перезагрузки сервера все добавленные правила сбрасываются. Чтобы этого избежать, сохраните текущую конфигурацию iptables:

sudo netfilter-persistent save

1.4. Включаем форвардинг в ядре По умолчанию Linux не пересылает пакеты между интерфейсами. Разрешите это явно. Откройте файл /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Добавьте в конец файла или раскомментируйте (уберите символ # в начале) следующие строки:

net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1

Сохраните файл и примените изменения:

sudo sysctl --system

Примечание: В старых версиях дистрибутивов может использоваться команда sysctl -p.

На этом настройка сервера-шлюза завершена.

2. Настраиваем клиента

Теперь подключитесь к виртуальной машине, которую нужно сделать клиентом шлюза. Её задача — отправлять весь внешний трафик через шлюз 192.168.0.1.

2.1. Добавляем временный маршрут Для быстрой проверки связи можно добавить маршрут вручную. Выполните на клиенте:

sudo ip route add default via 192.168.0.1 dev eth1 onlink

Ключ onlink позволяет добавить маршрут, даже если сеть на интерфейсе eth1 не является непосредственно достижимой (в данном случае это стандартный безопасный способ).

2.2. Настраиваем автоматическое добавление маршрута Чтобы маршрут не исчезал после перезагрузки клиента, добавим его в автозагрузку. Для этого модифицируем скрипт, котрый отвечает за настройку сети через наш гостевой агент. . Откройте файл настройки сети:

sudo nano /etc/network/if-up.d/phoenix-ga-netinit

Вставьте следующее содержимое:

if [ "$IFACE" = "eth1" ]; then
    /sbin/ip route add default via 192.168.0.1 dev eth1 onlink
fi

Содержиоме нужно вставить после строки /usr/sbin/phoenix-ga netinit --configure-iface $IFACE

3. Проверяем результат

На клиентской машине выполните команду:

sudo ip route show

Вы должны увидеть строку, похожую на: default via 192.168.0.1 dev eth1.

Для проверки самого соединения выполните пинг любого доступного хоста в интернете, например:

ping 8.8.8.8

А также по доменному имени (чтобы убедиться, что и DNS работает):

ping google.com

Если пинг идёт, всё настроено правильно. Ваши виртуальные машины теперь могут выходить в интернет через общий шлюз.

Облачные VDS
Облачные VDS
Облачные VDS
Масштабируются под любые задачи: от размещения сайта до IT-инфраструктуры
С 2003 года
Надежность.
Нам доверяют тысячи компаний и разработчиков
22 года
Предоставляем услуги профессионального хостинга
35 000+
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865