我在专用的 ubuntu 服务器上有一个防火墙(基于 iptables)。我有几个 LAN 客户端。
在我的一个 LAN 客户端上,我正在运行可以基于 IP 限制访问的软件。对我来说,重要的是我可以通过使用 WAN IP 而不是 LAN IP 来限制它。
我已经配置了我的防火墙,以便将一个/一个端口转发到一个运行良好的 LAN 客户端(在 stackoverflow 中找到了解决方案)。到目前为止没有问题。
但是在 LAN 客户端我看不到外部发送者的 IP,但是 - 我认为由于转发 - 客户端看到数据包来自我的 LAN 服务器。
问题是:如何将我服务器上的一个端口转发到另一个具有不同端口的 LAN IP,但这样 LAN 客户端才能识别数据包的外部 IP。
让我们更清楚:
服务器局域网IP:192.168.1.10 服务器端口:8080
应该转发到:客户端局域网IP:192.168.1.20 客户端局域网端口:8000
使用 iptables 我有:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -d 192.168.1.10 -j DNAT --to 192.168.1.20:8000
iptables -A FORWARD -p tcp -d 192.168.1.20 --dport 8000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dport 8000 -d 192.168.1.20 -j SNAT --to 192.168.1.10
正如所写的那样有效,但是当 IP 88.77.66.55 的某人发送一个数据包时,我的 LAN 客户端 (192.168.1.20) 看到该数据包来自我的 LAN 服务器 (192.168.1.10),不幸的是不是来自 88.77.66.55。
我可以解决这个...?