我使用的是 Mac OS,有时需要使用代理来完成一些工作,因此我需要经常更改代理设置。但是在系统偏好设置中更改代理设置非常麻烦。
有没有办法可以使用命令行更改我的代理设置?使用 shell 命令还是一些工具?
小智 28
编辑:我假设您实际上是指 Mac OS X,而不是 Mac OS。
您可以使用命令行工具“networksetup”
有一个联机帮助页 - networksetup(8)
man networksetup
Run Code Online (Sandbox Code Playgroud)
您会在其中找到许多代理设置选项:
[-setftpproxy networkservice domain portnumber authenticated username password]
[-setftpproxystate networkservice on | off] [-getwebproxy networkservice]
[-setwebproxy networkservice domain portnumber authenticated username password]
[-setwebproxystate networkservice on | off] [-getsecurewebproxy networkservice]
[-setsecurewebproxy networkservice domain portnumber authenticated username password]
[-setsecurewebproxystate networkservice on | off] [-getstreamingproxy networkservice]
[-setstreamingproxy networkservice domain portnumber authenticated username password]
[-setstreamingproxystate networkservice on | off] [-getgopherproxy networkservice]
[-setgopherproxy networkservice domain portnumber authenticated username password]
[-setgopherproxystate networkservice on | off] [-getsocksfirewallproxy networkservice]
[-setsocksfirewallproxy networkservice domain portnumber authenticated username password]
[-setsocksfirewallproxystate networkservice on | off] [-getproxybypassdomains networkservice]
[-setproxybypassdomains networkservice domain1 [domain2] [...]] [-getpassiveftp networkservice]
Run Code Online (Sandbox Code Playgroud)
或者,如果您只需要为 wget 或 curl 之类的东西设置代理,那么您可以使用相当通用的“http_proxy”和“ftp_proxy”环境变量。
例如在 bash 中:
export http_proxy=http://my.proxy.com:1234
Run Code Online (Sandbox Code Playgroud)
其中“1234”是端口号。
干杯
南卡罗来纳州
小智 11
使用 networksetup 设置代理:(networksetup -listallnetworkservices
在此之前检查可用的适配器)
networksetup -setwebproxy "Wi-fi" 127.0.0.1 8080
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以使用以下语法设置身份验证:[-setwebproxy networkservice domain portnumber authenticated username password]
打开或关闭代理:
networksetup -setwebproxystate "Wi-fi" off
Run Code Online (Sandbox Code Playgroud)
查看代理状态:
networksetup -getwebproxy "Wi-Fi"
Run Code Online (Sandbox Code Playgroud)
扩展swisscheese对 SOCKS5 代理特定情况的回答(即使用ssh -D
、shadowsocks、v2ray 等生成的类型)。
鉴于您使用例如配置代理服务器
networksetup -setsocksfirewallproxy wi-fi localhost 1080
Run Code Online (Sandbox Code Playgroud)
接口名称不区分大小写
你可以稍后关闭它
networksetup -setsocksfirewallproxystate wi-fi off
Run Code Online (Sandbox Code Playgroud)
然后再继续
networksetup -setsocksfirewallproxystate wi-fi on
Run Code Online (Sandbox Code Playgroud)
即第一个命令只需要运行一次,然后您可以根据需要激活/停用代理。
这是一个位栏插件,它包装了上面的命令并使它们作为 macos 菜单栏中的下拉选项可用。该插件还支持 http 和 PAC 代理。Bitbar是一个开源应用程序,允许将任何命令的输出放到菜单栏(以及通过 bash/python/ruby/node/go 脚本启动任何命令)。免责声明:我不隶属于位栏作者。
另一个专为触摸条用户设计的 GUI 解决方案:
使用 MTMR,您可以使用shellScriptTitledButton
JSON 配置文件中的 来从 mac touch-bar 运行特定命令。
归档时间: |
|
查看次数: |
60648 次 |
最近记录: |