Ssh

設置堡壘主機以訪問本地機器

  • January 3, 2021

我的 ISP 為我的家庭路由器提供了 192.168.* IP。只有建築物中的主要公司路由器獲得真正的 IPv4 IP,但建築物中的所有租戶共享該 IP。他們不進行 IP 轉發,所以我不能請求將埠 22 轉發給我或類似的東西。

使用 Tor,我可以打開到 Tor 網路的路由並從外部 ssh 進入。但是,您可以想像它非常滯後。同樣,我的 Synology NAS 在 Synology 上打開了到遠端伺服器的路由,我可以遠端連接到它。

我想知道這個傳輸系統叫什麼,以及如何使用它將我的家用機器連接到我已經租用的 VPS 伺服器(也就是我的堡壘主機),這樣我就可以通過堡壘主機遠端 ssh,而無需需要通過 Tor。我喜歡 Tor,但 ssh 的滯後讓我發瘋。

我最近做了完全相同的事情來連接到通過移動網路連接到網際網路上的物聯網設備,因此在 NAT 下。

我的解決方案基於 Google Cloud 上的微實例。它的 IP 必須是永久的,我們稱之為server_ip. 似乎不需要防火牆規則。

在您想要遠端連接的本地設備上,執行:

ssh -N -R 5757:localhost:22 <server_ip>

其中 5757 是將在伺服器上打開的偵聽埠(它可以是任何東西,但不超過 1023)。這指示伺服器

在終端設備上,例如當你不在家時在你的筆記型電腦上,執行:

ssh -J <server_ip> -p 5757 localhost

這將通過跳轉主機連接您,將 ssh 連接直接路由到從您的家庭設備打開的連接。

為了讓一切更加安全和順暢,我建議您在伺服器和家庭設備中使用基於 SSH 密鑰的身份驗證。如果您需要進一步的幫助,請發表評論。


最後一點,第一個命令 ( ssh -N -R 5757:localhost:22 <server_ip>) 不能退出,因此您必須使用nohup服務或通過服務執行它。後一種解決方案是我更喜歡的解決方案,這是我的服務文件:

[Unit]
Description=Reverse SSH to GCL on port 5757
After=network.target

[Service]
Type=simple
User=flynn
ExecStart=/usr/bin/ssh -N -R 5757:localhost:22 <server_ip>
Restart=always
StartLimitInterval=30

[Install]
WantedBy=multi-user.target

引用自:https://unix.stackexchange.com/questions/627350