有几个小时,我已经尝试在两个物理位置(位置A,192.168.1.0/24)和(位置B,192.168.2.0/24)之间建立虚拟专用网络。我被迫使用隧道而不是桥接网络。192.168.4.0/24是VPN网络。这两个位置之间的连接工作正常,服务器有192.168.4.1,客户机有192.168.4.6。但是现在我想让服务器访问客户端网络上的服务器,地址是192.168.1.44。
如何通过路由和iptable条目(想必是NAT postrouting)来实现这一点?
发布于 2011-05-02 11:23:46
尝尝这个。
在服务器上:
route add -net 192.168.1.0/24 gw 192.168.4.6关于客户:
iptables -t nat -I POSTROUTING -s 192.168.4.1 -t 192.168.1.44 -j SNAT --to 192.168.4.1光是这样就行了。如果你想考虑其他选择的话,请继续读下去。
如果客户端恰好是192.168.1.0/24网络的默认网关,如果您将此路由添加到目标服务器或其默认网关中,则应该可以不使用iptables规则:
route add -net 192.168.2.0/24 gw <IP_of_client_on_this_network>您还可以将net 192.168.1.0/24替换为192.168.1.44 (等等)。如果您只想访问该服务器--但如果您想要进行筛选,则可能应该在服务器和/或客户端上添加一个单独的筛选规则。
如果您已经对客户端进行过滤(我的意思是,如果您有前向规则,请参阅iptables -nvL),您必须在那里添加另一个规则:
iptables -I FORWARD -i tun+ -s 192.168.4.1 -d 192.168.1.44 -j ACCEPT编辑:将-i从POSTROUTING规则中删除,这是一个错误。
https://serverfault.com/questions/265429
复制相似问题