重定向特定域的Web流量(SOCKS代理)


10

由于某些原因,我的工作被YouTube封锁了。

我是一名科学家,我需要 YouTube,因为我希望看到的大多数会议和演讲都可以在那儿进行。是的,为了科学,我实际上需要YouTube。

我在这里与我的学校的网络管理员交谈,但是他有点难以应付并且不理解任何理由。他是那种认为互联网以某种方式通过固定的渠道和端口,并且实际上有可能阻止诸如访问YouTube之类的事情的人。

无论如何,幸运的是我在某处有一个专用服务器,因此我可以像这样在这里使用ssh-proxy:

ssh -D 5000 -CN我自己@myserver

然后配置Firefox(是的,Firefox,因为Chrome很懒,并且仅依赖于OS X的设置[是的,我在OS X上])使用SOCKS5代理到该端口,并且几乎拥有我想要的所有Internet。

由于这里的互联网非常酷,因此我没有任何明显的延迟或带宽问题。

问题是我的专用服务器向我收取带宽费用,并且我必须关闭所有功能才能下载一些大文件(由于科学,我也需要这样做)。因此,由于我不想每次看到YouTube视频时都打开和关闭此功能,因此我想以某种方式告诉Firefox(或我的计算机)通过SOCKS5代理路由youtube.com。我看到可以很容易地以另一种方式完成此操作(即,如果不是针对这些域的所有流量,则通过代理发送),但是我不知道设计者是如何想到相反情况的。

有人知道实现此目标的简单方法吗?

Answers:


12

您可以为Firefox 创建一个代理自动配置(PAC)文件,并在“自动代理配置URL”下进行配置(将PAC文件在线放置在HTTP服务器上的某个位置,或使用file:///path/to/file.pac-style URL)。

PAC文件本身是一个文本文件(JavaScript),定义了确定使用哪个代理的功能:

function FindProxyForURL(url, host)
{
  if (shExpMatch(url, "*.youtube.com/*")) {
    return "SOCKS localhost:5000";
  } else {
    return "DIRECT";
  }
}

这是一个简单的示例,可以满足您的需求,但是使用PAC可以定义非常复杂的代理方案(例如,考虑一天中的时间,具有多个代理,具体取决于本地IP地址等)。您可以在Internet上轻松找到有关PAC文件的更多信息,例如http://findproxyforurl.com/pac-functions/


sweeeeeeeeeeet!
almosnow 2014年


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.