![使用 piranha gui 为 lvs 设置 iptables 规则](https://linux22.com/image/629603/%E4%BD%BF%E7%94%A8%20piranha%20gui%20%E4%B8%BA%20lvs%20%E8%AE%BE%E7%BD%AE%20iptables%20%E8%A7%84%E5%88%99.png)
我正在尝试构建一个 lvs 系统,其中 202.141.81.239 是虚拟 IP,202.141.81.241 和 202.141.81.242 是 lvs 路由器。该系统在我们的内部网中运行良好,但不能通过互联网运行。
以下是我的 iptables 配置
# Generated by iptables-save v1.4.7 on Tue Mar 25 12:30:26 2014
*mangle
:PREROUTING ACCEPT [96:9901]
:INPUT ACCEPT [65:5340]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [48:3348]
:POSTROUTING ACCEPT [48:3348]
-A PREROUTING -d 202.141.81.239/32 -p tcp -m tcp --dport 80 -j MARK --set-xmark 0x50/0xffffffff
COMMIT
# Completed on Tue Mar 25 12:30:26 2014
答案1
很难知道这些信息到底意味着什么,但是这取决于路由方法配置(NAT或Direct)。
例如,如果你使用直接法您应该按如下方式配置 iptables。 (来源). 在每个真实服务器上:
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
如果它在内部网络中有效,但在外部网络中无效,但服务器使用的是公共 IP 而不是私有 IP,那么实际上可能是防火墙问题(您是否有另一个防火墙保护您的服务器?)。如果没有,请检查所有服务器(LVS 路由器和真实服务器)的 iptables。
禁用 iptables 并仔细检查(从内部和外部网络)以查看会发生什么,这也可能是一个好主意。也许您正在使用 arptables_jf 而不是 iptables 来允许重定向...
如果仍然不起作用,你可以尝试使用ARP 表而不是使用直接方法的 iptables(如果您实际正在使用此方法)。