命令行下快捷開(kāi)關(guān)代理

前言

筆者經(jīng)常會(huì)遇到在命令行下不得不走代理的情況:

  • Homebrew & Cask(特別是后者,不走代理的話速度簡(jiǎn)直感人)
  • Github 執(zhí)行各種操作(clone / pull / push / fetch

舊方案

筆者在本地的 1080 端口搭建了 socks5 代理
開(kāi)啟代理:

export all_proxy=socks5://localhost:1080 && export ALL_PROXY=$all_proxy

有時(shí)候要用到局域網(wǎng)的另外一臺(tái)電腦上搭建的代理,還得將 localhost 改為那臺(tái)電腦的IP。

雖然 zsh 可以通過(guò)鍵入前幾個(gè)字母比如 export all_ 然后通過(guò) 方向上健 快速定位到之間的歷史,然后向左移動(dòng)光標(biāo),刪去 localhost,重新輸入新的 IP,但是筆者還是嫌麻煩,所以動(dòng)了造輪子的心思。

新方案

因?yàn)楣P者采用的是 zsh,所以在 $HOME/.zshrc 內(nèi)添加以下函數(shù)

function socks5on() {
  _PORT="1080"
  _HOST="127.0.0.1"

  if [ $# = 0 ]; then
  elif [ $# = 1 ]; then
    _PORT=$1
  elif [ $# = 2 ]; then
    _HOST=$1
    _PORT=$2
  fi
  export all_proxy=socks5://${_HOST}:${_PORT}
  export ALL_PROXY=$all_proxy
  echo $ALL_PROXY
}

function socks5off() {
  unset all_proxy
  unset ALL_PROXY
}

函數(shù) socks5on 的用法:

  • $ socks5on 設(shè)置代理為 socks5://127.0.0.1:1080
  • $ socks5on 1081 設(shè)置代理為 socks5://127.0.0.1:1081
  • $ socks5on 192.168.0.253 1080 設(shè)置代理為 socks5://192.168.0.253:1080

函數(shù) socks5off 的用法:

  • $ socks5off 取消代理設(shè)置

注意:

  1. socks5on 函數(shù)里,筆者變量取名 _HOST 而不是 HOST,是因?yàn)?$HOST 默認(rèn)存放系統(tǒng)主機(jī)名稱(chēng)。

  2. all_proxyALL_PROXY 同時(shí)都設(shè)置,是因?yàn)?,有的程序讀取 $all_proxy,有的程序讀取 $ALL_PROXY。

讀者可以拿去自行更改食用哈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容