![如何访问 OpenVPN 客户端子网](https://linux22.com/image/622231/%E5%A6%82%E4%BD%95%E8%AE%BF%E9%97%AE%20OpenVPN%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%AD%90%E7%BD%91.png)
我正在设置站点到站点的 OpenVPN,
目前:
客户端的用户可以访问服务器端的子网。
访问 VPN 客户端计算机 [其 IP 在客户端子网上] 工作正常。但我无法访问同一客户端子网上的其他计算机。
我在服务器配置中使用了此选项:由于这些是私有子网,我将按原样添加它们:
route 172.20.56.0 255.255.255.0
client-config-dir ccd
并创建与客户端名称相同的文件,内容如下:
iroute 172.20.56.0 255.255.255.0
客户端机器有这个本地 IP 172.20.56.1,我可以从服务器端访问它。
问题是我无法访问客户端的任何其他机器。
有什么建议....
答案1
实际上,问题似乎是 openvpn 的某种错误。似乎使用topology net30
(默认拓扑,尽管该拓扑现在已被视为弃用)会以某种方式破坏 openvpn 的路由。第一步是添加topology subnet
到您的服务器配置文件中。您需要做的另一件事是将 vpn 服务器的 IP 添加为路由的网关,因为还有另一个 OpenVPN 错误会按原样对路由进行处理。所以
route 172.20.56.0 255.255.255.0
应该看起来像
route 172.20.56.0 255.255.255.0 10.10.8.1
其中 10.10.8.1 是接口上的服务器 IP tun0
。
如果操作正确的话,您根本不需要使用任何类型的 natting。
答案2
route
服务器配置和声明中的语句应iroute
允许您的数据包到达远程站点。但远程站点也需要了解网络的路由才能通过 VPN 路由回来。您需要在客户端配置中添加一些路由语句,或者push "route ..."
在 ccd 文件中添加一些语句。
在任何情况下,就像解决任何路由问题一样,您需要路由追踪和 tcpdump/wireshark。