我已经从我的debian pc配置了一个openvpn连接到我的远程debian服务器,它可以工作。实际上,我可以ping 10.0.0.1(服务器的vpn中的地址)。
现在我想分享这个联系。我希望我在lan上的其他客户端可以在没有openvpn客户端的情况下访问服务器。我该怎么办?
我的lan标准地址是192.168.2.x.如何将192.168.2.123地址设置为直接连接到远程服务器?
答案 0 :(得分:1)
如果我理解正确,您希望将地址192.168.2.123映射到可远程访问的openvpn服务器10.0.0.1
为了做到这一点,你需要做两件事
要设置转发,您需要先启用它,如下所示。
echo 1 > /proc/sys/net/ipv4/ip_forward
然后设置特定的防火墙规则以实际转发您的流量。以下是如何执行此操作的示例。
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 192.168.2.123 -j DNAT --to-destination 10.0.0.1
注意: tun0应该是您的debian pc打开的隧道的接口,eth0是你的debian pc上的接口,IP地址为192.168.2.123。接口的实际名称可能是......其他。 这将设置NAT,有效地将来自LAN接口的流量映射到VPN中的地址。另请注意,此设置将要求LAN中的客户端启动与远程debian服务器的任何连接。
另一种解决方案是简单地将LAN接口的流量转发到隧道接口,如下所示。使用这种方法,您将能够使用它的内部VPN ip 10.0.0.1访问您的远程debian服务器。
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
注意:另一方的VPN服务器不知道其流量被转发给它的子网。为了使服务器能够发回响应,您需要告诉它能够使用隧道访问您的LAN 192.168.2.x. Here解释了如何做到这一点。此外,您还需要告诉您的客户正常网络接口上现在的附加路由。