国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

linux ssh端口轉發的三種方式

2019-11-02 14:10:03
字體:
來源:轉載
供稿:網友

ssh是我使用最頻繁的兩個命令行工具之一(另一個則必須是vim)。有了ssh,我可以遠程處理各種可能出現的問題而無需肉身到現場。

這幾天teamviewer被黑的事情影響挺大,于是由遠程控制想到了內網穿透,自然而然的想到了ssh的端口轉發也能實現內網穿透。再細想一下,發現ssh隧道、或者說端口轉發,竟然實現了正向代理、反向代理和內網穿透三種常用的網絡功能,更佩服其功能的強大和使用中的便利。

ssh有三種端口轉發模式,本文一一對其做簡要介紹。

本地轉發

本地端口轉發(Local Port Forwarding),是將本地主機某個端口流量轉發到遠程主機的指定端口。其命令行語法是:-L [bind_address]:localport:[remote_host]:remote_port。”-L”即“local”的首字母,類似的遠程轉發的”-R”是“remote”的首字母,動態轉發的“-D”是“dynamic”的首字母,很好記。

舉一個例子說明本地轉發的使用場景。

CentOS 7安裝GUI界面及遠程連接一文中介紹了安裝vnc服務并開啟端口訪問。在實際中,暴露出來的59xx端口每天都會源源不斷的受到自動化腳本的爆破攻擊。如果你的vnc和登錄用戶使用弱密碼或字典密碼,主機安全將受到極大威脅。這種情形下該如何防護?

一種簡單安全的防護方法是:使用iptables/firewalld關閉端口的外網訪問,有連接需求時用ssh隧道轉發端口:

ssh -L5901:5901 username@host

該命令中將本地的5901端口通過ssh隧道轉發到遠程主機的5901端口,遠程連接時輸入localhost或者127.0.0.1和5901端口便連到了遠程主機的5901端口。通過iptables和ssh的本地轉發,實現了他人無法連接,只有自己才能訪問的目的。

需要注意的是“-L”選項中的“遠程主機”并不特指連接過去的機器(默認是連接上的機器),可以是任何一主機。例如可以將本機的8080端口流量轉發到facebook.com的80端口:

ssh -L8080:facebook.com:80 username@host

遠程轉發

遠程端口轉發(Remote Port Forwarding),是將遠程主機某個端口轉發到遠程主機的指定端口。其命令行語法是:-R [bind_address]:port:[local_host]:local_port。

遠程轉發最常用的功能是內網穿透。有一個公網ip的主機,便可以借助ssh隧道的遠程轉發實現內網滲透,達到外網訪問內網資源的目的。需要注意的是ssh遠程轉發默認只能綁定遠程主機的本地地址,即127.0.0.1。如果想要監聽來自其他主機的連接,需要修改遠程主機ssh的配置,將”GatewayPorts”改成“yes”,重啟ssh后生效。

一個將遠程的8080端口流量轉發到本地80web端口的示例:

ssh -R0.0.0.0:8080:80 username@host

通過遠程轉發,訪問公網ip主機的8080端口便是訪問內網web主機的80端口,這樣就實現了內網穿透。

動態轉發

無論本地轉發還是遠程轉發,都需要指定本地和遠程主機的端口。動態轉發(Dynamic Port Forwarding)則擺脫這種限制,只綁定本地端口,遠程主機和端口由發起的請求決定。動態轉發的語法是:”-D bind_address:port”,一個轉發示例:

ssh -D 8080 username@host

該命令讓ssh監聽本地8080端口,經過8080端口的流量都通過ssh隧道由遠程服務器代為請求,從而達到獲取被屏蔽資源、隱藏真實身份的目的。

動態轉發實際上實現了正向代理功能,因此可以用來科學上網。本地轉發也可以做正向代理,但要對每一個請求的主機和端口做轉發,比較繁瑣,實踐中不會這么用。

其它

從用戶端角度看,本地轉發是正向代理;從資源提供方角度看,本地轉發是反向代理; ssh連接斷開遠程轉發/內網滲透便失效。如果希望遠程轉發一直有效,需要ssh保活技術,建議用frp等專注于內網滲透的解決方案; 雖然ssh隧道中的流量都經過了加密,但防火墻對ssh隧道中承載的流量能比較智能的識別,因此用作科學上網很容易受到干擾; 如果僅做端口轉發,實踐中上述命令經常與”-NT -f”選項結合使用。其中”-f”選項將命令放入后臺執行,斷開連接需要用kill命令; 從代理角度看,ssh隧道是低效的,建議用專用軟件; ssh隧道的流量都經過了加密,從安全角度是十分可靠的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邢台县| 嘉义市| 共和县| 海宁市| 大荔县| 汕头市| 旺苍县| 甘孜县| 静海县| 陆河县| 大安市| 右玉县| 湘潭县| 苍山县| 西贡区| 格尔木市| 崇仁县| 霍州市| 南宫市| 尚志市| 丹棱县| 张掖市| 潞城市| 皋兰县| 玉溪市| 新昌县| 崇礼县| 漳平市| 北川| 大石桥市| 惠来县| 大宁县| 井研县| 隆德县| 普格县| 同江市| 忻城县| 马边| 明溪县| 平罗县| 岳普湖县|