OPENVPN将本地网路由到远程服务器

时间:2016-01-29 11:39:57

标签: routes openvpn

我已经从我的debian pc配置了一个openvpn连接到我的远程debian服务器,它可以工作。实际上,我可以ping 10.0.0.1(服务器的vpn中的地址)。

现在我想分享这个联系。我希望我在lan上的其他客户端可以在没有openvpn客户端的情况下访问服务器。我该怎么办?

我的lan标准地址是192.168.2.x.如何将192.168.2.123地址设置为直接连接到远程服务器?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望将地址192.168.2.123映射到可远程访问的openvpn服务器10.0.0.1

为了做到这一点,你需要做两件事

  1. 在debian pc上为地址192.168.2.123创建一个别名。可以找到详细的操作方法here
  2. 设置你的debian pc ,将192.168.2.123的传入流量重新传输到远程服务器10.0.0.1。
  3. 要设置转发,您需要先启用它,如下所示。

    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解释了如何做到这一点。此外,您还需要告诉您的客户正常网络接口上现在的附加路由。