连接到openvpn服务器后如何添加路由?

pla*_*cat 4 vpn networking openvpn

我正在尝试几天来解决我的问题。我已经在 windows 上使用 openvpn 有一段时间了,在用 ubuntu 13.10 替换 windows 之后,我很高兴看到 openvpn 也可用于 ubuntu。

我从 Windows 和 /var/log/syslog 中复制了我的设置,我看到我的连接已成功创建。但是,无论我做什么,我都无法设置路线。在 Windows 中,这只是由脚本完成,其工作方式如下(IP 地址略有不同,因为我必须将它们保密):

c:\windows\system32\route.exe delete 55.78.16.20
c:\windows\system32\route.exe delete 55.78.16.0
del tmp.cmd
c:\windows\system32\route.exe print | grep.exe -m1 "^ *0.0.0.0" | sed.exe s/\x20\x20*/\t/g | cut.exe -f4 | sed "s/.*/c:\\windows\\system32\\route.exe add 55.78.16.20 mask 255.255.255.255 &/" > tmp.cmd
c:\windows\system32\route.exe print | grep "^ *172.16.0.1" | sed s/\x20\x20*/\t/g | cut -f4 | sed "s/.*/c:\\windows\\system32\\route.exe add 55.78.16.0 mask 255.255.255.0 &/" >> tmp.cmd
tmp.cmd
Run Code Online (Sandbox Code Playgroud)

设置连接并执行上述脚本后,与我的服务器的连接通过 VPN,而其他一切正常。

由于这个脚本使用了 grep、sed 和 cut,我想我可以轻松地将它“翻译”到 linux。我做到了,除了我有点不确定如何使用route命令来正确设置我的连接。

PS 我也尝试使用网络管理器设置 VPN,但出现同样的问题:如何添加路由?

提前谢谢

Xav*_*r J 15

在 OpenVPN 上,您可以通过三种方式完成此操作:

  1. 服务器将路由推送到所有客户端。您可以通过将 route 命令放在服务器上的 server.conf 文件中来完成此操作
  2. 服务器将路由推送到单个客户端。您可以通过将 route 命令放在服务器上所谓的 client-config 文件夹中的特定于客户端的文件中来完成此操作
  3. 客户端设置路由。您可以通过将路由放入您的客户端配置(Windows 上的 ovpn)文件来完成此操作

在所有三种情况下,它看起来像这样:

route [routeaddress] [netmask]
Run Code Online (Sandbox Code Playgroud)

IE

route 172.92.3.0 255.255.0.0
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此页面。

http://openvpn.net/index.php/open-source/documentation/howto.html

  • 这是正确的答案。应该这样选择。 (2认同)