OpenVPN中的另一个路由问题 - 在VPN上无法访问本地计算机


3

这可能是一个相当漫长的帖子,因为我想确保我不会忘记任何事情。这可能是一个非常微不足道的问题,但我无法弄清楚我的设置有什么问题。

脚本

我最近配置了一个运行的VPN服务器 OpenVPN的 ,目前正在运行 在ESXi中的VM内部 。我已经安装了 本指南 ,一切似乎都运行正常:我可以连接到我的VPN服务器(通过路由器上的端口转发)并使用证书身份验证登录。

什么不起作用

我无法访问本地网络上的计算机( 192.168.0.0 当我通过VPN连接时。

目前,在成功通过VPN连接到我的家庭网络后,我的局域网上的所有机器都无法访问(我甚至无法ping它们)。

网络信息

网络配置非常简单:

  • 我的本地网络: 192.168.0.0
  • 我的OpenVPN IP: 192.168.0.140
  • 我的门户: 192.168.0.1
  • 我的VPN网络: 10.8.0.0
  • 我的OpenVPN VPN IP: 10.8.0.1
  • 路由器在端口上配置了端口转发 1194

到目前为止我尝试过的(高级)

我已经按照三个资源尝试解决此问题:

  1. OpenVPN路由指南,特别是部分 使用路由和OpenVPN未在默认网关上运行
  2. 这篇短文 关于如何使用OpenVPN设置路由以连接到LAN上的主机
  3. 另一篇文章 如何配置ESXi以使其正常工作 ,因为很明显,在默认配置中,ESXi可能会导致一些问题
  4. 在VPN服务器上启用IP转发
  5. 启用所有流量通过OpenVPN的防火墙

到目前为止我尝试了什么(详细)

这是OpenVPN server.conf

local 192.168.0.140
topology subnet
dev tun
proto udp
port 1194

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/vpnserver.crt
key /etc/openvpn/easy-rsa/keys/vpnserver.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

server 10.8.0.0 255.255.255.0
# server and remote endpoints
ifconfig 10.8.0.1 10.8.0.2

# Add route to Client routing table for the OpenVPN Server
push "route 10.8.0.1 255.255.255.255"
# Add route to Client routing table for the OpenVPN Subnet
push "route 10.8.0.0 255.255.255.0"
# your local subnet
push "route 192.168.0.0 255.255.255.0"
# Set primary domain name server address to the SOHO Router
# If your router does not do DNS, you can use Google DNS 8.8.8.8
push "dhcp-option DNS 192.168.0.254"
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"

client-to-client
duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
cipher AES-128-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
verb 1

一个例子 client.ovpn

client
dev tun
proto udp
remote <my_router_ip> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ns-cert-type server
key-direction 1
cipher AES-128-CBC
comp-lzo
verb 1
mute 20

由于我当前的路由器不支持静态路由,遗憾的是我不能一劳永逸地配置路由,但是当我通过VPN连接时,我已经在我想要访问的每个设备上这样做了。例如,在我的Plex服务器上( 192.168.0.110 ),我这样做了:

route add -net 10.8.0.0/24 gw 192.168.0.140

这样我的OpenVPN机器( 192.168.0.140 )可以连接VPN网络上的机器( 10.8.0.0 )与本地网络上的人( 192.168.0.0 )。

我还确保在OpenVPN服务器上启用了IP转发,但取消注释以下行 /etc/sysctl.conf

net.ipv4.ip_forward=1

最后,我添加了以下内容 iptables 允许来自VPN网络的所有流量到达本地网络的规则:

# Allow traffic initiated from VPN to access LAN
iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

# Allow established traffic to pass back and forth
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

最后,我配置了虚拟交换机 vSwitch 在ESXi上不要丢弃混杂的数据包,因为上面链接的文章指出,在其默认配置中它会丢弃这些数据包,这可能会在尝试访问本地网络上的计算机时使用OpenVPN时出现问题。

除非我错过了什么,否则这应该是所有需要做的事情。不幸的是,在成功连接到VPN后,我仍然无法ping通机器上的 192.168.0.0 网络。

同样,这可能是非常微不足道的事情,但无论如何我愿意为正确的答案提供一些赏金,因为我首先设置VPN的原因之一是能够访问我的其他机器而无需转发路由器上的更多端口。

客户机网络信息

这是完整的输出 ipconfig 我用来连接的机器(为了“伪造”从远程网络连接,我绑定了手机的3G连接并通过Wi-Fi从Windows连接):

C:\Windows\System32>ipconfig

Windows IP Configuration


Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::2c0e:13f0:840c:37b4%15
   IPv4 Address. . . . . . . . . . . : 10.8.0.10
   Subnet Mask . . . . . . . . . . . : 255.255.255.252
   Default Gateway . . . . . . . . . :

Wireless LAN adapter Local Area Connection* 2:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::a5e8:546c:e046:a246%4
   IPv4 Address. . . . . . . . . . . : 192.168.43.220
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.43.1

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter VirtualBox Host-Only Network:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::1d14:52cd:fd6a:2395%10
   IPv4 Address. . . . . . . . . . . : 192.168.56.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Tunnel adapter isatap.{75888664-BED0-4908-8984-4DBCF9E9BDDC}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter isatap.{6F952140-AFCD-46E4-89E3-02CDEF869C50}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter isatap.{1F6CE10F-8498-4A7B-B647-FAE7422FF030}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

输出 route print

C:\Windows\System32>route print
===========================================================================
Interface List
 15...00 ff 1f 6c e1 0f ......TAP-Windows Adapter V9
  7...12 56 f2 a5 d0 53 ......Microsoft Wi-Fi Direct Virtual Adapter
  4...80 56 f2 a5 d0 53 ......Killer Wireless-N 1202 Network Adapter
  3...80 fa 5b 00 d7 1f ......Realtek PCIe GBE Family Controller
 10...08 00 27 00 68 59 ......VirtualBox Host-Only Ethernet Adapter
  1...........................Software Loopback Interface 1
  8...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
  9...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 11...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.43.1   192.168.43.220     25
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    276
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    276
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    276
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
     192.168.43.0    255.255.255.0         On-link    192.168.43.220    281
   192.168.43.220  255.255.255.255         On-link    192.168.43.220    281
   192.168.43.255  255.255.255.255         On-link    192.168.43.220    281
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    276
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    276
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    276
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    276
        224.0.0.0        240.0.0.0         On-link    192.168.43.220    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    276
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    276
  255.255.255.255  255.255.255.255         On-link    192.168.43.220    281
===========================================================================
Persistent Routes:
  None

IPv6 Route Table
===========================================================================
Active Routes:
 If Metric Network Destination      Gateway
  1    306 ::1/128                  On-link
 10    276 fe80::/64                On-link
 15    276 fe80::/64                On-link
  4    281 fe80::/64                On-link
 10    276 fe80::1d14:52cd:fd6a:2395/128
                                    On-link
 15    276 fe80::2c0e:13f0:840c:37b4/128
                                    On-link
  4    281 fe80::a5e8:546c:e046:a246/128
                                    On-link
  1    306 ff00::/8                 On-link
 10    276 ff00::/8                 On-link
 15    276 ff00::/8                 On-link
  4    281 ff00::/8                 On-link
===========================================================================
Persistent Routes:
  None

客户端计算机的IP是多少?如果它在同一个网络上( 192.168.0.XXX ),它不会将流量转发到VPN)。
heavyd

