通過ssh開啟代理[2]xshell進行埠轉發?

工作中經常會遇到類似下面的問題:機房伺服器上的某個埠只允許本地訪問,如monit的管理埠2812埠,dell伺服器的管理埠1311;機房某些伺服器沒有公網ip地址,只允許通過內網ip連線,如mysql伺服器。這些問題有許多解決辦法,這裡我用xshell通過ssh開啟代理的方式教你解決這個問題。

工具/原料

一個ssh賬戶,可以連線到一臺Linux伺服器

本地安裝xshell(xmanager的一個元件,最新版本是xmanager4)

步驟

ssh遠端連線到Linux

通過ssh開啟代理[2]xshell進行埠轉發

開啟代理設定面板,點選:view -> Tunneling Pane

在彈出的視窗選擇Forwarding Rules

通過ssh開啟代理[2]xshell進行埠轉發

通過ssh開啟代理[2]xshell進行埠轉發

在空白處右鍵:add。在彈出的Forwarding Rule,按照如圖所示進行配置,Type選擇“Local(Outgoing)”;Source Host使用預設的localhost;Listen Port添上monit的埠2812;Destination Host使用預設的localhost;Destination Port添上2812;Descripting根據自己需要進行描述,可以留空。配置完成後點選OK會彈出一個對話方塊,點選是的話會對當前會話進行儲存,以後每次連線此ssh會話,開啟此埠轉發,我只是做演示,選擇否。

通過ssh開啟代理[2]xshell進行埠轉發

通過ssh開啟代理[2]xshell進行埠轉發

新增完成後在Forwarding Rules對話方塊可以看到圖中所示的一行轉發配置,確保Status的狀態是“Open”,如果顯示的是“Failed”可能是2812這個本地埠已經被佔用了,可以嘗試將Listen Port修改為其它埠進行重新設定。

通過ssh開啟代理[2]xshell進行埠轉發

至此,xshell已經將伺服器的2812埠對映到本地2812埠,可以通過瀏覽器訪問進行驗證,結果如圖所示:

通過ssh開啟代理[2]xshell進行埠轉發

引數說明和擴充套件

在Type選擇“Local(Outgoing)”的時候,Source Host表示使用的本地ip地址,可以是localhost也可以是本地內網ip或者公網ip,使用相應的ip便可以被本地網路的使用者訪問到,比如上例中,如果需要同ip段的同事訪問2812的埠管理伺服器,便可以設定成他可以訪問到的那個ip地址;Destination Host表示伺服器端的ip地址,可以是伺服器本地的地址localhost或者是伺服器可以訪問到的一個ip地址,例如伺服器同機房的某個ip,或者伺服器可以連線公網的話,可以是公網上某臺伺服器的ip地址。下圖中便是我將伺服器同機房的另外一臺mysql的埠轉發到了本地,使本地的應用程式可以訪問到這個mysql進行測試,新增完畢後原本因只有一個內網ip無法訪問到的機房mysql資料庫伺服器,便可以像開在我本地的資料庫伺服器一樣進行訪問。

通過ssh開啟代理[2]xshell進行埠轉發

通過ssh開啟代理[2]xshell進行埠轉發

問題, 地址, 伺服器, , 機房,
相關問題答案