如何在Mac OS中使用命令行更改代理设置?


20

我使用的是Mac OS,有时需要使用代理来完成一些工作,因此我需要经常更改代理设置。但是在“系统偏好设置”中更改代理设置非常麻烦。

有没有一种方法可以使用命令行更改代理设置?使用Shell命令或某些工具?

Answers:


24

编辑:我假设您实际上是指Mac OS X,而不是Mac OS。

您可以使用命令行工具“ networksetup”

有一个手册页-networksetup(8)

man networksetup

您可以在其中找到许多代理设置选项:

              [-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]

另外,如果您只需要为wget或curl设置代理,则可以使用通用的'http_proxy'和'ftp_proxy'env变量。

例如:

export http_proxy=http://my.proxy.com:1234

其中“ 1234”是端口号。

干杯

sc。


谢谢。networksetup就是我想要的
侧卫

1
有没有办法设置自动代理配置, 我在选项中没有看到它
Jeef


您能举个例子吗?-setwebproxy我想在没有用户名和密码的情况下进行连接,并且不确定要为这些字段输入的内容
Dinesh

@swisscheese是否可以将代理设置为safari的选项?有点像如何在Windows上使用镀铬start chrome --proxy-server=calamari652.gc-va.ncbi.nlm.nih.gov:3128
Akin Hwan

6

使用networksetup设置代理:(networksetup -listallnetworkservices在此之前,请检查可用的适配器)

networksetup -setwebproxy "Wi-fi" 127.0.0.1 8080

如果需要,可以使用以下语法设置身份验证:[-setwebproxy网络服务域端口号已认证的用户名密码]

开启或关闭代理:

networksetup -setwebproxystate "Wi-fi" off

查看代理状态:

networksetup -getwebproxy "Wi-Fi"

2

针对SOCKS5代理的特定情况(即使用或shadowsocks 生成的代理)扩展了swisscheese的答案ssh -D

假设您使用以下命令配置了代理服务器

💡 接口名称不区分大小写

networksetup -setsocksfirewallproxy wi-fi localhost 1080

您以后可以用关闭它

networksetup -setsocksfirewallproxystate wi-fi off

然后再继续

networksetup -setsocksfirewallproxystate wi-fi on

也就是说,第一个命令只需要运行一次,然后您可以根据需要激活/停用代理。


1

创建无代理网络环境:在“系统偏好设置”的“网络”窗格中,单击“配置文件”下拉列表,然后选择“管理配置文件…”。复制您的标准设置(通过单击列表底部的齿轮按钮)。为重复的配置文件指定一个唯一的名称(例如“无代理”)。禁用该配置文件设置中的所有代理。

为新的配置文件分配键盘快捷方式:在“系统偏好设置”的“键盘”面板中,为“所有应用程序”创建一个新的应用程序快捷方式。像您的个人资料一样命名(即“无代理”),然后添加快捷方式。

一旦切换应用程序至少一次,该快捷方式将被激活(当您仍处于“系统偏好设置”中时,该快捷方式将不会被激活)。

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.