如何启用 OpenVPN 客户端的 LAN 访问

如何启用 OpenVPN 客户端的 LAN 访问

我有一台由 OpenVPN 创建的带有 2 个真实 NIC 和 1 个虚拟 NIC(tun0)的服务器。

eth0 is LAN - IP 192.168.2.1
eth1 is Internet - IP is public internet IP
tun0 is created by openvpn

我需要的是,通过 eth1 连接到 VPN 服务器的客户端也能访问 eth0 网络,例如,能够连接到 192.168.2.21

这在过去一直有效,直到我重新启动服务器并且路由信息被重置 :/ 我几年前配置过这个,但忘记了如何操作。

路由表现在如下所示:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         public gw       0.0.0.0         UG    0      0        0 eth1
public ip       *               255.255.255.0   U     0      0        0 eth1
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
192.168.8.0     192.168.8.2     255.255.255.0   UG    0      0        0 tun0
192.168.8.2     *               255.255.255.255 UH    0      0        0 tun0

当我启动 OpenVPN 时,它会尝试添加路由

Tue Oct 11 19:29:58 2016 /sbin/ip route add 192.168.2.0/24 via 192.168.8.2
RTNETLINK answers: File exists
Tue Oct 11 19:29:58 2016 ERROR: Linux route add command failed: external program exited with error status: 2

但是这似乎是不可能的,因为它已经存在了。当我删除此路由时,openVPN 成功添加,但服务器不再可能访问 192.168.2.0/24 网络。

我怎样才能让它工作?

编辑:是的,我已启用 IPv4 和 IPv6 转发

答案1

您需要在 sysctl 中设置 ip_forward,并在 iptables 中的 FORWARD 表中添加一行接受行(通常默认为 ACCEPT)

http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/

答案2

一、必要路线:

  • 192.168.2.0/24VPN 客户端需要通过 VPN 网关(可能位于192.168.8.1虚拟网络内部)路由到
  • 192.168.2.0/24需要路由的设备192.168.8.0/24——因为您的 VPN 服务器似乎位于默认网关上,所以不需要额外的配置。

然后是配置。具体情况取决于拓扑(net30/p2p 或子网),但一般是这样的:

topology net30    
server 192.168.8.0 255.255.255.0

push "route 192.168.2.0 255.255.255.0"

我在这里省略了所有不相关(但仍然是必需的)的选项。但请注意,只会route推送给客户端。不得在服务器上设置

由于客户端通过推送接收所有必要的设置,因此不需要特殊配置。

相关内容