我如何在服务器上运行OpenVPN客户端,同时仍然可以访问这两个networking?

我有一台服务器,我想通常使用openvpn连接到不同的OpenVPN服务器。 问题是,这使得我的客户端服务器无法访问,因为它不再监听任何端口,因为它具有不同的外部IP。

什么才是解决这个问题的正确方法? 有没有办法让OpenVPN的连接在不同的接口或什么东西,然后有程序我想使用OpenVPN连接使用上述接口? 是这样的可能吗?

当你启动openvpn客户端连接时,你的客户端和服务器会build立一个带有不同IP范围的tun / tap接口,而不是通常的networking。

服务器端:

  • 您必须在openvpnconfiguration文件中告诉服务器,这个文件将推送到客户端的路由到达服务器networking。

    例如推“路由192.168.10.0 255.255.255.0”。

  • 你必须在服务器(不是在客户端)启用ip_forwarding,并告诉iptables,你的客户端networking的包必须从正常的接口桥接到tun / tap接口(在服务器中)。

我希望这个帮助,问题是在你的服务器上,而不是在你的客户端上。

问候。

您的OpenVPN服务器正在使用

 push "redirect-gateway def1" 

选项在其OpenVPNconfiguration。 这意味着它告诉所有的客户端通过VPN路由所有的stream量。

这意味着访问服务器时,来自客户端的入站数据包通过服务器的外部IP和其正常的Internet连接来访问。

但是,传出的数据包会通过新的默认网关,通过VPN。 如果VPN服务器对来自OpenVPN客户端的数据包使用NAT,则回复数据包将被丢弃,因为它们不属于OpenVPN服务器上与NATbuild立的任何现有TCP连接。

一种解决scheme是删除服务器上的选项,然后为需要通过VPN访问的IP地址提供特定的路由。 这个命令是这样的:

 route 192.168.0.0 255.255.255.0 

这将通过VPN路由192.168.0.0/24子网上的所有stream量。 所有其他stream量都使用正常连接发送。

另一种方法是将服务器的DNS条目更改为指向VPN服务器的IP地址,然后在VPN服务器上configuration端口转发/ DNAT以将所需端口的stream量转发给VPN客户端。

当使用后面的选项时,所有到服务器的传入请求将通过VPNstream向服务器。

  • 泰罗