2012-08-03 01:03:06 +0000 2012-08-03 01:03:06 +0000
50
50

OpenVPN:只能通过VPN路由特定的IP地址?

在一个远程专用网络中,有两个服务器 – – 一个文件服务器和一个数据库服务器(这两个都是Win机器,以备不时之需)。

文件服务器有自己相当强大的认证机制,允许我从远程位置直接连接。

数据库服务器使用的是简单的用户名和密码,所以为了防止未经授权的访问,它被锁定在本地网络上–外部流量被阻断。

为了访问数据库服务器,我使用Windows上的OpenVPN客户端连接到私有网络上的VPN服务器。

默认情况下,OpenVPN会通过VPN路由所有发往VPN服务器所在的远程网络的网络数据包。不幸的是,通过VPN访问文件服务器是非常慢的。

问题:

如何配置OpenVPN客户端,使其只通过VPN路由一个特定的IP地址–即数据库服务器的流量?

答案 (5)

57
57
57
2013-08-06 08:15:41 +0000

OpenVpn的正确配置是:

route-nopull 
route 192.168.0.0 255.255.255.0

这些条目属于你的.ovpn文件,将通过VPN引导所有192.168.0.*子网流量。

对于一个IP(192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255
``` 这些条目属于你的.ovpn文件,将通过VPN引导所有192.168.0.*子网流量。
27
27
27
2012-08-03 03:53:45 +0000

目标

  • 默认情况下,即使连接了VPN,也会使用普通的互联网连接。
  • 通过 VPN 将流量路由到一个特定的 IP 地址。

步骤

1.按 Win + R 并执行 ncpa.cpl

  1. 右键单击VPN连接,进入属性→网络

  2. 选择互联网协议版本4,然后转到属性→高级…

  3. 取消勾选在远程网络上使用默认网关,然后点击确定

  4. (可选) 对Internet协议版本6重复前面的步骤。

  5. (重新)连接到您的VPN。

  6. 打开命令提示符并执行 route print -4

  7. 接口列表中找到VPN的接口,在活动路由中找到其网关。

  8. 添加一个持久路由,只要有连接到VPN,该路由就会被附加到活动路由中:

  9. 可选)重复前面的步骤,route print -6

  10. 测试设置。

12
12
12
2013-02-04 14:38:03 +0000

在OpenVPN客户端的配置中,添加一行,如

route The.IP.To.Go 255.255.255.255

(其中The.IP.To.Go是你希望通过VPN路由的IP)

这将指示OpenVPN在操作系统的路由表中创建条目。

或者,OpenVPN服务器可以通过添加到服务器配置中,将路由配置 “推送 "给客户端。

push "route The.IP.To.Go 255.255.255.255"

EDIT:有一点我没说到–所有流量的默认转发。它可以在服务器上被禁用,或者客户端可以选择忽略 "推送 "指令(所以我们的第二个选项 "推送 "路由将不起作用),方法如下

route-nopull
0
0
0
2020-01-10 21:36:56 +0000

为了回应那些要求提供一个简单的linux / networkmanager友好的解决方案来定制OpenVPN的路由的评论,这里有一个GUI友好的方式来设置它。据我所知,这个答案只是Thomas的答案的GUI版本。

步骤1:选择你的VPN配置

步骤2:进入相关的标签页(IPv4或IPv6)

步骤3 。点击右下角的 “Routes… "按钮

步骤4 。添加你所需的路由(在本例中,它是通过VPN重定向192.168.0.*的所有流量

步骤5:勾选 "仅用于此连接上的资源 "复选框,这样连接到VPN不会改变你的默认网关设置,以通过VPN路由所有流量。

-3
-3
-3
2015-02-13 09:07:32 +0000
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>