為什麼我無法透過隧道連接到 OpenVPN 伺服器的 LAN 介面?

為什麼我無法透過隧道連接到 OpenVPN 伺服器的 LAN 介面?

我在工作單位和家之間設定了 OpenVPN。它使用憑證(不是預先共用金鑰),處於 tun 模式,並且運作良好。網路看起來像這樣:

圖表

我已經設定了正確的路由來來回發送流量,並且客戶端與 192.168.80.1(伺服器的隧道 IP)或 192.168.5.0/24(工作)網路上的任何內容進行通訊都沒有問題,這很棒。

我遇到的一個問題是客戶端無法與 192.168.5.10(工作網路上伺服器的 IP)通訊或 ping 通。

iptables 沒有阻止任何東西。我是否缺少一些 OpenVPN 安全設定或 Linux 設定?

答案1

答案可能是因為 ping 使用了錯誤的ICMP 封包的來源 IP。預設情況下,它將選擇封包出站介面上的 IP。在您的情況下,工作時的地址為 192.168.80.1,家中的地址為 192.168.80.10。

請嘗試以下方法:

ping -I eth0 <address>

答案2

終於弄清楚我的問題了。與OpenVPN本身無關,根據上述資訊無法解決。萬一其他人遇到這種情況,結果就是這樣:

我的 OpenVPN 伺服器連接到 2 個不同的網絡,並運行 2 個不同的 OpenVPN 實例 - 一個在一個介面上偵聽,另一個在另一個介面上偵聽。其中一個介面位於我的圖表上 (192.168.5.10),而另一個則不在我的圖表上 - 我們稱之為 192.168.4.10。

為了實現這項工作,我有基於策略的路由規則,其中規定「如果封包的來源IP 為192.168.5.10,則將其發送到路由器192.168.5.1」和「如果封包的來源IP 為192.168.4.10 ,則將其發送到路由器” 192.168.4.1”。這意味著當建立 OpenVPN 連線時,它們可以正常運作。

問題是,當我從隧道內 ping 192.168.5.10 時,返回資料包符合相同的 PBR 規則並被發送到 192.168.5.1,而不是從隧道返回。我的 PBR 規則的更改解決了這個問題。

相關內容