将远程地址转发到本地,DNAT 被卡住

将远程地址转发到本地,DNAT 被卡住

服务器有一个IP地址192.168.154.200,当我连接到端口80时,我希望将其转发到127.0.0.1:8000,类似于proxy_pass http://127.0.0.1:8000nginx。

所以我尝试了以下方法,

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -I PREROUTING -d 192.168.154.200 -p tcp --dport 80 -j DNAT --to 127.0.0.1:8000
iptables -t nat -A POSTROUTING -j MASQUERADE

它根本不起作用,当我curl 192.168.154.200在客户端上做时,它卡住了,我错过了什么?

PScurl 127.0.0.1:8000在服务器上运行。

答案1

尝试

sysctl -w net.ipv4.conf.eth1.route_localnet=1

或者

sysctl -w net.ipv4.conf.all.route_localnet=1

您可能需要仔细检查以确保内核支持route_localnet。适当替换eth1。

请注意,route_localnet出于安全原因,此功能已关闭。

相关内容