Iptables
iptables 將外部請求重定向到 127.0.0.1
我有一個服務在 127.0.0.1 上執行,埠為 2222。我需要將所有請求僅從子網 192.168.1.0/24 轉發到 192.168.2.2:2222(外部 IP)到 127.0.0.1:2222。
我正在嘗試使用它,但它不起作用。
$ iptables -t nat -I PREROUTING -p tcp -d 192.168.1.0/24 --dport 2222 -j DNAT --to-destination 127.0.0.1:2222
我怎樣才能讓它工作?
UPD:編輯地址方案。
您正在使用的 iptables 規則將起作用,但您需要進行一項額外的更改:
sysctl -w net.ipv4.conf.eth0.route_localnet=1
(替換
eth0
為 nic192.168.2.2
駐留)預設情況下,此值為
0
,它指示核心不路由目的地為的外部流量127.0.0.0/8
。這只是為了安全,因為這樣的流量是不正常的。
您可以重定向到本地主機,但不能重定向到環回 (127.0.0.0/8)。環回是一個漏洞。您必須重定向到您的真實界面之一。嘗試使用重定向。
iptables -t nat -A PREROUTING ..... -j REDIRECT --to-port 222