我已成功设置了配置,其中特定路由通过特定客户端路由。例如,我设置了路由 XXX0 255.255.255.0,在客户端 A 中设置了路由 XXX0 255.255.255.0,因此从客户端 Y 到 XXX0 的所有流量都会通过 VPN,然后通过客户端 A 到达网络。这正常工作。
但是,如何设置除客户端 A 之外的所有客户端,使其流量通过客户端 A 路由?如果我设置了 redirect-gateway def1 ,则流量将通过 vpn 服务器本身路由。这不是我想要的,我想要的不是必须在客户端 A 中指定特殊的 iroute,而是让所有流量都通过客户端 A。
根据我的理解,我在客户端 A 中尝试了 iroute 0.0.0.0 0.0.0.0,并相应地在服务器中推送路由 0.0.0.0 0.0.0.0,以便所有 vpn 流量都通过客户端 A,但它不起作用?
有可能吗?我认为是的,在这种情况下我遗漏了什么?
答案1
这显然是可能的,而且就在这一刻,我使用这种设置连接。我的 VPN 服务器在德国,出口节点在美国。我现在无法测试下面的设置(我的设置方式略有不同,因此复制/粘贴是不够的),但理论上应该足够了。
只需将默认路由推送到“所有减一”的客户端即可轻松完成任务,方法是使用客户端配置目录功能(检查--ccd
OpenVPN 手册中的选项)。在客户端的 ccd 文件中,您需要添加类似以下的行:
push "route 0.0.0.0 0.0.0.0 EXIT_IP"
push "route vpn_gateway 255.255.255.255 net_gateway"
将 EXIT_IP 替换为 VPN 隧道中的出口节点的 IP 地址(不是公共 IP)。
请勿更改vpn_gateway
和net_gateway
,它们将自动替换为 OpenVPN。此行用于通过您现有的网络网关添加到 VPN 服务器的直接路由,以防止路由循环。