1. 程式人生 > >SSH內網穿透的N種姿勢

SSH內網穿透的N種姿勢

1. 引言

作為一名開發者,我們生活中常遇到公司做不完的工作需要在家接著做,但是,公司的伺服器有統一管理,多為內網ip,在家不能直接訪問到公司伺服器,如果解決這個問題呢?本文就以下兩種情景給出SSH內網穿透的解決方案。

2. 情景一:內網有一臺主機有公網ip

內網有一臺主機同時具備公網ip和內網ip(兩個網絡卡),這種場景比較簡單,直接進行NAT即可。

  • 在linux下可以通過iptables實現
#本機(192.168.1.7,同時具有外網ip)的19200轉發到192.168.1.160的22

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 19200
-j DNAT --to-destination 192.168.1.160:22 iptables -t nat -A POSTROUTING -d 192.168.1.160/32 -p tcp -m tcp --sport 22 -j SNAT --to-source 192.168.1.7 iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 19200 -j ACCEPT

3. 情景二:內網無公網ip,但是可訪問外網

你在家裡執行著一臺 Linux 伺服器,它放在一個 NAT 路由器或者限制性防火牆後面。現在你想在外出時用 SSH 登入到這臺伺服器。你如何才能做到呢?SSH 埠轉發當然是一種選擇。但是,如果你需要處理多級巢狀的 NAT 環境,埠轉發可能會變得非常棘手。另外,在多種 ISP 特定條件下可能會受到干擾,例如阻塞轉發埠的限制性 ISP 防火牆、或者在使用者間共享 IPv4 地址的運營商級 NAT。

這時候,我們需要用到反向隧道,反向 SSH 隧道的概念非常簡單。使用這種方案,在你的受限的家庭網路之外你需要另一臺主機(所謂的“中繼主機”),你能從當前所在地通過 SSH 登入到它。你可以用有公網 IP 地址的 VPS 例項 配置一箇中繼主機。然後要做的就是從你的家庭網路伺服器中建立一個到公網中繼主機的永久 SSH 隧道。有了這個隧道,你就可以從中繼主機中連線“回”家庭伺服器(這就是為什麼稱之為 “反向” 隧道)。不管你在哪裡、你的家庭網路中的 NAT 或 防火牆限制多麼嚴格,只要你可以訪問中繼主機,你就可以連線到家庭伺服器。

圖片來源網路

3.1 環境說明

  • 一臺內網機器,後面簡稱N,ubuntu系統,ssh埠為2222,使用者名稱為userN,ip為10.10.12.1
  • 一臺公網伺服器,後面簡稱W,ubuntu系統,ssh埠為61397,使用者名稱為userW,ip為123.56.21.222
  • 測試主機

3.2 配置N到W的免密登入

#N上 :使用ssh-keygen生成一對rsa公私鑰,生成的金鑰對會存放在~/.ssh目錄下。
ssh-keygen -t rsa
#W上 :相應使用者目錄下建立~/.ssh目錄
mkdir -p .ssh
#N上 :將N的公鑰拷貝給W,輸入密碼即可
cat .ssh/id_rsa.pub | ssh [email protected]123.56.21.222 'cat >> .ssh/authorized_keys' 

3.3 在W上準備兩個空閒埠

如果你的伺服器是雲伺服器,一般會有安全組過濾,你需要開啟兩個空閒埠的允許規則。本文開啟5678和54345埠。

3.4 在N上配置反向隧道

  • 安裝autossh
sudo apt-get install autossh
  • 配置ssh反向隧道
autossh -M 5678 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 123.56.21.222:54345:localhost:2222 [email protected]123.56.21.222 -p61397

