我有以下结构:
我想要实现的基本上是通过内部网络中的 MacOS OpenVPN 客户端路由来自笔记本电脑客户端(以及任何可能的未来客户端)的所有流量。
我知道最简单的方法是在 MacOS 内部服务器上运行 OpenVPN 服务器,但是它位于代理和防火墙后面,无法从外部访问(在我的情况下,ssh 隧道不是一种选择)——这就是为什么我有如此奇怪的结构。
应如何配置客户端和服务器以实现这一点?
答案1
可以使用以下方式路由仅可通过另一个 openVPN 客户端访问的子网:电荷耦合器件脚本
例如,在你的案例中,你必须在 AWS 服务器配置中添加类似以下内容
假设10.80.0.1是您的 AWS VPN 网关的 IP(VPN 地址,而不是外部 IP),并且10.0.2.0/24是您希望通过 MacOS 服务器路由的子网
在文件中/etc/openvpn/ccd/macos_vpn_commonname
iroute 10.0.2.0 255.255.255.0 push "route 10.0.2.0 255.255.255.0 10.80.0.1" route 10.0.2.0 255.255.255.0 10.80.0.1"
你还需要在 AWS 服务器上的 OpenVPN 服务器主配置文件中添加一行
client-config-dir /etc/openvpn/ccd
它的作用是在macos_vpn_commonname
客户端连接时告诉 OpenVPN 服务器,子网 10.0.2.0 /24 可通过该客户端访问,并启用通过该隧道的路由。据我测试,没有其他方法可以做到这一点,即使手动通过之前创建的隧道路由流量也行不通。
这将涵盖通过 MacOS 服务器路由子网。如果您需要通过它重定向所有流量,请告诉我,我将尝试进一步帮助您使用iprule/iproute在 AWS OpenVPN 服务器和redirect-gateway
指令上,因为我不确定 OpenVPN 是否已通过内部机制为这种情况做好准备。