从我的 Unity 代理配置中排除一个 URL

从我的 Unity 代理配置中排除一个 URL

我安装了 Ubuntu 12.04,它运行良好。但我只遇到了一个问题,我通过大学的代理连接到互联网,但有些 URL 不需要代理,所以我的问题是:如何在 Ubuntu 上从代理配置中免除 URL?

答案1

您可能需要代理配置脚本 (PAC)。这是一个通用解决方案,适用于任何 DE、任何平台和任何浏览器。

在您的代理设置中(在浏览器中或从NetworkUnity 中),选择“自动代理配置 URL”并输入路径/home/<Your-user-name>/proxy或其他方便的路径。

打开文本编辑器(在 Dash 中搜索 gedit - 默认文本编辑器)并输入类似以下内容。完成后,将其保存到上面输入的路径。根据您的需要进行修改。

function FindProxyForURL(url, host)
{
// Loopback and localhost goes browser direct always.
    var reip;
    if ((host == "localhost") ||
           (shExpMatch(host, "localhost.*")) ||
           (shExpMatch(host,"10.*")) ||
           (shExpMatch(host,"172.16.*")) || 
           (shExpMatch(host,"192.168.*")) ||
           (shExpMatch(host,"144.16.128.*")) ||
           (host == "127.0.0.1")) {
        return "DIRECT";
    } 
// Local Sites
    if (dnsDomainIs(host, ".example.com") ||
       dnsDomainIs(host, ".qwerty.org")) {
        return "DIRECT";
    }
// Test to see if host is an IP address
// Put any ranges you want to skip proxy here.
    reip = /^\d+\.\d+\.\d+\.\d+$/g;
    if (reip.test(host)) {
        if (isInNet(host, "10.0.0.0", "255.0.0.0") ||
            isInNet(host, "172.16.0.0", "255.255.0.0") ||
            isInNet(host, "144.16.128.0", "255.255.240.0") ||
            isInNet(host,"192.168.0.0", "255.255.0.0")) {
             return "DIRECT";
        }
    }
// Default to proxy.
    return "PROXY <server>:<port>";
}

如您所见,PAC 脚本可以进行复杂的配置。上述脚本会跳过任何类型为 *.example.com 和 *.qwerty.org 的地址以及任何与范围匹配的 IP 的代理。所有其他请求都通过代理服务器路由。

附言:到目前为止,我看到的所有 PAC 脚本的顶部和底部都有一个空行,因此我建议您在顶部和底部都添加一个换行符。以防万一……

答案2

如果您只是使用 http 代理,您可以打开 gconf-editor(sudo apt-get install gconf-editor,如果您还没有)导航到system:http_proxy并将您想要免除的 URL 添加到ignore_hosts密钥中,我相信用逗号分隔。(见下图)

ignore_hosts 键

如果您使用的是 socks5 代理,则设置系统范围的代理会稍微复杂一些。但是对于某些单独的程序来说,这相当容易。例如,对于 Firefox,转到,edit:preferences:advanced:(connection)settings然后将其从Use system proxy settings或更改为Manual proxy configuration,然后输入您的代理信息并在字段中添加您不想要的 URL No proxy for,再次用逗号分隔。(见下面的屏幕截图)

no_proxy_for 设置

如果您使用 Chromium,则可以使用命令行开关运行它,例如/etc/bin/chromium-browser --proxy-bypass-list="localhost,127.0.0.1,xxx.xxx.xx.etc" --proxy-server="socks5://localhost:1080"

tsocks其他一些应用程序也具有类似的功能,而对于那些没有此功能的应用程序,您可以使用类似的包装程序。

相关内容