Я хотел бы перенаправить весь входящий трафик на порт 1111, на другой сервер снова на порт 1111, выступающий в качестве прозрачного прокси. После поиска в Google я попытался использовать iptables
, но это не работает должным образом.
root@glider:~# sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
root@glider:~# iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 10.2.4.44:1111
root@glider:~# iptables -t nat -A POSTROUTING -j MASQUERADE
root@glider:~# telnet localhost 1111
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
root@glider:~# telnet 10.2.4.44 1111
Trying 10.2.4.44...
Connected to 10.2.4.44.
Escape character is '^]'.
Я использую Kubuntu 14.04 LTS.
В PREROUTING
цепочка используется для входящих пакетов, но не для локально сгенерированных пакетов. Чтобы проверить это, вы не должны подключаться к localhost. Вместо этого вам следует проверить соединение с другого хоста.
Применение nat
rules для всех интерфейсов потенциально проблематично. Я бы рекомендовал вам ограничить правила, применив их только к интерфейсу, где они вам нужны.
В DNAT
правило должно иметь -i <interface name>
или -d <ip address>
, то MASQUERADE
правило должно иметь -o <interface name>
.