透過 OpenVPN 從 VM 進行連接埠轉送

透過 OpenVPN 從 VM 進行連接埠轉送

如果這個問題已經在另一個線程中得到解釋,我很抱歉,但我在任何地方都找不到解決我的問題的方法。

我對所附網路圖有疑問。我可以將路由器R2下的主機192.168.1.21的任何服務連接埠永久共用給路由器R1下的主機192.168.1.121嗎?路由器 R1 下的網路中有一台 192.168.1.112 伺服器,它透過 tun0 網路(OpenVPN)連接到路由器 R2 下的 192.168.1.20 伺服器。

我能夠透過 SSH 成功建立連接埠隧道,但我想要一個永久的解決方案。我將感謝您的幫助。

所有伺服器都有Linux作業系統。

圖表

編輯:2024-03-08

我將 R2 下的網路內部位址更改為 192.168.2.0。下面是在PC1上執行tracert後的結果。

追蹤1

追蹤2

瀏覽器中不顯示路由器的網站(192.168.2.1)。位址 192.168.2.21 應指向另一台伺服器。在 192.168.2.0 網路內可以 ping 通 192.168.2.21 伺服器,沒有任何問題。

從 192.168.2.21 到 192.168.1.1 的 Tracert

追蹤

路由器配置192.168.1.1

R1配置

路由器配置192.168.2.1

R2配置

伺服器配置

local 192.168.1.112
port 1194
proto tcp4
dev tun
ca ca.crt
cert server-dell.crt
key server-dell.key  # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
#ifconfig 10.8.0.1 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
client-config-dir ccd
;push "route 192.168.1.0 255.255.255.0"
;push "route 10.8.0.0 255.255.255.0"
;push "route 192.168.2.0 255.255.255.0"
;route 192.168.2.0 255.255.255.0
client-to-client
push "route 192.168.1.0 255.255.255.0"
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"
route 192.168.2.0 255.255.255.0
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
status /var/log/openvpn/openvpn-status.log
verb 3

CCD配置

ifconfig-push 10.8.0.10 255.255.255.0
iroute 192.168.2.0 255.255.255.0

我嘗試了不同的配置變體。

編輯:2024-03-09

從 PC1 等級 (192.168.1.120) 我可以在瀏覽器中顯示來自 10.8.0.1 的服務,但無法顯示來自 10.8.0.10 或 192.168.2.20 的服務。在虛擬機器 windows 10 (192.168.2.22) 中,我能夠顯示來自位址 192.168.1.112 的服務。客戶端的 LAN 可以看到 openvpn 伺服器的 LAN,就好像伺服器的 LAN 看不到客戶端的 LAN 一樣。

編輯 2024-03-10

不知道這是否重要,但是tun0網路的客戶端是來自同一區域網路的另一台主機。主機IP為192.168.2.115。圖中沒有這個

編輯:2024-03-11

在 iptables 中新增適當的規則後,我的 openVPN 伺服器(10.8.0.1 或 192.168.1.112)現在能夠 ping 用戶端的 LAN 電腦並在瀏覽器中顯示程式(例如 Webmin)。不幸的是,從伺服器端的 LAN 等級(例如 PC1 192.168.2.120)我無法 ping 用戶端 LAN 端的電腦(例如 Webadmin 不起作用)。

編輯 2024-03-12

成功。我終於成功建立了 LAN 到 LAN 連線。解決方案是在 OpenVPN 伺服器上執行以下命令。

iptables -t nat -A POSTROUTING -o enp2s0  -j MASQUERADE
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o enp2s0 -J ACCEPT
iptables -A FORWARD -i tun0 -o enp2s0 -j ACCEPT
iptables -A FORWARD -i enp2s0 -o tun0 -j ACCEPT

相關內容