答案1
由于您表示无法更改服务器,因此您必须使用 NAT。这是因为服务器需要知道将响应发送到哪里,并且它只知道 VPN 客户端本身,即您的本地服务器。它不知道可以通过 VPN 客户端访问的 PC。
在本地服务器上,您需要在 OpenVPN 接口上启用 NAT。这可以通过使用脚本来完成。一个可能的钩子是--route-up
。记得进行--script-security
适当的更改。您需要运行的命令是iptables -t nat -A POSTROUTING -o $THE_OPENVPN_INTERFACE -j MASQUERADE
。由于 IPTables 允许一切为默认设置,因此进一步的配置是可选的。您可能还应该添加一个--route-pre-down
(或类似的)脚本来再次删除 IPTables 规则。
可以通过编辑来启用路由/etc/sysctl.conf
,net.ipv4.ip_forward
需要1
。echo 1 > /proc/sys/net/ipv4/ip_forward
使更改立即生效。sysctl.conf
是为了在重启后保持持久性。
在路由器上,您需要设置到目的地(可通过 VPN 访问的网络)的静态路由,其中网关是您的本地服务器(VPN 客户端)。请注意:由于您与网关位于同一网络上,因此路由器可能会发送重定向。您可能无法更改此行为。您的操作系统必须接受重定向。但请先尝试一下,无需进行额外设置。
您可能希望正确地对本地服务器进行防火墙保护,因为否则,有权访问 VPN 服务器的恶意行为者就可以访问您的本地网络。