- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在专用的 ubuntu 服务器上有一个防火墙(基于 iptables)。我有几个 LAN 客户端。
在我的一个 LAN 客户端上,我正在运行可以根据 IP 限制访问的软件。对我来说,重要的是我可以通过使用 WAN IP 而不是 LAN IP 来限制它。
我已经配置了我的防火墙,以便将一个/一个端口转发到运行良好的 LAN 客户端(在 stackoverflow 找到的解决方案)。到目前为止没有问题。
但是在 LAN 客户端我没有看到外部发件人的 IP,但是 - 我认为由于转发 - 客户端看到数据包来 self 的 LAN 服务器。
问题是:如何将我的服务器上的一个端口转发到另一个具有不同端口的局域网IP,但让局域网客户端识别数据包的外部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
正如所写的那样有效,但是当 f.i. IP 88.77.66.55 的某人发送了一个数据包,然后我的 LAN 客户端 (192.168.1.20) 看到该数据包来 self 的 LAN 服务器 (192.168.1.10),不幸的是不是来自 88.77.66.55。
我可以解决这个...吗?
最佳答案
您的最后一条规则与 MASQUERADE 规则相同。
例如:
iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE
使用 MASQUERADE 或 SNAT,您正在修改通过第一台服务器的源 IP 地址。第二台服务器看到数据包并将其响应发送回该 IP,然后将其发送回客户端。
但是,服务器将请求视为来自 192.168.1.10 - 因为这是它的来源。
client > gateway > iptables-router > server (see .10) > iptables-router > gateway > client
如果您删除 MASQUERADE/SNAT,服务器会看到真实的 IP,但当它发送回复时,数据包将转到它的默认网关(默认路由),这可能是您的路由器或数据中心的网关。客户端从一个它不知道的 IP 地址得到响应,也不知道如何处理它,所以看起来它不起作用。或者,网关/rputer 看到一个没有关联连接的 SYNACK 并丢弃数据包。
client > gateway > iptables-router > server > gateway (DROP) 或 > client (DROP)
如果想让服务端获取到客户端的真实IP,有两种常用的方法:
客户端>网关>iptables-router>服务器(真实IP)>iptables-router>网关>客户端
客户端 > 网关 > iptables-router > 服务器(查看 X-Original-IP header )> iptables-router > 网关 > 客户端
最好的问候,尼尔
关于iptables - 使用 iptables 转发端口到其他客户端,但可以识别原始发件人 ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14877900/
我是一名优秀的程序员,十分优秀!