Mac 使用終端命令設定系統代理

vance發表於2022-03-26

如果需要頻繁的開啟/關閉代理,每次都需要輸入以上命令比較麻煩,比較好的方法是設定 alias。

配置

編輯 ~/.bash_frofile 新增如下並儲存檔案:

# 系統代理配置
setopt no_nomatch
alias pset="networksetup -setwebproxy 'USB 10/100/1000 LAN' 127.0.0.1 7890 && networksetup -setsecurewebproxy 'USB 10/100/1000 LAN' 127.0.0.1 7890 && networksetup -setsocksfirewallproxy 'USB 10/100/1000 LAN' 127.0.0.1 7891 && networksetup -setproxybypassdomains 'USB 10/100/1000 LAN' 192.168.0.0/16 10.0.0.0/8 172.16.0.0/12 127.0.0.1 localhost *.local timestamp.apple.com"
alias psystem="networksetup -setwebproxystate 'USB 10/100/1000 LAN' on && networksetup -setsecurewebproxystate 'USB 10/100/1000 LAN' on && networksetup -setsocksfirewallproxystate 'USB 10/100/1000 LAN' on && networksetup -setproxyautodiscovery 'USB 10/100/1000 LAN' on"
alias upsystem="networksetup -setwebproxystate 'USB 10/100/1000 LAN' off && networksetup -setsecurewebproxystate 'USB 10/100/1000 LAN' off && networksetup -setsocksfirewallproxystate 'USB 10/100/1000 LAN' off && networksetup -setproxyautodiscovery 'USB 10/100/1000 LAN' off"

更新快取,macOS 終端使用的是 zsh,所有要先在 ~/.zshrc 裡新增一句 source ~/.bash_profile

source ~/.zshrc

設定完成後,執行 pset 設定代理地址,執行 psystem 開啟系統代理,執行 upsystem 關閉系統代理。

詳解

// 設定系統 http 代理:
networksetup -setwebproxy networkservices address port
// 設定系統 https 代理:
networksetup -setsecurewebproxy networkservices address port
// 設定系統 socks 代理:
networksetup -setsocksfirewallproxy networkservices address port
// 開啟/關閉系統代理:
networksetup [-setwebproxystate | -setsecurewebproxystate | -setsocksfirewallproxystate] networkservices [on | off]
// 忽略這些主機與域的代理設定
networksetup -setproxybypassdomains networkservice domain1 [domain2] [...]
networksetup -setproxyautodiscovery networkservice on | off

// 列舉所有網路裝置
$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
USB 10/100/1000 LAN
Wi-Fi
Thunderbolt Bridge

自己替換 USB 10/100/1000 LAN
本作品採用《CC 協議》,轉載必須註明作者和本文連結
vance

相關文章