# “-M 5678” 選項指定中繼伺服器上的監視埠,用於交換監視 SSH 會話的測試資料。中繼伺服器上的其它程式不能使用這個埠。
# “-fN” 選項傳遞給 ssh 命令,讓 SSH 隧道在後臺執行。
# “-o XXXX” 選項讓 ssh:
#        * 使用金鑰驗證,而不是密碼驗證。
#        * 自動接受(未知)SSH 主機金鑰。
#        * 每 60 秒交換 keep-alive 訊息。
#        * 沒有收到任何響應時最多傳送 3 條 keep-alive 訊息。       
# 如果你想系統啟動時自動執行 SSH 隧道,你可以將上面的 autossh 命令新增到 /etc/rc.local。

3.5 測試

在測試機上

ssh userN@123.56.21.222 -p 54345 #登入內網機器N

相關推薦

SSH穿透N姿勢

1. 引言 作為一名開發者,我們生活中常遇到公司做不完的工作需要在家接著做,但是,公司的伺服器有統一管理,多為內網ip,在家不能直接訪問到公司伺服器,如果解決這個問題呢?本文就以下兩種情景給出SSH內網穿透的解決方案。 2. 情景一:內網有一臺主機有公網ip

SSH 穿透

ssh -gfnNTR x.x.x.x:222:localhost:222 [email protected] -o ServerAliveInterval=300 Note: x.x.x.x是我的ECS伺服器公網IP  localhost是指ssh client

SSH反向隧道的穿透

