使用OpenVPN在客户端上添加路由


13

这就是我的设置。运行Ubuntu OpenVPN版本2.3.2的笔记本电脑

我连接到OpenVPN服务器,该服务器连接到异地网络。

我使OpenVPN客户端运行,并且可以ping通VPN服务器。服务器没有推送任何路由,因此我需要在客户端上路由。

添加非现场网络以路由到VPNserver,以便我可以访问非现场网络。

因此,我的问题是我的请求没有从192.168.0.1网络跳转到异地172 。*一个...我可以在客户身上做任何事情吗?我没有服务器的任何所有权,现在不从服务器推送溃败,将来我不知道

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.242.2.6  P-t-P:10.242.2.5  Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:100 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:0 (0.0 B)  TX bytes:12129 (12.1 KB)

wlan1     Link encap:Ethernet  HWaddr 5c:93:a2:a0:6e:1b  
      inet addr:10.101.7.41  Bcast:10.101.31.255  Mask:255.255.224.0
      inet6 addr: fe80::5e93:a2ff:fea0:6e1b/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:355109 errors:0 dropped:0 overruns:0 frame:0
      TX packets:206832 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:454685028 (454.6 MB)  TX bytes:23942624 (23.9 MB)



Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.101.0.1      0.0.0.0         UG        0 0          0 wlan1
10.101.0.0      0.0.0.0         255.255.224.0   U         0 0          0 wlan1
10.242.2.1      10.242.2.5      255.255.255.255 UGH       0 0          0 tun0
10.242.2.5      0.0.0.0         255.255.255.255 UH        0 0          0 tun0
192.168.0.0     10.242.2.5      255.255.255.0   UG        0 0          0 tun0
192.168.82.0    10.242.2.5      255.255.255.0   UG        0 0          0 tun0

可以通过在客户端配置中进行拉/拉或手动配置来添加路由。您是否在不将路由推送到服务器的情况下是如何执行此操作的,还是在如何将路由从服务器推到客户端(或单个)的问题?请在您的问题中包括(请对其进行编辑):1)是否可以控制服务器的配置。2)包括客户端OpenVPN配置(如果为1,则为服务器)。这样我们可以为您提供更好的帮助。
gertvdijk 2015年

Answers:


25

查看您的路由表。调用时没有明确的路由告诉流量到172 ... *。要发送到VPN tun接口。

您有几种选择:

  1. 如果您有权访问openVPN服务器,则将此指令添加到openvpn配置中:

    push "redirect-gateway def1 bypass-dhcp"
    

    此设置将路由/强制所有流量通过VPN。您有另一个选择。是在客户端自己添加一条静态路由

  2. 在终端的客户端上手动添加路由

    sudo route add -net 172.16.0.0/24 dev tun0
    
  3. openvpn带有带有选项的指令,用于在您的openvpn配置文件中添加和删除客户端路由route

    新增:

    route 172.16.0.0 255.255.255.0
    

    到VPN客户端上的openvpn配置文件。连接时会自动添加路由

  4. 奖励:openvpn还有一个 up/ down指令,允许您在连接到VPN时启动脚本。这可以让您执行任何自定义操作,例如设置DNS,路由等。但是它要求您将命令存储在另一个文件中。

    因此,如果您的openvpn客户端配置文件包含以下内容

    script-security 2 system
    up run-stuff-after-vpn-connect.sh
    

    创建一个名为run-stuff-after-vpn-connect.sh(确保它具有执行权限。)并添加:

    #!/bin/sh
    route add -net 172.16.0.0/24 dev tun0
    

    一旦隧道建立,这将添加路由


由于您未在问题中向我们提供子网的完整声明,因此假设其为172.16.0.0/24


因此,如果我在client.conf文件中添加向上路由添加-net 172.16.0.0/24 dev tun,则路由应该显示在netstat -rn中?
Jocke 2015年

如果我在client.conf中添加该行,则vpn不会上升
Jocke 2015年

我在哪里添加up route命令...?
Jocke,2015年

2
@tomodachi我必须使用点表示法才能使其在openvpn客户端(2.3.11)上工作 route 0.0.0.0 128.0.0.0
Matt

4
在我的OpenVPN 2.3.13(Windows 10)上,该选项route 172.16.0.0/24未被接受,我必须改用route 172.16.0.0 255.255.255.0
WoJ
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.