我已经配置了 OpenVPN 服务器和一些客户端。服务器分配的 IP 地址范围为 10.9.9.1-254。其中一个客户端“J”在 VPN 上分配了 10.9.9.24,在其自己的 LAN 上分配了 10.0.27.9。它与我想通过 VPN 访问的设备位于同一本地网络上,但该设备无法运行 OpenVPN 客户端。我可以直接从 J 访问该设备,地址是 J 的网络分配的 10.0.27.4。
我按照指示这里在 VPN 服务器上,但我不确定在 J 上该如何配置它来转发设备和 VPN 之间的流量。转发整个 LAN 是最佳选择,但目前我只需要访问单个设备。不幸的是,我无法控制 J 和设备之间的路由器。
J 运行 Windows 7。
答案1
告诉 VPN 服务器它可以通过 OpenVPN 访问 LAN 子网。将以下内容添加到 OpenVPN 服务器配置中:
route 10.0.27.0 255.255.255.0
告诉 OpenVPN 服务器哪个客户端有权访问此子网。这里需要 client-config-dir 功能,因此,如果您还没有,请将其添加到 OpenVPN 服务器配置中:
client-config-dir clients
然后在服务器上为客户端创建一个配置文件(例如
/etc/openvpn/clients/J
,其中“J”是客户端证书上的通用名称):iroute 10.0.27.0 255.255.255.0
然后,您需要确保从 LAN 设备返回 VPN 服务器的返回流量通过 J。这可以通过将 J 设为设备的默认网关,或在设备或 LAN 默认网关上添加如下路由来实现:
ip route add 10.9.9.0/24 via 10.0.27.9
如果您希望 VPN 服务器网络上的其他计算机能够访问该设备,您还需要让它们知道 LAN 子网。同样,这可以通过将 VPN 服务器设为其他计算机的默认网关来实现,或者向其他计算机或默认网关添加这样的路由(其中 10.0.8.10 是 VPN 服务器的 LAN IP):
ip route add 10.0.27.0/24 via 10.0.8.10