利用ssh隧道5分鐘搞定內網穿透

2022-07-30 03:42:17 字數 1448 閱讀 3213

日常開發中,我們經常有內網穿透需求,比如需要把內網開發機器上的**給外網使用者演示用。

解決這個問題的辦法很多,有的簡單,有的複雜。

路由器埠對映

ssh 這種方案是比較快捷的,且不依賴第三方服務。

實驗條件:

1.公網機器:centos7 , 192.168.0.110 (由於是做實驗,沒有直接用公網機器來做)

2.內網開發機:本機 win10(可以是其他可以使用ssh客戶端的任何機器),本機執行了乙個web程式,埠8888

實驗目的:

通過訪問   的請求**到 本地 8888  

實驗步驟:

1.配置 192.168.0.110  防火牆 埠:

firewall-cmd --zone=public --add-port=70/tcp --permanent

firewall-cmd --reload

配置檔案:/etc/ssh/sshd_config 

需要修改的配置項: gatewayports =yes

如果不修改,**埠永遠繫結到 loopback 網路介面,配置成功後,只能在 192.168.0.110 機器上用  localhost:70訪問,無法在其他機器上用 192.168.0.110:70訪問

3.win10 機器上,開啟powershell  ,輸入以下命令建立隧道:

ssh -p 22 -qngfntr  "[::]:70:localhost:8888" [email protected]

引數說明:

-p  : 是 192.168.0.110 是ssh 埠

"[::]:70:localhost:8888" : [::]:70 表示把70埠繫結到所有的網路介面上;localhost:8888表示需要被**的內網伺服器端口,本例中是localhost:8888

[email protected] : 公網機器 使用者名稱 ip , 本實驗用內網機器模擬。

4.大功告成:

在任意一台機器上就可以通過

訪問 win10機器上的web服務了。

實驗過程中踩過的坑:

1.win10  powershell 中 關閉 ssh 連線視窗後,ssh 隧道沒有關閉的問題:

檢視已經建立的ssh連線:

get-process -name ssh

殺死ssh連線:

get-process -name ssh | stop-process

其他ssh客戶端需要注意類似的問題,否則多次執行 ssh -p 22 -qngfntr  "[::]:70:localhost:8888" [email protected] 會建立多個隧道

2.請注意 繫結都所有網路介面   "[::]:70:localhost:8888"  ,[::] 不能少,否則 只會繫結到 loopback  介面。

5分鐘搞定Schema

事先宣告 搞定不是精通,只是能夠運用!其實schema很簡單,之前寫過dtd,比dtd學習成本還低!最近做的專案基於檔案系統的,一堆的xml檔案,所以想寫個驗證,也方便ide操作,既然推薦schema,那就用schema d 不廢話,看xml檔案。ivan hihello 這個應該算是個比較典型的x...

5分鐘搞定快速排序

直接切入主題,快速排序分為兩過程 挖抗填數 分治法 先說下分治法,顧名思義就是 分而治之 的核心思想。簡單舉個例子體會一下 現在有100個人需要按照身高排成一列。首先,定個身高基準1.7m 定得太高和太低都會打破平衡 高與1.7m的都站在一列的右端,低於1.7m的都站在一列的左端。1.7m即為左右端...

5分鐘搞定快速排序

首先找到陣列中的乙個基準值 通常是中間值 遍歷陣列,如果比基準值小就放到左邊,比基準值大放到右邊 以基準值左右兩邊的子列作為新數列,不斷重複第一步和第二步 迭代法 def quick sort arr if len arr 2 return arr mid arr len arr 2 基準值 lef...