讓 SSH 走代理連接服務器

很多網絡運維、或者站長需要通過 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 安裝即可:

釀造安裝開瓶器

總之,你還需要一個 http 代理,目前來說,幾乎所有的 shadowsocks 客戶端以及其他各種代理客戶端都會提供 http 和 https 代理——這裡作為我本地環境,使用的是 surge, 它的本地默認 http 和 https 端口是 6152

所以,我們編輯文件把〜/ .ssh /配置 (如果沒有就創建一個新的)裡邊加入新內容:

主辦 *
        ProxyCommand開瓶器 127.0.0.1 6152 %^ h%P

這樣就默認對所有的 ssh 回話啟動這條命令了——當然,有surge作為後端自動選擇線路,所以對所有會話都啟用也無所謂了。

怎麼使用智能選擇路徑?對我來說目前我已經在使用白名單了。

這下,再如同往常一樣使用ssh命令登錄服務器吧,記得登錄之後再退出再登錄,這樣你就能看到上一次登錄的 IP 地址了,它應該已經是你前置代理的出口地址了 :)

什麼?你說 VPN ?別搞笑了,gfw打vpn準確率也差不到哪裡去。

 

3 答复“讓 SSH 走代理連接服務器”

  1. 我發現一個很奇怪的事情,國內現在可以直連google storage了嘛? wget竟然能下載回來,上午一台國內服務器還超時來著…下午就好了(一д⊂)

發表評論

您的電子郵件地址不會被公開. 必填字段標 *