Назад | Перейти на главную страницу

Используйте iptables для перенаправления нескольких портов

У меня есть службы, работающие на VPS A (1.1.1.1) на портах 30000-32000.

Я хотел бы, чтобы VPS B (2.2.2.2) перенаправлял их на 20000-22000.

(Вы можете посмотреть ссылку на демонстрационный график ниже, чтобы понять, чего я хочу достичь: D)

Перенаправить на разные порты

Я использовал команду ниже для настройки iptables:

iptables -t nat -A PREROUTING -p tcp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000
iptables -t nat -A PREROUTING -p udp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000

После некоторых тестов я обнаружил, что кажется, что только порт 20000 перенаправлял порт исходного сервера 30000. Однако другие порты не работают.

Я проверил 4 вещи ниже: 1. Служба службы VPS A (1.1.1.1), работающая на портах 30000 - 32000, полностью функциональна.

  1. Настройка переадресации порта VPS B После проверки sysctl на VPS B пересылка ipv4 включена.

(т.е. net.ipv4.ip_forward = 1)

  1. Настройка iptable VPS B. Мне кажется, это нормально. Вы можете нажать на ссылку ниже для точной настройки.

настройка iptables

  1. Я также попытался выполнить обычную переадресацию нескольких портов с VPS A на VPS B (т.е. VPS A (30000-32000) >> VPS B (30000-32000))

(Вы можете посмотреть ссылку на демонстрационный график ниже, чтобы узнать, чего я хотел бы достичь: D)

Все работает нормально.

Я действительно понятия не имею, как этого добиться. Любая помощь приветствуется! Заранее спасибо!

Вам нужно изменить правила iptables. Ваше правило DNAT не фильтрует IP-адрес назначения для входящего трафика от пользователей. Правило SNAT не фильтрует IP-адрес источника и диапазон портов источника 30000: 32000 для входящего трафика с сервера A. Вам нужно на сервере B:

iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -s 1.1.1.1 --sport 30000:32000 -j SNAT --to-source 2.2.2.2:20000:22000

iptables -t nat -A PREROUTING -p udp -d 2.2.2.2 --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -s 1.1.1.1 --sport 30000:32000 -j SNAT --to-source 2.2.2.2:20000:22000