當前環境拓撲圖:
服務器
用戶管理海外服務器,經過公網SSH遠程時,因爲網絡質量緣由公網丟包嚴重,這就致使管理員在對海外雲主機進行管理時體驗較差,表現形式多是因爲公網丟包嚴重執行命令卡頓,或者SSH進程異常中斷等。
針對上述需求,給出如下方案來優化此問題。網絡
管理員經過使用代理服務器充當跳板機來對海外服務器進行管理。ssh
首先須要在代理服務器上啓動一個socks代理服務,並將此服務的端口受權給管理員能夠進行訪問。
關於socks代理有各類服務能夠實現,在這裏咱們爲了操做最輕量級就直接使用系統自帶的SSH來實現此功能。
ssh -p5258 -fqND 0.0.0.0:6565 root@127.0.0.1
使用以上命令能夠創建一個SSH隧道代理,如下是上述參數的含義:優化
- -p5258:因爲咱們要鏈接的隧道服務器的ssh端口是5258,因此在此須要使用-p進行指定;
- -fqND:f表示後臺認證用戶名/密碼無須登陸到遠程主機,一般和N(不執行腳本或命令)連用,q表示禁用告警和診斷消息,D表示指定本地機器進行動態端口轉發;
- 0.0.0.0:6565:表示監聽在此臺機器上全部IP的6565端口;
- root@127.0.0.1:表示在本地上啓用代理服務,也能夠換成其餘服務器,特定場景特定需求。
ssh -o ProxyCommand="nc -X 5 -x 114.114.114.114:6565 %h %p" root@8.8.8.8
設置完代理服務器後,在ssh時須要指定代理服務器的IP及端口信息,最後指定要鏈接到的服務器便可,登陸成功後服務器會給出登陸的IP地址,或者使用who
命令進行查看,只要登陸的IP地址是代理服務器的地址表示全部配置正常。代理