我有两个遥远的地方,每个地方都有一个公共 IP,我想让这些地方的 LAN 网络就好像它们是一个一样。即A地的机器可以与B地的机器通信,B地的机器可以与A地的机器通信。
在地方 A (10.0.2.1) 我有一个 ASUS AC 1200g+ 和一个带有 OpenVPN 服务器的 Raspberry pi (10.0.2.60)。新客户端保留在接口 tun0 ( 10.8.0.1 ) 中。此时,客户端(地点 B)可以与地点 A 的 LAN 通信,只有目的地为 10.0.1.0/24 的流量被重定向到服务器端。
现在我希望 A 地(服务器)中的机器可以与 B 地的 LAN 通信。我在我的路由器中放置了一个路由,所有带有 10.0.1.0/24 的目标请求都被重定向到 Raspberry Pi VPN 服务器,但服务器不知道如何处理该流量。
在地方 B (10.0.1.1) 我有一个带有华硕 Merlin 固件的华硕 AC86U,我用“入站防火墙”启用选项激活了 OpenVPN 客户端。
我有一个类似的设置,其中树莓派是客户端,但这并不重要。免责声明:这不是最容易设置的事情。
我正在使用此
/etc/iptables/iptables.rules
文件将来自 OpenVPN 连接(通常tun0
,但tun+
涵盖所有)的流量 NAT 到本地网络:OpenVPN 配置需要所谓的客户端到客户端配置。服务器 OpenVPN-config 中的这两行启用了该功能:
必须在配置所在的 -path 下手动
client-config-dir
创建。/etc/openvpn/...
然后,您可以在该文件夹中创建每个主机的文本文件。文件命名很重要:仔细检查 OpenVPN 如何在系统日志中调用您的客户端(例如journalctl -xef --unit openvpn-server@somehost
在文件中或openvpn-status.txt
文件中)。文件内容很简单:将配置它以在每次连接时获取相同的 IP (
10.10.99.18
) 并配置 VPN 服务器以内部路由流量192.168.0.0/16
到具有此文件名称和 IP 地址的客户端。这使得我们可以理解为什么我们还没有有效的网络连接:也就是说,因为 VPN 服务器的主机系统不知道 VPN 隧道可用于路由该网络的流量(netstat -rn4
)。所以我们必须再次配置VPN服务器并追加:告诉服务器,它应该将流量路由到
192.168.0.0/16
并且所有连接到服务器的客户端也应该被告知路由 - 路由被推送到客户端。对于我的设置,我使用了上面的链接,但是在写这个答案时,我发现了两个关于这个主题的有趣链接:
祝你好运 :)