如何在OSX终端中配置代理

时间:2016-04-18 20:21:42

标签: terminal osx-yosemite

如何通过终端为我的计算机添加和激活代理(无需进入系统偏好设置。)我能以某种方式使用scutil --proxy吗?我正在使用MacBook Air在OSX Yosemite上运行

2 个答案:

答案 0 :(得分:2)

方法1

我们可以使用scutil来解析$ export http_proxy=`scutil --proxy | awk '\ /HTTPEnable/ { enabled = $3; } \ /HTTPProxy/ { server = $3; } \ /HTTPPort/ { port = $3; } \ END { if (enabled == "1") { print "http://" server ":" port; } }'` $ export HTTP_PROXY="${http_proxy}" 的输出并提取代理配置。以下代码片段可以解决这个问题:

HTTPEnable

此脚本在HTTPProxy的输出中查找HTTPPortscutilhttp_proxy。如果启用了代理,脚本将打印出代理URL并将其设置为http_proxy环境变量。如果未启用代理,则脚本会将HTTP_PROXY设置为空字符串。最后一行也设置networksetup -getftpproxy <servicename> networksetup -getwebproxy <servicename> networksetup -getsecurewebproxy <servicename> networksetup -getstreamingproxy <servicename> networksetup -getgopherproxy <servicename> networksetup -getsocksfirewallproxy <servicename> 环境变量,因为一些命令行应用程序使用它。

将此代码段放在.bash_profile中可确保您的代理在有线和无线网络之间切换时自动配置。

方法2

您可以尝试创建一个bash登录脚本,该脚本使用以下“networksetup”之一来列出当前代理,然后解析出服务器地址并将其应用于当前终端会话:

export http_proxy="username:password@proxyserver:port"

网络设置工具可能还有其他用途可以为您提供您正在使用的特定代理,只需查看“man networksetup”即可查看所有详细信息和用途。

方法3 终端不使用网络首选项窗格中配置的代理设置,因为它不进行任何连接。终端只是让你发出以不同方式使用网络的命令。

{{1}}

参考:https://dmorgan.info/posts/mac-network-proxy-terminal/

答案 1 :(得分:0)

我写了一个little tool就是这么做的。用法很简单。

  1. 使用xCode编译。
  2. 添加:

    eval `./path/to/export-proxies`
    

    发送到.profile.bashrc.bash_profile

  3. 它将为所有协议(HTTP,FTP,SOCKS)设置所有常用的代理环境变量($HTTP_PROXY$http_proxy$HttpProxy等),包括所定义的所有异常OS X控制面板。

    也欢迎提出建议和改进;)

    修改 我刚看到你想设置设置而不是阅读它们。到目前为止,我还没有找到办法。但是很乐意另外学习......