Я пробовал несколько сообщений для настройки этого перенаправления, но не работает, это то, что мне нужно
Я получаю пакеты на порт 8080 и хочу перенаправить их на другой IP-адрес того же сервера. Почему? потому что по какой-то причине он не отправляет это в Интернет.
Позвольте мне рассказать подробнее.
Сервер A отправляет порт 2525 серверу B, но они не находятся в одной сети. Я вижу пакеты, поступающие на сервер B, но они не выходят в Интернет.
Сервер B имеет 2 IP, один - это VPN tun1, подключенный к серверу A, а другой IP имеет доступ в Интернет. Что мне нужно, или я думаю, что мне нужно, так это перенаправить трафик с tun1 на IP-адрес, у которого есть доступ в Интернет. Я пробовал разные конфигурации, но это не работает.
Любая помощь будет оценена по достоинству.
Добро пожаловать в Serverfault.
Если я правильно понял, вы пытаетесь открыть порт 25 10.0.10.172 на публичном адресе 167.114.185.238, который принадлежит серверу 10.0.9.6
У вас есть право ПЕРЕДАЧИ:
iptables -t nat -A PREROUTING -d 167.114.185.238 -p tcp --dport 25 -j DNAT --to 10.0.9.6
Но вам также понадобится соответствующий POSTROUTING:
iptables -t nat -A POSTROUTING -d 10.0.9.6 -j SNAT --to 10.0.10.172
Вы также упомянули следующее правило FORWARD, которое является правильным:
iptables -A FORWARD -d 10.0.9.6 -p tcp --dport 25 -j ACCEPT
Но он вам нужен только в том случае, если у вас есть какое-либо правило или политика DROP (-P) в таблице FORWARD, которых нет по умолчанию. Если у вас есть какое-либо правило DROP, вам нужно поместить это ACCEPT перед правилом DROP, иначе это не повлияет.
Наконец, вам также необходимо включить пересылку IPv4:
sysctl -w net.ipv4.ip_forward=1
Следующее на самом деле не требуется, потому что соединения к порту 25 происходят за пределами вашего сервера и уже содержат ваш общедоступный IP-адрес 167.114.185.238 в качестве пункта назначения:
iptables -t nat -A POSTROUTING -o venet0:0 -j MASQUERADE
Если это ответ на ваш вопрос, не забудьте нажать кнопку с галочкой ✔ вверху слева.