Как я могу перенаправить трафик прозрачно от одного IP до другого?

Я хотел бы перенаправить весь входящий трафик на порте 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.

-1
задан 29 July 2014 в 12:18
1 ответ

Цепь PREROUTING используется для входящих пакетов, но не для локально сгенерированных. Для ее проверки не следует подключаться к локальному хосту. Вместо этого вы должны протестировать соединение с другого хоста.

Применение правил nat ко всем интерфейсам потенциально проблематично. Я бы порекомендовал ограничить применение правил только тем интерфейсом, на котором они нужны.

Правило DNAT должно иметь -i <имя интерфейса> или -d , правило MASQUERADE должно иметь -o <имя интерфейса>.

.
4
ответ дан 5 December 2019 в 19:08

Теги

Похожие вопросы