1. 程式人生 > 實用技巧 >命令列代理設定方案彙總

命令列代理設定方案彙總

命令列代理設定方案彙總

【對於為終端設定代理,自己走了很多彎路,最終發現簡單地設定 http_proxy, https_proxy, all_proxy 即可解決大多數問題(用的是 ClashRX),也不知道之前為啥出了那麼多的亂子。最終的解決方案參考此文 https://www.xbug.me/post/60589.html,僅修改了 .zshrc 和 SSH 配置;這樣可完美解決大多數問題了;後面的對 git 單獨配置代理,修改 Homebrew 源,proxychains 等方案均已不用,僅供參考。】

終端代理配置

參見: MAC 配置終端(Shell)走代理,Git 走代理,加速網路 https://www.xbug.me/post/60589.html

在執行一些非 ssh 協議的命令,比如 http(s) 協議的 curl 等等,我們也想走代理,這個時候怎麼辦呢?

拿我電腦舉例子來講,我的終端用的是 oh my zsh,那麼開啟 zsh 的配置檔案 vi ~/.zshrc 在裡面新增如下內容:

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7891
#上面的三行命令表示,每次新建一個終端會話時,預設讓終端去走代理,這樣就不需要每次都複製拷貝一下了,很方便,同時,代理程式去智慧分流(國內 IP 直連,國外走代理),避免了連線國內 IP 地址時“繞遠”.


alias setproxy="export https_proxy=http://127.0.0.1:7890;export http_proxy=http://127.0.0.1:7890;export all_proxy=socks5://127.0.0.1:7891;echo \"Set proxy successfully\" "
alias unsetproxy="unset http_proxy;unset https_proxy;unset all_proxy;echo \"Unset proxy successfully\" " 
alias ipcn="curl myip.ipip.net"
alias ip="curl ip.sb"
# 上面這幾個 alias 是自定義的命令
# unsetproxy 取消代理
# setproxy 設定代理
# ip & ipcn  檢視 IP

另外,該文也介紹了 SSH(包括藉由 SSH 的 git 服務)的配置方案,和下一章節是一致的

#進入 ssh 配置目錄
cd ~/.ssh
#編輯 config 檔案,如果沒有那就新建一個 config 檔案
touch config
vi config

配置如下

Host *
    ProxyCommand nc -X 5 -x localhost:7891 %h %p
#解釋一下
#第一行代表所有的 ssh 的主機
#第二行代表讓所有的 ssh 的主機在連線的時候,通過你本地的埠為 7891 的 socks5 代理去連線,一般來講,本地的 socks5 都是由翻牆工具提供,
#諸如 Surge  ClashX 或者 Ssr,所以,7891這個埠需要換成對應的服務埠即可

然後儲存一下,以後不管是在用 git 進行 push 和 pull 操作還是 ssh 連線伺服器的時候,均可獲得暢快體驗,為什麼不呢?

git clone 速度慢的問題

是一個老生常談的問題了,參見知乎上的一個問題 https://www.zhihu.com/question/27159393 。看到的解決方案有:1. 修改 hosts;2. 換用國內的映象網站 http://github.com.cnpmjs.orghttp://git.sdut.me/ 等(顯然都不優雅)。

更好的方案顯然是採用本地的代理,然而知乎熱門的那個回答試了下居然不行;直到看到 GitHub 上的一個回答 https://gist.github.com/chuyik/02d0d37a49edc162546441092efae6a1 發現原來是在本地代理埠上沒有加引號;設定完畢後可從 4k 提速到 2m 左右