我有一台服务器,我想通常使用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向服务器。