我正在尝试将内部虚拟网络(适配器tun0 ip:10.8.0.x - 我的vpn网络)添加到外部世界(适配器venet0:0 ip xxx.xxx.xxx.xxx)
我使用以下iptables规则:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0:0 -j SNAT --to xxx.xxx.xxx.xxx
由于某种原因,iptables没有更改出站IP地址:
tcpdump
08:23:17.863971 IP 10.8.0.6 > 8.8.8.8: ICMP echo request, id 3887, seq 1264, length 64
netstat-nat
Proto NATed Address Destination Address State
udp 10.8.0.6:61339 google-public-dns-a.goo:domain UNREPLIED
有什么想法吗?我做错了什么?
(ip_forward已激活!)
答案 0 :(得分:0)
您需要在HARDWARE节点上配置NAT。 查看此文章https://openvz.org/Using_NAT_for_container_with_private_IPs
答案 1 :(得分:0)
非常仔细地检查iptables -t nat -nvL
。也许在某处有一个隐藏的MASQUERADE
。
答案 2 :(得分:0)
仔细查看选择器,源(-s)和目标(-d)。在我的情况下,我的目标IP相差一个八位字节。我期望的是.5,而流量注定为.6。就像规则是SNAT ip xxx.xxx.5.xxx
,数据包中的目的地是xxx.xxx.6.xxx