有個命令叫 networksetup,它有非常多的子命令,基本上能做到網路偏好設定的所有功能。有沒有更多隱藏功能就不知道了。

第一步要先列出可用的「網路服務」,有點像是 ifconfig -l 列出所有網路介面卡這樣的意思,但會列出 iPhone、VPN、藍芽等其他項目。

networksetup  -listallnetworkservices

會輸出像這樣三行的內容,可以在網路偏好設定 GUI 中一一對應:

Bluetooth DUN
AirPort
iPhone

如果要改 AirPort 的 Proxy,就執行:

networksetup -setwebproxy AirPort localhost 8118;
networksetup -setwebproxystate AirPort on

第一行是設定 http proxy 到 localhost:8118,第二行才會真的啟用這個設定值。on 改成 off 就是關掉的意思。

命令太長,設上 shell alias 就可以方便我開關 tor proxy 設定:

alias tor-proxy-on="networksetup -setwebproxy AirPort localhost 8118;networksetup -setsocksfirewallproxy AirPort localhost 9050; networksetup -setwebproxystate AirPort on; networksetup -setsocksfirewallproxystate AirPort on;"
alias tor-proxy-off="networksetup -setwebproxystate AirPort off; networksetup -setsocksfirewallproxystate AirPort off;"