很多網絡運維、或者站長需要通過 ssh 來管理服務器、vps,如果不湊巧,你和服務器之間相隔了一堵 GFW,那麼由於 GFW 會分析 ssh 數據包,結果就是導致稍微慢一點的網絡就會讓命令卡一分鐘。
GFW 現在完全有能力分析 ssh 流量特徵,以判斷你是在真的使用 ssh 配置服務器,還是使用它作為代理來瀏覽網頁。
如果有什麼好的辦法讓ssh像瀏覽器那樣指定翻牆就好了。
事實上,還真有。
ProxyCommand
這是 ssh 自帶的一條命令,它能夠允許ssh通過一個現有的ssh會話來發送命令。簡單來說,就是能夠允許 ssh via ssh。
——那麼,我們需要兩個vps咯?
其實不然,我們還要使用到下面的一個工具:
螺旋形的
它讓上文中提到的 ProxyCommand 以為一個 Http 代理是 ssh,這樣,就實現了 ssh via http代理。
對於 macOS 來說,安裝也很簡單,直接使用 Brew 安裝即可:
1 |
brew install corkscrew |
總之,你還需要一個 http 代理,目前來說,幾乎所有的 shadowsocks 客戶端以及其他各種代理客戶端都會提供 http 和 https 代理——這裡作為我本地環境,使用的是 surge, 它的本地默認 http 和 https 端口是 6152
所以,我們編輯文件 〜/.SSH/配置 (如果沒有就創建一個新的)裡邊加入新內容:
1 2 |
Host * ProxyCommand corkscrew 127.0.0.1 6152 %h %p |
這樣就默認對所有的 ssh 回話啟動這條命令了——當然,有surge作為後端自動選擇線路,所以對所有會話都啟用也無所謂了。
怎麼使用智能選擇路徑?對我來說目前我已經在使用白名單了。
這下,再如同往常一樣使用ssh命令登錄服務器吧,記得登錄之後再退出再登錄,這樣你就能看到上一次登錄的 IP 地址了,它應該已經是你前置代理的出口地址了 :)
什麼?你說 VPN ?別搞笑了,gfw打vpn準確率也差不到哪裡去。
本文由 落格博客 原創撰寫:落格博客 » 讓 SSH 走代理連接服務器
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/2112.html
壓根用不了啊
surge mac 分分鐘搞定它
哈哈,那時候還沒Surge~
我發現一個很奇怪的事情,國內現在可以直連google storage了嘛? wget竟然能下載回來,上午一台國內服務器還超時來著…下午就好了(一д⊂)
gfw在重啟升級呢吧
前幾天的時候發現就可以了,或許是日常掉磚吧