我正在尝试让 VPN 客户端可以访问本地网络上的计算机。我的服务器可以10.0.2.1
通过 VPN 访问,但我无法连接到服务器本地网络上的其他计算机。我该怎么做?服务器在网络上有内部 IP 地址,我想通过 VPN192.168.2.163
连接。192.168.2.182
mode server
port 27015
proto tcp-server
tls-server
dev tap0
##dev tun0
ifconfig 10.0.2.1 255.255.255.0
ifconfig-pool 10.0.2.100 10.0.2.105 255.255.255.0
duplicate-cn
ca /etc/openvpn/cert/cacert.pem
cert /etc/openvpn/cert/cert.pem
key /etc/openvpn/cert/key.pem
dh /etc/openvpn/cert/dh1024.pem
log-append /var/log/openvpn
status /tmp/vpn.status 10
user root
group root
comp-lzo
verb 3
keepalive 1 220
网络状态:
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
答案1
假设必备条件已到位(服务器乐意转发流量,没有iptables
规则阻止这种情况),那么与每个 IP 对话一样,必须采取两个重要的流量引导步骤:客户端必须知道它应该使用 VPN 隧道与远程系统通信,并且远程系统必须知道它应该使用 VPN 隧道进行回复。
前者是通过告诉你的 openvpn 服务器向客户端通告到办公网络的路由来实现的,在服务器中使用以下语句openvpn.conf
:
push "route 192.168.2.0 255.255.255.0"
后者实现任何一个让所有远程系统使用 openvpn 服务器作为其默认网关或者通过服务器将路由设置回 openvpn 地址空间。假设远程 openvpn 服务器尚未成为办公室默认网关,则可以通过执行以下操作来设置路由
route add -net 10.0.2.0/24 gw 192.168.2.163
在服务器上192.168.2.182
。