ssh是我使用最頻繁的兩個命令行工具之一(另一個則必須是vim)。有了ssh,我可以遠程處理各種可能出現(xiàn)的問題而無需肉身到現(xiàn)場。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、莎車網(wǎng)絡(luò)推廣、微信小程序、莎車網(wǎng)絡(luò)營銷、莎車企業(yè)策劃、莎車品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供莎車建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:jinyejixie.com
這幾天teamviewer被黑的事情影響挺大,于是由遠程控制想到了內(nèi)網(wǎng)穿透,自然而然的想到了ssh的端口轉(zhuǎn)發(fā)也能實現(xiàn)內(nèi)網(wǎng)穿透。再細想一下,發(fā)現(xiàn)ssh隧道、或者說端口轉(zhuǎn)發(fā),竟然實現(xiàn)了正向代理、反向代理和內(nèi)網(wǎng)穿透三種常用的網(wǎng)絡(luò)功能,更佩服其功能的強大和使用中的便利。
ssh有三種端口轉(zhuǎn)發(fā)模式,本文一一對其做簡要介紹。
本地轉(zhuǎn)發(fā)
本地端口轉(zhuǎn)發(fā)(Local Port Forwarding),是將本地主機某個端口流量轉(zhuǎn)發(fā)到遠程主機的指定端口。其命令行語法是:-L [bind_address]:localport:[remote_host]:remote_port?!?L”即“l(fā)ocal”的首字母,類似的遠程轉(zhuǎn)發(fā)的”-R”是“remote”的首字母,動態(tài)轉(zhuǎn)發(fā)的“-D”是“dynamic”的首字母,很好記。
舉一個例子說明本地轉(zhuǎn)發(fā)的使用場景。
CentOS 7安裝GUI界面及遠程連接一文中介紹了安裝vnc服務(wù)并開啟端口訪問。在實際中,暴露出來的59xx端口每天都會源源不斷的受到自動化腳本的爆破攻擊。如果你的vnc和登錄用戶使用弱密碼或字典密碼,主機安全將受到極大威脅。這種情形下該如何防護?
一種簡單安全的防護方法是:使用iptables/firewalld關(guān)閉端口的外網(wǎng)訪問,有連接需求時用ssh隧道轉(zhuǎn)發(fā)端口:
ssh -L5901:5901 username@host
該命令中將本地的5901端口通過ssh隧道轉(zhuǎn)發(fā)到遠程主機的5901端口,遠程連接時輸入localhost或者127.0.0.1和5901端口便連到了遠程主機的5901端口。通過iptables和ssh的本地轉(zhuǎn)發(fā),實現(xiàn)了他人無法連接,只有自己才能訪問的目的。
需要注意的是“-L”選項中的“遠程主機”并不特指連接過去的機器(默認是連接上的機器),可以是任何一主機。例如可以將本機的8080端口流量轉(zhuǎn)發(fā)到facebook.com的80端口:
ssh -L8080:facebook.com:80 username@host
遠程轉(zhuǎn)發(fā)
遠程端口轉(zhuǎn)發(fā)(Remote Port Forwarding),是將遠程主機某個端口轉(zhuǎn)發(fā)到遠程主機的指定端口。其命令行語法是:-R [bind_address]:port:[local_host]:local_port。
遠程轉(zhuǎn)發(fā)最常用的功能是內(nèi)網(wǎng)穿透。有一個公網(wǎng)ip的主機,便可以借助ssh隧道的遠程轉(zhuǎn)發(fā)實現(xiàn)內(nèi)網(wǎng)滲透,達到外網(wǎng)訪問內(nèi)網(wǎng)資源的目的。需要注意的是ssh遠程轉(zhuǎn)發(fā)默認只能綁定遠程主機的本地地址,即127.0.0.1。如果想要監(jiān)聽來自其他主機的連接,需要修改遠程主機ssh的配置,將”GatewayPorts”改成“yes”,重啟ssh后生效。
一個將遠程的8080端口流量轉(zhuǎn)發(fā)到本地80web端口的示例:
ssh -R0.0.0.0:8080:80 username@host
通過遠程轉(zhuǎn)發(fā),訪問公網(wǎng)ip主機的8080端口便是訪問內(nèi)網(wǎng)web主機的80端口,這樣就實現(xiàn)了內(nèi)網(wǎng)穿透。
動態(tài)轉(zhuǎn)發(fā)
無論本地轉(zhuǎn)發(fā)還是遠程轉(zhuǎn)發(fā),都需要指定本地和遠程主機的端口。動態(tài)轉(zhuǎn)發(fā)(Dynamic Port Forwarding)則擺脫這種限制,只綁定本地端口,遠程主機和端口由發(fā)起的請求決定。動態(tài)轉(zhuǎn)發(fā)的語法是:”-D bind_address:port”,一個轉(zhuǎn)發(fā)示例:
ssh -D 8080 username@host
該命令讓ssh監(jiān)聽本地8080端口,經(jīng)過8080端口的流量都通過ssh隧道由遠程服務(wù)器代為請求,從而達到獲取被屏蔽資源、隱藏真實身份的目的。
動態(tài)轉(zhuǎn)發(fā)實際上實現(xiàn)了正向代理功能,因此可以用來科學上網(wǎng)。本地轉(zhuǎn)發(fā)也可以做正向代理,但要對每一個請求的主機和端口做轉(zhuǎn)發(fā),比較繁瑣,實踐中不會這么用。
其它
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
分享名稱:linuxssh端口轉(zhuǎn)發(fā)的三種方式
瀏覽地址:http://jinyejixie.com/article8/igoeip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站制作、網(wǎng)站營銷、域名注冊、營銷型網(wǎng)站建設(shè)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)