仅在 Mac 上向特定主机添加代理

仅在 Mac 上向特定主机添加代理

我想将代理设置仅应用于 Mac OS X 中的特定主机(例如 www.apple.com)。我该怎么做?

在“系统偏好设置”中,只有通过传递特定主机的代理设置。

答案1

您可以使用以下proxy.pac文件通过代理 1.2.3.4 将所有流量发送到 apple.com,同时仍直接发送到所有其他主机:

function FindProxyForURL(url, host) {
    PROXY = "PROXY 1.2.3.4"

    // Apple.com via proxy
    if (shExpMatch(host,"*.apple.com")) {
        return PROXY;
    }
    // Everything else directly!
    return "DIRECT";
}
  1. 将此脚本另存为proxy.pac(或您喜欢的任何其他名称)在 Web 服务器上。这可以是本地 Web 服务器(http://localhost/proxy.pac)。 这是从 OSX Lion 开始需要
  2. 前往System Preferences
  3. 选择Network
  4. 选择您想要更改的网络(即“WiFi”)。
  5. 点击Advanced...按钮。
  6. 单击Proxies选项卡
  7. 查看[x] Automatic Proxy-Configuration
  8. URL:字段中,输入您在步骤 1 中创建的文件的 URL,例如:http://localhost/proxy.pac。(注意:本地路径在现代 OSX 中不起作用)
  9. 点击SaveApply

瞧!你自己的代理配置

有关文件格式的更多信息,proxy.pac请参阅http://en.wikipedia.org/wiki/Proxy_Auto-Config作为起点。

答案2

实际上,您可以使用file:///path/to/fileURL 方案,而不必依赖于 Web 服务器。

例如:

file:///Users/youruser/var/proxy/proxy.pac

答案3

添加到@heiglandreas 的答案......

@jnbek 的解决方案对我来说在 Mac OSX 上不起作用,所以我正在寻找一个简单的解决方案。

因此,我创建了一个新文件夹并将 pac 文件复制到其中。然后,我从该文件夹本身在 OSX 上的端口 80 上启动了一个简单的 Web 服务器。

只需进入文件夹并运行此命令。如果端口已被占用,请将其从 80 更改为其他端口。

python -m SimpleHTTPServer 80

现在,我可以轻松从中获取 proxy.pac 文件http://localhost/proxy.pac。或者,对于不同的端口使用:http://localhost:PORT/proxy.pac

答案4

@Rehmat 的答案很棒,但是它没有针对 python 3 和 Mac OS X Big Sur 进行更新:

  1. 在名为 proxy-web 的新目录中创建一个 proxy.pac 文件(在您想要的任何父目录中):

    function FindProxyForURL(url, host) {
        PROXY = "PROXY 1.2.3.4"
    
        // Apple.com via proxy
        if (shExpMatch(host,"*.apple.com")) {
            return PROXY;
        }
        // Everything else directly!
        return "DIRECT";
    }
    
  2. 在 proxy.pac 文件所在的目录中启动 Web 服务器

    cd proxy-web
    ls
    # proxy.pac
    python -m http.server 80
    
  3. 打开 Apple -> 系统偏好设置

  4. 点击“网络”

  5. 选择相关的特定网络(例如:“Thunderbolt Ethernet”或“Wi-Fi”)

  6. 单击“高级”

  7. 选择代理选项卡

  8. 勾选自动代理配置框,输入URL:http://localhost/proxy.pac

  9. 单击“确定”并“应用”,但不要关闭网络设置

  10. 通过在 CHROME 中进入苹果来测试它是否正常工作(不是 SAFARI - 对我来说,我们的公司 URL 和代理似乎无法在 Safari 中使用,但 Chrome 可以正常工作):apple.com

  11. 在 Safari 中测试。如果不行,请点击Advanced → TCP/IP网络设置选项卡下的“续订 DHCP 租约”

  12. 通过访问非 Apple URI(例如:)在您最喜欢的浏览器中运行进一步的测试google.com)。如果您正在代理特定子域,那么您还需要测试其他不应代理的子域。

相关内容