我在 12345 端口上有一个本地 Web 服务器(无法更改),我想通过命令行中的 iptables 从 lo 转发端口。允许转发。
`iptables -t nat -A PREROUTING -i lo -p tcp --dport 8080 -j DNAT --to-destination 10.0.2.15:12:125`
。没有错误,但是当我从浏览器登录时(127.0.0.1:8080)不起作用。当我转到 IP 服务器(10.0.2.15:12345)时,一切正常。我做错了什么?
抱歉,如果文中有很多错误,它是使用谷歌翻译从乌克兰语翻译过来的。
答案1
设想:
Web Server IP = 10.0.2.15 (eth0)
Hardcoded Listening Port = 12345/TCP
TCP Forward = from 10.0.2.15:8080 to 127.0.0.1:12345
默认情况下,禁用从标准 NIC ( eth0
) 到环回接口 ( lo
) 的端口转发。删除之前的 iptables 规则并执行以下操作:
# Forward any traffic destined to TCP 8080 on eth0 to 12345 on loopback
$ sudo iptables -t nat -I PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 127.0.0.1:12345
# Then allow forwarding from standard NIC to loopback (assuming eth0 is the standard NIC)
$ sudo sysctl -w net.ipv4.conf.eth0.route_localnet=1