OpenVPN和路由

我有一个运行openvpn的服务器,我有一个小问题。

我的所有stream量都被转发到VPN,当我使用像“whatismyip”这样的网站时,我看到了服务器IP,所以这部分工作正常。

但是,当我连接到一个站点在同一台服务器上,而不是VPN,我看到我的真正的IP地址,而不是本地IP地址,如10.8.0.2(在Apache2日志)

有人可以帮我解决这个问题吗?

为了将所有stream量路由到VPN服务器,VPN客户端将客户端机器的默认路由设置为隧道设备。 但是,由VPN客户端创build的传出encryption数据包需要直接路由到VPN服务器(而不是返回到VPN客户端),因此VPN服务器创build的特定路由将从本地网关出去。 路由表看起来像这样(其中1.2.3.4是VPN服务器的公共IP):

192.168.0.0/24 dev eth0 # Local network 1.2.3.4/32 via 192.168.0.1 # Route to VPN server default via 10.8.0.2 # Everything else via VPN client 

当您访问VPN服务器上的其他服务时,它将与该特定路由相匹配,并直接路由到Internet上。

有几个方法可以解决这个问题:

  1. 访问其他服务时使用VPN服务器的私有IP(例如,10.8.0.1而不是1.2.3.4)。 理想情况下,这将通过VPN服务器上的DNS服务器完成,为VPN客户端提供分离的DNS。
  2. 为VPN服务器使用专用的IP地址。
  3. 在客户端上configuration基于端口的策略路由,这样只有发往VPN端口号的VPN服务器的数据包才能直接路由到Internet上。