通过隧道访问 OpenVPN 主机

通过隧道访问 OpenVPN 主机

是否可以通过 Linux(openSUSE)上的隧道本身访问运行 OpenVPN 服务器的主机?

例如,如果我的 OpenVPN 主机*的 VPN IP 是10.125.0.1,而其公共 IP 是1.2.3.4,我希望发送到 的流量1.2.3.4通过隧道(我试图绕过 SSH 限制防火墙)。但是,即使启用了 VPN,通过 SSH 连接到 和10.125.0.1也会1.2.3.4失败。

我认为 SSH 连接只是被OpenVPN 主机上的tun/tap接口 ( ) 阻止了,这是没问题的,但是连接仍然应该可以通过。10.125.0.11.2.3.4

我检查了 SSH 客户端机器上的路由表*,默认路由实际上是 VPN 接口,但连接1.2.3.4仍然要通过 LAN 网关路由:

// Route to VPN Server
user@host:~> sudo ip route get <OpenVPN Host IP>
<OpenVPN Host IP> via <LAN Gateway IP> dev wlan0 src <LAN Host IP> uid 0 
    cache 

// Route to Google's DNS
user@host:~> sudo ip route get 8.8.8.8
8.8.8.8 via <VPN Gateway IP> dev vpn src <VPN Host IP> uid 0 
    cache 

(为了清楚起见,我的客户端机器上的 VPN 接口称为vpn

我知道可以在手机(Android)上执行此操作,因为它可以与 OpenVPN 应用程序一起使用(SSH),但这可能吗?如果可以,如何在桌面上执行此操作?

我想从某种意义上来说我的问题是,OpenVPN 移动应用程序和桌面(Linux)版本有什么区别?

*附加信息

OpenVPN服务器:

  • Ubuntu 18.04 机器
  • 技术运行SoftEtherVPN 服务器,但具有 OpenVPN 仿真。这不可能是问题的根源,因为在移动设备上使用 OpenVPN 应用即可实现所需的结果
  • 公共 IP1.2.3.4和私有 (VPN) IP10.125.0.1
  • 是 VPN 网关

OpenVPN 客户端:

  • openSUSE Leap 15.1 机器
  • 成功连接到 OpenVPN 服务器
  • 除此OpenVPN ServerIP 之外的所有流量都通过 VPN
  • 通过 NetworkManager 创建和管理连接
  • 可以 ping 通 OpenVPN 服务器主机(两个 IP),但这是通过 LAN 路由而不是 VPN 进行的

我觉得我对这个问题的措辞过于复杂,所以如果需要的话,请在评论中寻求澄清。

先感谢您

答案1

从技术上来说确实如此,但是它行不通。

您的建议是将 OpenVPN 生成的流量放入隧道本身,形成一条吃掉自己尾巴的蛇。

OpenVPN 主机*的 VPN IP 为 10.125.0.1,其公网 IP 为 1.2.3.4,我希望将流量发送到 1.2.3.4

如果您要将数据包发送到 10.125.0.1,最终会将其包装在另一个地址为 1.2.3.4 的数据包中。如果您按自己的想法将数据包发送到 1.2.3.4,则需要将该数据包路由到 10.125.0.1,而 10.125.0.1 又需要将数据包发送到 1.2.3.4,这样循环就结束了,并永远重复下去。

在 Android 上,应用程序产生的流量在被手机操作系统实际路由之前就被捕获 - 但在这里,应用程序和操作系统之间没有层。

相关内容