pre ssp sts mnt ast rap root eve ports 環境如下: A機器兩塊網卡eth0(192.168.0.173)、eth1(192.168.100.1),eth0可以上外網,eth1僅僅是內部網絡,B機器只有eth1(192.168.100.3

利用ngrok穿透 遠端連線手機ssh終端

圖片好大 臥槽 首先手機利用linux deploy安裝了Kali Linux 然後配置好linux的sshd_config 接下來是重點 1.首先在同一個區域網內ssh連線手機中的kali 2.安裝w3m(apt-get install w3m) 3.然後 w3m ngrok.com/d

SSH反向隧道進行穿透

對應的情況 這篇文章主要介紹瞭如何利用SSH 反向隧道穿透NAT,並演示瞭如何維持一條穩定的SSH 隧道。 假設有機器A 和B,A 有公網IP,B 位於NAT 之後並無可用的埠轉發,現在想由A 主動向B 發起SSH 連線。由於B 在NAT 後端,無可用公網IP + 埠 這樣一個組合,所以

穿透 - SSH反向代理

SSH反向代理有著很廣泛的實際應用, 例項描述: 本人在家庭區域網放置有一個樹莓派主機(無公網ip),正常情況下只能在家庭區域網內通過 ssh連線這臺樹莓派主機,但如果本人想在其他地方(非本地區域網)對它進行遠端登陸,則需要進行SSH反向代理。 如下圖示例,我的樹莓派主機A可以pin

SSH隧道與埠轉發及穿透繫結本地埠

ssh是一種安全的傳輸協議,我一般使用就是在登陸伺服器或遠端執行命令,最近我意識到這是個強大的命令。 開講~ 本地ssh隧道 工作中由於防火牆導致訪問某些網站或某些ftp連線超時,有什麼解決辦法呢。ssh隧道就是一種解決方式。 首先你需要了解一些資訊: 你自己

frp 穿透實現 ssh 訪問主機

本文目的 frp 是一個可用於內網穿透的高效能的反向代理應用,支援 tcp, udp, http, https 協議。 本文將基於 frp 來實現內網穿透,從而實現從外網 ssh 登入內網主機,而不對 frp 其他的應用做過多的說明。 frp 的作用

穿透 frp,ssh遠端訪問

內網穿透 frp 1,使用谷歌雲,伺服器端安裝frp 1.1,下載Linux 64 位frp版本 2,客戶端配置 3,ssh連線 4,使用supervisor設定開機啟動,程序守護 4.1 報錯 gave u

Ngrok穿透的幾利用

      其實這篇之前投稿了,不過版權在我這裡,地址在這裡:http://bobao.360.cn/learning/detail/3041.html       Ngrok是這樣介紹:一條命令解決的外網訪問內網問題,本地WEB外

利用阿里雲和frps做穿透,支援mstsc遠端桌面,ssh,linux連線,所有的tcp 連線都可以轉發 整理by qiweb 2018 1107

準備工作和操作過程: 1、先要有一臺阿里雲或者其他vps 這裡假設外網唯一ip是: 另外要開放一個一個區間的埠號 比如1701 -1750 這些供客戶使用 47.98.195.221 frp官網 到官網下載需要的版本,我這裡都是linux版本 window也能用

【本人禿頂程式設計師】穿透神器:Ngrok在支付中的正確使用姿勢

←←←←←←←←←←←← 我都禿頂了,還不點關注! 前言 隨著網際網路的發展,無論是web服務還是移動APP越來越多的都集成了第三方支付(支付寶、微信、銀聯)。通常作為服務提供方,支付成功以後都會有一個後端回撥URL來通知是否呼叫者是否支付成功,這個URL必須是公網環境,並且可以被訪

ssh反向代理實現NAT穿透[ssh版teamviewer]

由於實驗室伺服器沒有公網IP,如果在校外網的話只能通過teamviewer遠端桌面連線,然而teamviewer的資料傳輸是基於影象的,反應太慢了,所以一直在尋找ssh版的teamviewer,經過谷歌,發現只需要一臺公網伺服器作為中轉站,就可以實現在任何地方登

使用SSH反向隧道進行穿透

這篇文章主要介紹瞭如何利用SSH 反向隧道穿透NAT,並演示瞭如何維持一條穩定的SSH 隧道。 假設有機器A 和B,A 有公網IP,B 位於NAT 之後並無可用的埠轉發,現在想由A 主動向B 發起SSH 連線。由於B 在NAT 後端,無可用公網IP + 埠 這樣一個組合,所以A 無法穿透NAT,這篇文章

SSH遠端登入+穿透

折騰手記 之前搞了putty免密碼登入自己的vps,感覺還不錯,但是現在因為學校瘋狂斷電,我把一臺機箱放別處跑。現在需要遠端登入控制+傳輸檔案了。 一個問題是,單獨ip並不好找,特別學校的都是區域網ip,對外也是動態的,可能斷個電就換了。我需要一條穩定

SSH隧道與埠轉發穿透

SSH隧道與埠轉發及內網穿透 大家都知道SSH是一種安全的傳輸協議,用在連線伺服器上比較多。不過其實除了這個功能,它的隧道轉發功能更是吸引人。下面是個人根據自己的需求以及在網上查詢的資料配合自己的實際操作所得到的一些心得。 SSH/plink命令的基

通過ssh tunnel讓Kali實現穿透

擁有裝置: 1.Kali 2.0虛擬機器一臺 2.外網Linux伺服器一臺,(CentOs x64) 問題如下: 在電腦上安裝了一臺kali 2.0的虛擬機器,通過nat物理機的網絡卡可以訪問網際網路,現在想要實現可以通過其他任何可訪問到網際網路的主機能訪問到該Kali

十分鐘快速搭建frp的ssh和http的穿透

frp簡介 frp 是一個可用於內網穿透的高效能的反向代理應用,支援 tcp, udp, http, https 協議。frp目前最新版本為0.13.0,frp目前仍然處於前期開發階段,未經充分測試與驗證,不推薦用於生產環境。 其實關於frp的使用官方文件已

使用frp工具快速搭建穿透以及配置多個ssh和web服務

frp簡介 FRP 專案地址 https://github.com/fatedier/frp/blob/master/README_zh.md frp 是一個可用於內網穿透的高效能的反向代理應用,支援 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支

SSH 端口轉發實戰

服務器 linux 密碼 用戶 認證 導讀大家都知道SSH是一種安全的傳輸協議,用在連接服務器上比較多。不過其實除了這個功能,它的隧道轉發功能更是吸引人。如果兩個內網之間的linux服務器需要互相登錄,或需要互相訪問內網某個端口,擔憂沒有公網IP,可以使用的方法有ngrok(https:/