У меня роутер на базе linux (BusyBox). Я могу войти в терминал по telnet. Я хочу перенаправить wan-порт на ip_external: port
например:
my wan ip (on my router):77.30.109.251
my wan port (on my router):1188
my external remote ip (on my vps):92.222.75.159
my remote port (on my vps):1180
Я просто пытаюсь перенаправить 77.30.109.251:1188 на 92.222.75.159:1180 с помощью iptables, и это все
Я пробовал эту рекомендацию, но все еще отображается как отфильтрованный порт, когда я тестирую его на ipfingerprints.com/portscan.php ip: 77.30.109.251 порт: 1188
iptables -t nat -A PREROUTING -i ppp111 -p tcp --dport 1188 -j DNAT --to 92.222.75.159:1180
iptables -t nat -A PREROUTING -p tcp --dport 1180 -j DNAT --to 92.222.75.159:1180
iptables -t nat -A POSTROUTING -p tcp -d 92.222.75.159 --dport 1180 -j MASQUERADE
Чтобы перенаправить весь входящий tcp-трафик с интерфейса ppp111 с IP-адресом назначения 77.30.109.251 и портом назначения 1188 на IP 92.222.75.159 и порт 1180, достаточно использовать это правило iptables:
iptables -t nat -A PREROUTING -i ppp111 -d 77.30.109.251 -p tcp --dport 1188 -j DNAT --to 92.222.75.159:1180
Вам также необходимо проверить, существует ли правило, которое принимает пересылку от ppp111 к внешнему интерфейсу, и включена ли пересылка в ядре:
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
1
означает, что он включен. Если ты видишь = 0
ты можешь сделать это sysctl -w net.ipv4.ip_forward=1
.
Если вы хотите замаскировать трафик, используйте -o
опция (выходной интерфейс):
iptables -t nat -A POSTROUTING -p tcp -d 92.222.75.159 --dport 1180 -o $EXTERNAL_IFACE -j MASQUERADE
Хорошая практика - использовать -i
(интерфейс ввода), чтобы предотвратить маскировку из ненадежных сетей.
Если вы используете это:
iptables -t nat -A PREROUTING -i ppp111 -p tcp --dport 1188 -j DNAT --to 92.222.75.159:1180
затем вы перенаправляете весь TCP-трафик, который у вас есть, с интерфейса ppp111 с портом назначения 1188 на 92.222.75.159:1180. Вы не проверяете IP-адрес назначения, поэтому трафик для 8.8.8.8:1188 также будет перенаправлен через это правило.
Так что будьте осторожны и аккуратны при написании правил межсетевого экрана!