@heavyd当我连接到VPN时,我通常会获得IP 10.8.0.6。让我用完整的输出更新问题 ipconfig,它可能是有用的。
user1301428

的输出 route print 在VPN客户端上也可能有用。另外,尝试ping机器时会得到什么?你跑了吗? sysctl -p 或修改后重新启动服务器 /etc/sysctl.conf
user2313067

@ user2313067我添加了输出 route print,我确认我也跑了 sysctl -p。我也经过双重检查 cat /proc/sys/net/ipv4/ip_forward
user1301428

对不起,我应该读到最后。我建议打开iptables转发,在VPN和本地网络之间没有连接状态,并记录其余部分作为故障排除的第一步。此外,您可以在路由器上记录丢弃的数据包吗?
Mahdi

Answers:


1

好的,问题出在客户端。我不知道根本原因是什么,但基本上我的客户端由于某种原因不会从OpenVPN服务器收到静态路由。卸载并重新安装OpenVPN客户端解决了这个问题:/

因此,上述配置完全正确。


-1

我想你要问的是什么 分裂隧道 。如果您使用的是Windows的本机VPN客户端,请转到控制面板 - &gt;网络和互联网 - &gt;网络连接 - &gt;您的VPN连接 - &gt;属性 - &gt;网络 - &gt; IPv4属性 - &gt;高级 - &gt;取消选中“在远程网络上使用默认网关”

如果您使用的是其他软件,只需查看拆分隧道即可。您可能也需要在服务器端启用它。


这不会带来一些流量 通过VPN服务器虽然?
user1301428

是!但这不是你想要的(本地流量不通过VPN)。
Mahdi

我确信分裂隧道会让我达到我的目标,但这不是我想要的方式。我仍然希望我的所有流量都通过我的VPN服务器,但我也想访问不同的网络,这里涉及路由。
user1301428

1
拆分隧道基本上是调整你的路由。通过VPN发送你的网络流量是没有意义的只是b / c隧道的另一端不知道你的本地网络。您仍然通过VPN发送所有出站流量。
Mahdi

“隧道的另一端对你的本地网络一无所知”,这是正确的,而这又是我需要路由工作的地方:)
user1301428

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.