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


44

在远程专用网络上,有两台服务器-文件服务器和数据库服务器(如果需要的话,它们都是Win机器)。

文件服务器具有其自身相当强大的身份验证机制,并允许我直接从远程位置进行连接。

数据库服务器使用简单的用户名和密码,因此为了防止未经授权的访问,它被锁定在本地网络中,从而阻止了外部流量。

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

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

题:

如何配置OpenVPN客户端,使其仅通过发往单个特定IP地址(即数据库服务器)的VPN路由流量?


很简单,请参见此处以了解操作方法superuser.com/a/178675/96461
Sameer

Answers:


49

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

我们主要是说英语的人,不一定会说德语。请翻译您的答案。
gronostaj

1
+1。这正是我所需要的。我在Linux上使用ovpn客户端,因此您回答就救了我。谢谢。
slayedbylucifer 2014年

我可以将网站路由到vpn吗?例如,仅www.facebook.com
Nicola Peluchetti 2014年

以我为例,通过VPN路由单个ip似乎可以。但是,当使用子网掩码时,它根本不起作用。有什么想法吗?
running.t 2014年

我仍然不知道答案,我的问题(上图),但我已经做了一些调查,并建立单独的线程一下:superuser.com/questions/854194/...
running.t

24

目标

  • 默认情况下,即使连接了VPN,也对所有Internet通信使用普通Internet连接。
  • 通过VPN将流量路由到一个特定的IP地址。

脚步

  1. Win+ R并执行ncpa.cpl

  2. 右键单击VPN连接,然后转到属性→网络

  3. 选择Internet协议版本4,去属性→高级...

  4. 取消选中“ 在远程网络上使用默认网关”,然后单击“ 确定”

  5. (可选)对Internet协议版本6重复上述步骤。

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

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

  8. 在“ 接口”列表中发现 VPN的接口,在“ 活动路由”中发现其网关。

    在我的机器上,我有:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    在这里,VPN的网关是10.88.1.1,因为它是该10.xxx.xxx.xxx块的网关。

  9. 添加与VPN建立连接时将添加到活动路由的持久性路由:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    在此示例中,23.22.135.169是的IP whatismyip.org10.88.1.1是网关的IP和32接口号。

  10. (可选)对重复前面的步骤route print -6

  11. 测试设置。

    如果一切工作,whatismyip.orgwww.whatismyip.cx现在将显示不同的IP地址。


1
当然有更简单的方法吗?
Brian Lacy 2012年

1
您知道如何在Linux(Ubuntu)下实现吗?
ЕлинЙ.

1
@ЕлинЙ。如果您使用的是网络管理器,则只需选择“仅将此连接用于此网络上的资源”。
leif81 2014年

1
+1 ...但是可以打高尔夫球吗?
奥利维尔·杜拉克

11

在您的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"

编辑:我错过了解决的一件事-所有流量的默认转发...它可以在服务器上禁用,或者客户端可以选择忽略“推送”指令(因此我们的第二个选项“推送”路由将不起作用)通过:

route-nopull

-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

请解释该命令的作用。仅一个没有解释的命令就没有太大用处。另外,请检查帖子的格式- <brackets>如果未将所有标签都标记为代码,则所有标签都不可见。
slhck
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.