Iptables

iptables 將外部請求重定向到 127.0.0.1

  • December 21, 2020

我有一個服務在 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

引用自:https://unix.stackexchange.com/questions/111433