通过服务器路由特定站点的流量

通过服务器路由特定站点的流量

简而言之,我住在德国境外,我想使用 Amazon Prime。不幸的是,地理封锁阻止我以这种方式使用我的 Prime 帐户。

我在德国有一台虚拟服务器,Ubuntu 16.04。我家里也有一台 Ubuntu 16.04 机器,上面运行着带有 Untangle 防火墙的 KVM VM。机器本身安装了 bind,充当 DNS 转发器。

当我使用 putty 创建到虚拟服务器的隧道并在 SOCKS 部分将浏览器指向它时,我可以访问之前被禁止的内容。

由于我的妻子应该能够收看一些非常老派的电视节目,而不必每次都摆弄浏览器设置,所以我想创造一种由 DNS 或防火墙来处理这种情况的情况。显然,将所有流量路由到德国是没有意义的。

那么实现这一目标的最佳方法是什么?以透明的方式仅通过德国将流量路由到流媒体服务(这意味着在所有机器上设置一次内部代理或类似方法都是可以接受的)。

先谢谢您的帮助。

答案1

好吧,我找到了一个解决方案:

我创建了一个.pac脚本来自动配置代理设置:

function FindProxyForURL(url, host) 
{
    // Your proxy server name and port
    var proxy_server = "127.0.0.1:8080";
    var no_proxy_server = "DIRECT";
    {
    // List of hosts to connect via the PROXY server
    var proxy_list = new Array(
                               "*.amazon.com/*",
                               "*.amazon.de/*",
                               "*.akamaihd.net/*",
                               "*.ssl-images-amazon.com/*"
    );

    //Return proxy name for matched domains/hosts
    for (var i = 0; i < proxy_list.length; i++){
        var value = proxy_list[i];
        if (shExpMatch(url, value) ) {
            return "SOCKS "+proxy_server;
        }
    }

    return no_proxy_server;
    }
    return no_proxy_server;
}

通过在 Windows 或 Mac OSX 的代理设置中输入此脚本(以file://c:/scriptpath/script.pac适用于 Windows 的格式),每个浏览器将自动仅通过指定的 SSH 隧道重新路由 Amazon 流量(在本例中localhost)。

相关内容