服务器配置:
port 1194
proto udp
dev tun
dev-node MyTap
server 10.8.0.0 255.255.255.0
ca "C:\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\OpenVPN\\easy-rsa\\keys\\server.crt"
key "C:\\OpenVPN\\easy-rsa\\keys\\server.key"
dh "C:\\OpenVPN\\easy-rsa\\keys\\dh1024.pem"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
;ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
客户端配置:
client
dev tun
dev-node MyTap
proto udp
remote xx.xx.xx.xx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\OpenVPN\\config\\ca.crt"
cert "C:\\OpenVPN\\config\\BSCLaptop.crt"
key "C:\\OpenVPN\\config\\BSCLaptop.key"
explicit-exit-notify 2
ns-cert-type server
comp-lzo
verb 5
ping 10
ping-restart 60
route-method exe
route-delay 2
客户端和服务器位于不同的国家/地区。我可以连接,日志中没有任何错误。我可以通过 VPN 网络从服务器成功 ping 到客户端,即在服务器上:ping 10.8.0.6。我可以通过 VPN 网络从客户端成功 ping 到服务器,即在客户端 ping 10.8.0.1。但是,我无法通过服务器的正常网络 IP(10.79.79.81)从客户端 ping 到服务器,也无法 ping 服务器网络上的任何其他内容,即网关/路由器,也无法在客户端上获取任何互联网流量。为服务器提供互联网连接的网络适配器已在适配器属性->共享中选中“允许其他网络用户通过此计算机的互联网连接进行连接”选项,并将其设置为服务器的 Tap 适配器。服务器已启动其“路由和远程访问”服务,并且密钥
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 的 IPEnableRouter 设置已设为 1(默认为 0)。
Windows 服务器和客户端计算机以及服务器通过其连接到互联网的路由器上的所有防火墙均已禁用。端口 1194 从其通过其连接到互联网的路由器转发到服务器。在服务器从 Win 7 更新到 Win 10 之前,所有这些都有效 ;) 现在,两台机器只能通过其 VPN IP 地址相互 ping 通,无需执行任何其他操作,有什么想法吗?
谢谢。
答案1
这听起来像是路由问题,我怀疑是客户端的问题。首先,您需要在客户端上验证以您的服务器网络(10.79.79.81 或其他)为目的地的数据包是否通过 VPN 隧道而不是通过您的正常接口。检查您的路由表或使用 traceroute 进行验证。
如果此流量不通过隧道,则需要设置服务器配置以将路由推送到客户端。示例来自https://openvpn.net/index.php/open-source/documentation/howto.html#examples
# Push routes to the client to allow it
# to reach other private subnets behind
# the server. Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
或者,配置 openvpn 以通过 VPN 路由所有流量(如果您愿意)。
如果它们确实要到达您的服务器,那么您需要验证您的服务器是否知道如何将数据包路由到您尝试访问的网络。路由内容可能会变得很复杂,我不知道 Windows 7 是否适合这样做。您可以考虑在 pfsense 等路由器上设置 VPN。