linux ssh代理 –快速搭建代理服務器

前言:開發機器IP固定,路由上有限制,不通直連。是個很鬱悶的事。有個時間在網上看到的ssh代理轉發。命令功能很強大。在這我就對自己瞭解的畫了個間圖方便大家理解。

本地轉發、正向隧道

正向代理轉發
“本機”連上“ssh服務器”,然後把”ssh服務器”能訪問的機器地址和端口(當然也包括“ssh服務器”自己)鏡像到”本機”的端口上。

命令:

ssh -L [客戶端IP或省略]:[客戶端端口]:[服務器側能訪問的IP]:[服務器側能訪問的IP的端口] [登陸服務器的用戶名@服務器IP] -p [服務器ssh服務端口(默認22)]

其中,客戶端IP可以省略,省略的話就是127.0.0.1了,也就是說只能在客戶端本地訪問。服務器IP都可以用域名來代替。

舉例說明:

本地IP192.168.1.2,你可以ssh到某臺服務器8.8.8.8,8.8.8.8可以訪問8.8.4.4,你內網裏還有一臺機器(192.168.1.88)可以訪問你。

如果你想讓內網裏的另外一臺電腦訪問8.8.4.4的80端口的http服務,那麼可以執行:

ssh -CfNg -L 192.168.1.2:8080:8.8.4.4:80 [email protected]

C表示壓縮數據傳輸
f表示後臺用戶驗證,這個選項很有用,沒有shell的不可登陸賬號也能使用.
N表示不執行腳本或命令
g表示允許遠程主機連接轉發端口

也就是說,ssh到8.8.8.8上,然後讓8.8.8.8把8.8.4.4的80端口映射到本地的8080端口上,而且和本地192.168.1.2這個IP綁定。

內網裏的另外一臺機器可以通過IE瀏覽器中輸入http://192.168.1.2:8080查看8.8.4.4的網頁

反向隧道—-隧道監聽遠程port,突破防火牆提供服務

反向代理
本機”連上“ssh服務器”,然後把“本機”能訪問的機器地址和端口(也包括”本機”自己)鏡像到“ssh服務器”的端口上。

反向連接用得可能更多一些。比如你的客戶端在內網,在外網是無法直接訪問到的,這時用反向連接打通一條隧道,就可以從外網通過這條隧道進來了。

命令:

ssh -R [服務器IP或省略]:[服務器端口]:[客戶端側能訪問的IP]:[客戶端側能訪問的IP的端口] [登陸服務器的用戶名@服務器IP] -p [服務器ssh服務端口(默認22)]

其中,服務器IP如果省略,則默認爲127.0.0.1,只有服務器自身可以訪問。指定服務器外網IP的話,任何人都可以通過[服務器IP:端口]來訪問服務。當然,這個時候服務器本機也要輸入外網IP:端口來訪問。

舉例說明:

“本機”IP 192.168.1.2,你可以ssh到外網某臺服務器8.8.8.8,你內網裏有一臺機器192.168.1.3。

如果你想讓外網所有的能訪問8.8.8.8的IP都能訪問192.168.1.3的http服務,那麼可以執行:

ssh -CfNg -R 8.8.8.8:8080:192.168.1.3:80 [email protected]

C表示壓縮數據傳輸
f表示後臺用戶驗證,這個選項很有用,沒有shell的不可登陸賬號也能使用.
N表示不執行腳本或命令
g表示允許遠程主機連接轉發端口

也就是說,ssh到8.8.8.8上,然後把本地局域網內192.168.1.3的80端口映射到8.8.8.8的8080端口上,這樣外網任何一臺可以訪問8.8.8.8的機器都可以通過8080端口訪問到內網192.168.1.3機器的80端口了。

參考:
http://blog.csdn.net/linsanhua/article/details/17360369
http://www.cnblogs.com/wangkangluo1/archive/2011/06/29/2093727.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章