是否有任何快捷方式/简便方法来切换此系统代理设置?


9

有时我需要将流量发送到代理,有时则不需要。

目前,我必须每次都转到设置以单击它。

有什么简单的方法可以切换此设置吗?例如,使用shell命令来执行此操作。

系统代理


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伟大工程。
AGamePlayer

Answers:


9

可以使用来完成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等)


8

使用“网络偏好设置”下的“位置”。

在此处输入图片说明

设置一个具有代理的位置,然后再设置一个没有代理的位置。当您想使用代理服务器时,请选择该位置,您的设置将会更改。


0

看看这个页面在YourMacGuy关于终端的命令networksetup。尽管该页面的日期为2008年,但该命令存在且可在macOS Sierra中使用。也许与代理相关的命令之一将为您工作。您始终可以在系统偏好设置>网络中创建多个可以启用或禁用代理的位置。不过,您仍然需要打开“系统偏好设置”。


0

我通过在Hammerspoon中定义快捷方式来做到这一点。现在,我可以只用快捷方式切换系统代理CommandOptionControlP

源代码可在GitHub上获得

这是设置步骤:

  1. 首次手动设置http和https代理的IP和端口,但是可以在命令行中完成。
networksetup -setwebproxy "Wi-fi" 127.0.0.1 8080
networksetup -setsecurewebproxy "Wi-fi" 127.0.0.1 8080
  1. 将以下shell函数添加到您的 ~/.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
}
  1. 将以下内容添加到您的 ~/.hammerspoon/init.lua
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "P", function()
  local output = hs.execute("toggleProxy", true)
  hs.alert.show(output)
end)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.