無法透過 VPN IP SSH 到 OpenVPN 雲端連接器計算機

無法透過 VPN IP SSH 到 OpenVPN 雲端連接器計算機

我剛開始使用 OpenVPN 雲端連接器來建立網狀 VPN 網路。我部署了一個連接器並設定了相關的 IP 轉送和 NAT 協議,使我能夠存取運行 OpenVPN 雲端連接器的電腦後面的 LAN 網路。我能夠成功地做到這一點。 (我的信息主要來自這個鏈接https://openvpn.net/cloud-docs/connecting-networks-to-openvpn-cloud-using-connectors/

現在的問題是,為什麼我無法透過 SSH 連接到透過其 VPN IP 運行雲端連接器的電腦100.96.1.18?奇怪的是,我可以 ping 通,沒有問題。 在此輸入影像描述

~$ ssh [email protected]
ssh: connect to host 100.96.1.18 port 22: Network is unreachable
~$ ping 100.96.1.18 -c 4
PING 100.96.1.18 (100.96.1.18) 56(84) bytes of data.
64 bytes from 100.96.1.18: icmp_seq=1 ttl=62 time=209 ms
64 bytes from 100.96.1.18: icmp_seq=2 ttl=62 time=279 ms
64 bytes from 100.96.1.18: icmp_seq=3 ttl=62 time=208 ms
64 bytes from 100.96.1.18: icmp_seq=4 ttl=62 time=204 ms

--- 100.96.1.18 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 203.702/224.971/279.214/31.383 ms

令人驚訝的是,我可以透過其本機 IP 透過 SSH 遠端(透過 VPN 用戶端電腦)連接到連接器計算機192.168.18.1

以下是連接器機器上的 IP 路由。

~$ ip route
default via 192.168.18.1 dev eno1 proto dhcp metric 100 
64.120.110.199 via 192.168.18.1 dev eno1 
100.80.0.0/12 via 100.96.1.17 dev tun0 
100.96.0.0/11 via 100.96.1.17 dev tun0 
100.96.1.16/30 dev tun0 proto kernel scope link src 100.96.1.18 
169.254.0.0/16 dev eno1 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.0.0/24 via 100.96.1.17 dev tun0 
192.168.18.0/24 dev eno1 proto kernel scope link src 192.168.18.88 metric 100 

~$ ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 100.96.1.18  netmask 255.255.255.252  destination 100.96.1.18
        inet6 fd:0:0:8101::2  prefixlen 126  scopeid 0x0<global>
        inet6 fe80::5a84:3a5:f59b:d64f  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 1682  bytes 451719 (451.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1755  bytes 637526 (637.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

這裡也用於調試,還有來自已連接客戶端電腦的 IP 路由

~$ ip route
default via 192.168.31.1 dev wlp2s0 proto dhcp metric 600 
25.0.0.0/8 dev ham0 proto kernel scope link src 25.56.7.62 
100.80.0.0/12 via 100.96.1.1 dev tun0 
100.96.0.0/11 via 100.96.1.1 dev tun0 
100.96.1.0/28 dev tun0 proto kernel scope link src 100.96.1.2 
169.254.0.0/16 dev wlp2s0 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.107.213.76 via 192.168.31.1 dev wlp2s0 
192.168.0.0/24 via 100.96.1.1 dev tun0 
192.168.18.0/24 via 100.96.1.1 dev tun0 
192.168.31.0/24 dev wlp2s0 proto kernel scope link src 192.168.31.189 metric 600 

~$ traceroute 100.96.1.18
traceroute to 100.96.1.18 (100.96.1.18), 64 hops max
  1   100.96.1.18  265.200ms !N  109.653ms !N  105.821ms !N

我的主要爭論點是,由於100.96.0.0/11 via 100.96.1.1 dev tun0路由被推送到客戶端,我應該能夠到達100.96.1.18它的 IP 和 ssh 或追蹤路由等。

PS 在這裡問這個問題是因為 OpenVPN 支援無法回答。

答案1

以防萬一有人遇到同樣的麻煩:這個問題與您這邊的防火牆無關,因為連線在雲端被中斷。根據 OpenVPN 雲端理念,您使用「網路連接器」作為用戶端連接到某個網絡,並使用「主機連接器」來允許客戶端連接到您。因此,如果您想透過OpenVPN 雲端連接到您的伺服器,則該伺服器必須透過「主機連接器」而不是透過「網路連接器」連接到VPN,因為只有「主機連接器」才會為雲端的傳入連接打開防火牆。

要檢查這是否適用於您,請確保您的openssh 伺服器正在使用「netstat -pan | grep ssh」或至少在您的VPN 介面上偵聽所有介面(對於ipv6 為0.0.0.0:22 或:::22 )。然後使用(假設 vpn 位於 tun0 介面)「tcpdump -pni tun0 tcp port 22」來查看是否從 vpn 收到任何 ssh 連線請求。您可以刪除“連接埠 22”並嘗試 ping 您的“伺服器”以確保流量正常。通常使用“網路連接器”,您將獲得 ping 通行證,但對於 ssh 請求,將看不到任何內容,因為雲端不允許 ssh 流量。如果您使用“主機連接器”透過雲端建立連接,它將起作用。

https://openvpn.net/cloud-docs/owner/servers/hosts/adding-a-host.html

相關內容