服务器有一个IP地址192.168.154.200
,当我连接到端口80时,我希望将其转发到127.0.0.1:8000
,类似于proxy_pass http://127.0.0.1:8000
nginx。
所以我尝试了以下方法,
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
出于安全原因,此功能已关闭。