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

连接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

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

由于此脚本使用了 grep、sed 和 cut,我认为我可以轻松地将其“翻译”到 Linux。我做到了,只是我有点不确定如何使用route命令正确设置我的连接。

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

提前谢谢

答案1

在 OpenVPN 上,你可以通过三种方式实现此目的:

  1. 服务器将路由推送到所有客户端。你可以在服务器上的 server.conf 文件中放入路由命令来执行此操作
  2. 服务器将路由推送到单个客户端。你可以将路由命令放在服务器上客户端特定的文件中(即客户端配置文件夹)来实现此目的
  3. 客户端设置路由。你可以将路由放入客户端配置(Windows 上的 ovpn)文件中

在这三种情况下,它看起来都是这样的:

route [routeaddress] [netmask]

IE

route 172.92.3.0 255.255.0.0

请参阅此页面了解详情。

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

答案2

首先:

您一直在使用GNUWindows 上的工具吗?喜欢WTH男人。

第二:

基本上,有两种方法可以实现同一件事。

第一种是使用ip命令。你可以做一些类似的事情,ip route add ....虽然我有点老派,不喜欢,ip所以我不太确定你会怎么做,但man ip肯定会帮助你。

第二种方法是使用较旧的route命令。使用此命令,您可以修改内核的路由表。发出命令man route几乎会告诉您需要做什么,但为了完整起见,它应该是这样的route add <target IP you want to reach> <interface that you want the target to be reached>。您可以将目标 IP 设置为整个子网,但随后您还必须为此添加网关。(并设置到该网关的路由。)
哦,您可以使用和检查您的ip接口ifconfig

请让我知道您的效果如何。

相关内容