openvpn 已连接,但没有路由。(ping 测试失败)

use*_*523 5 openvpn

我是第一次设置 VPN 连接。我正在做一个项目,我想从外部世界访问我家中的 LAN。因此,我在我的 32 位 Windows 7 笔记本电脑(充当服务器)上安装了 OpenVPN2.2.2。我的最终目标是加载一个只能在我的本地网络上访问的页面。

我创建了一个客户端证书,它是 64 位 Windows 8 笔记本电脑(安装了 OpenVPN2.2.2)。我可以使用我的客户端通过 VPN 连接到服务器。我可以在两台笔记本电脑的系统托盘栏中看到绿色的 gui 图标。我还在日志中看到“初始化序列已完成”,没有出现重大错误。但是,当我尝试 ping 局域网内的任何设备时,我无法使用运行 openVPN 的远程客户端来执行此操作。另外,当我使用http://www.whatismyip.com/查找 ip 时,我仍然得到客户端的原始 IP 地址,而不是我的 LAN 的 IP。

这些是我收到的主要警告/说明。

服务器:

注意:您的本地 LAN 使用非常常见的子网地址 192.168.0.x 或 192.168.1.x。请注意,如果您从公共位置(例如使用相同子网的网吧)连接到 VPN 服务器,这可能会产生路由冲突。

警告:在任何活动的网络适配器上都无法访问路由网关:10.8.0.2

MULTI:来自客户端 [192.168.2.30] 的错误源地址,数据包丢失

客户:

警告:本地 LAN [172.20.10.0/255.255.255.240] 和远程 VPN [0.0.0.0/0.0.0.0] 之间的潜在路由子网冲突

过去一周我一直在对此进行大量研究。我查看了 openVPN 文档和论坛。人们能够连接到服务器,但无法 ping。这些是我采取的额外步骤:

  • 完全禁用我的 Windows 防火墙(在客户端和服务器上)以解决该 TUN/TAP 接口问题
  • 设置端口转发,因此在端口 1194 与我的路由器建立的任何连接都会转发到我的服务器(静态 IP 为 192.168.1.168)。
  • 以管理员权限运行一切
  • 在 Windows 机器(服务器)中配置路由和远程访问
  • IPEnableRouter 为 1。
  • 选中“允许其他网络用户通过此计算机的 Internet 连接来连接 TAP 适配器”复选框。

我从 openVPN 论坛获得它们后采取的更多步骤:

服务器.ovpn

port 1194
proto udp
dev tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh1024.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "route 0.0.0.0 0.0.0.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 5
Run Code Online (Sandbox Code Playgroud)

客户端.ovpn

client
dev tun
proto udp
remote xx.xx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files (x86)\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files (x86)\\OpenVPN\\config\\client1.crt"
key "C:\\Program Files (x86)\\OpenVPN\\config\\client1.key"
ns-cert-type server
comp-lzo
verb 3
explicit-exit-notify 2
ping 10
ping-restart 60
route-method exe
route-delay 2
Run Code Online (Sandbox Code Playgroud)

如果你能帮我解决这个问题,那就太好了。任何提示/建议都非常受欢迎。谢谢。

编辑:1

非常感谢您的建议。

1)您能否解释一下“获得防火墙或者如果您使用防火墙连接到VPN”的确切含义?我的客户端和服务器中已经有内置防火墙,我禁用了它们,只是为了暂时不会干扰我的设置。

2)我确实改变了我的IP地址子网。所以我服务器端的默认网关现在是 192.168.157.1 而不是 192.168.1.1。我将隐藏我的 IP 地址。:D

3)10.8.0.2 是 TAP-Win32 适配器的默认网关。因此,在查看 openvpn 论坛后,我通过进入 TAP-Win32 适配器的高级设置 IPv4 属性添加了 10.8.0.2 作为服务器端的默认网关。老实说,我不知道我为什么这样做。我只是迫不及待地想让它工作。

现在,由于我将路由的 IP 子网更改为 192.168.157.1,因此我只在日志文件中看到两个警告,这对 IMO 来说真是个好消息。但我仍然无法 ping(也需要查看 ping 策略,但我怀疑这是否可能是问题所在)。当连接到我的服务器时,客户端也可以零访问互联网。没有ping,没有网页,没有互联网。

服务器端警告说:

警告:在任何活动的网络适配器上都无法访问路由网关:10.8.0.2

客户端警告:

警告:本地 LAN [192.168.2.0/255.255.255.0] 和远程 VPN [0.0.0.0/0.0.0.0] 之间的潜在路由子网冲突

再次非常感谢。

小智 -1

我建议您安装一个防火墙,或者如果您有使用防火墙连接 VPN 的防火墙。我有watchguard,制定或编辑策略非常简单,例如ping。我遇到了一个问题,我不希望子网“B”上的用户甚至能够 ping 子网“A”,并且可以轻松地在该策略中更改它。

无论如何,您可以尝试更改具有“正常”IP 范围的网络子网(如果可能),因为 192.168.1.1 不是最佳实践方法。我也不会把你的外部 IP 地址公开给全世界看:)

对我来说,听起来您的防火墙中的某些内容没有将流量路由到您的 192.xxx 子网,从表面上看,这是因为您的 LAN 具有相同的 IP 范围。另外你在 10.8.0.2 上有什么设备?看起来像您的网关,但您的 LAN 不同。请稍微解释一下...

PS 抱歉,我试图发表评论而不是回答,但我没有足够的代表。