服务器端:

服务器端:

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

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

答案1

当您启动 openvpn 客户端连接时,您的客户端和服务器会设置一个 tun/tap 接口,其 IP 范围与通常的网络不同。

服务器端:

  • 您必须在 openvpn 配置文件中告诉服务器,将到达服务器网络的路由推送给客户端。

    例如推“路由 192.168.10.0 255.255.255.0”。

  • 您必须在服务器(而不是在客户端)中启用 ip_forwarding,并通过 iptables 告知发往客户端网络的软件包必须从普通接口桥接到 tun/tap 接口(在服务器中)。

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

问候。

答案2

您的 OpenVPN 服务器正在使用

push "redirect-gateway def1"

在其 OpenVPN 配置中有一个选项。这意味着它会告诉所有客户端通过 VPN 路由所有流量。

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

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

一种解决方案是删除服务器上的选项,然后为需要通过 VPN 访问的 IP 地址提供特定路由。执行此操作的命令如下:

route 192.168.0.0 255.255.255.0

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

另一种选择是更改服务器的 DNS 条目以指向 VPN 服务器的 IP 地址,然后在 VPN 服务器上配置端口转发/DNAT,以将所需端口的流量转发到 VPN 客户端。

当使用后一种选项时,所有传入服务器的请求都将通过 VPN 流向服务器。

  • 泰罗

相关内容