透過隧道存取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.1) 阻止,這沒問題,但到 的連線1.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) 上執行此操作,因為它可以 (SSH) 與 OpenVPN 應用程式配合使用,但是否可能,如果可以,如何在桌面上完成?

我想在某種程度上我的問題是,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,這需要將資料包發送到1.2.3.4,而循環現在已閉合,並會重複自身永遠。

在 Android 上,應用程式產生的流量在被手機作業系統實際路由之前被捕獲 - 但在這裡,應用程式和作業系統之間沒有層。

相關內容