我尝试在虚拟网络中设置新网关,但我确定有问题。网关无法 ping 通客户端,但客户端可以 ping 通其他客户端和网关。我检查了我的 iptables 规则(没有发现问题)。
当前 iptables 规则:
iptables -t nat -A POSTROUTING -s $VPN_SUBNET -o $NET_INTERFACE -j MASQUERADE
-> Allow VPN Interface to access the whole world, back and forth.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $VPN_SUBNET -m state --state NEW -j ACCEPT
iptables -A OUTPUT -s $VPN_SUBNET -m state --state NEW -j ACCEPT
iptables -A FORWARD -s $VPN_SUBNET -m state --state NEW -j ACCEPT
当前路由(xxx.xxx.xxx.xxx为公网IP):
default via xxx.xxx.xxx.xxx dev eth0
xxx.xxx.xxx.xxx dev eth0 scope link
192.168.7.0/24 dev tap_soft proto kernel scope link src 192.168.7.1
当我从网关 ping 客户端时,我从 tcpdump 看到以下内容:
IP xxx.xxx.xxx.xxx > 192.168.7.85: ICMP echo request, id 12176, seq 1, length 64
沒有回覆。
所有协议(例如 TCP、UDP、ICMP)都存在同样的问题。
答案1
没有规则允许从网关传入流量,它只允许已经建立或相关的流量。如果您只想允许从网关 ping,您可以使用以下方法:
iptables -A INPUT -s <GATEWAY-IP> -i <PUBLIC-INTERFACE> -d <PUBLIC-IP of the client> --icmp-type ping -j ACCEPT