Answers:
可以使用来完成networksetup
。
获得所有服务:
networksetup -listallnetworkservices
然后使用适当的服务(例如,以太网或您的USB 10/100/1000 LAN适配器的名称)输入
sudo networksetup -setsocksfirewallproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
要么
sudo networksetup -setwebproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
进行配置(在您的情况下这是不必要的,因为您已经输入了所有必要的值)。
例如
sudo networksetup -setsocksfirewallproxy Ethernet 127.0.0.1 18080
sudo networksetup -setwebproxy Ethernet 127.0.0.1 18080
要简单地打开或关闭它,请使用:
sudo networksetup -setsocksfirewallproxystate networkservice on | off
sudo networksetup -setwebproxystate networkservice on | off
例如
sudo networksetup -setsocksfirewallproxystate Ethernet off
sudo networksetup -setwebproxystate Ethernet off
man networksetup
将显示其他代理选项(gopher,ftp等)
看看这个页面在YourMacGuy关于终端的命令networksetup
。尽管该页面的日期为2008年,但该命令存在且可在macOS Sierra中使用。也许与代理相关的命令之一将为您工作。您始终可以在系统偏好设置>网络中创建多个可以启用或禁用代理的位置。不过,您仍然需要打开“系统偏好设置”。
我通过在Hammerspoon中定义快捷方式来做到这一点。现在,我可以只用快捷方式切换系统代理CommandOptionControlP。
源代码可在GitHub上获得。
这是设置步骤:
networksetup -setwebproxy "Wi-fi" 127.0.0.1 8080
networksetup -setsecurewebproxy "Wi-fi" 127.0.0.1 8080
~/.profile
toggleProxy() {
e=$(networksetup -getwebproxy wi-fi | grep "No")
ns=wi-fi
status=''
if [ -n "$e" ]; then
status=on
else
status=off
fi
echo -n "Turning $status proxy"
networksetup -setstreamingproxystate $ns $status
networksetup -setsocksfirewallproxystate $ns $status
networksetup -setwebproxystate $ns $status
networksetup -setsecurewebproxystate $ns $status
}
~/.hammerspoon/init.lua
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "P", function()
local output = hs.execute("toggleProxy", true)
hs.alert.show(output)
end)
sudo networksetup -setsocksfirewallproxy "USB 10/100/1000 LAN" 127.0.0.1 8888
/sudo networksetup -setsocksfirewallproxystate "USB 10/100/1000 LAN" off
/sudo networksetup -setsocksfirewallproxystate "USB 10/100/1000 LAN" on
伟大工程。