本文已过期!目前Chrome下已经有了 Proxy Switchy! 这个功能强大的代理插件可以实现全局 .pac 代理功能。
今天在 twitter 上看到 @roamlog 童鞋在问 windows 下如何用 .pac + ssh 代理 Chrome 。简单写一篇教程给买不起 vpn 的童鞋吧。
Chrome 在 Windows 下的代理机制
我们先要清楚 Chrome 的代理机制,Chrome 本身用的是 IE 的代理设置, 而 IE 代理本身是不支持 Socks 类型的代理,而只支持 HTTP 的。但 SSH 代理本身就是 Socks ,这就造成了.pac+ssh 在 Windows 下不起作用。那么我们要做的就是先把 Socks 代理转为 HTTP ,这就要用到 Privoxy 这个软件。
Privoxy 下载与设置
用过 Tor 的童鞋可能都见过与之捆绑的这个软件,对于没有用 Tor 的童鞋,可以在这里下载它的最新版本。安装完成后,运行它,我们会在任务栏托盘里发现这个蓝色的字母P的图标。右键点击它,在 “Edit” 中选择 “Main Configuration”,会在文本编辑器中打开一个 config 文件。在这里就可以对 Privoxy 进行设置。
按 Ctrl+F 搜索 “forward-socks5”,将这一行前面的 “#” 注释去掉,然后在后面填入你的 ssh socks 代理的 IP 和端口。如下图所示:
改好后,保存,关闭。这样你的 ssh 的 socks 代理就被会被转为 http 代理了。IP 及端口为 127.0.0.1:8118。
配置 .pac 文件
.pac 文件有很多种写法,在这里分享一下我目前在用的:
var patterns = new Array(
//下面可以添加你需要用代理的网站地址,要注意格式,网址用英文半角双引号,除最后一个外,其它后面必须带半角逗号
“twitter.com”,
“status.twitter.com”,
“twimg.com”
);function FindProxyForURL(url, host)
{
for (i in patterns)
{
if( url.indexOf( patterns[i] ) >= 0 )
{
return “PROXY 127.0.0.1:8118″;
}
}
return “DIRECT”;
}
把以上这段粘贴到文本编辑器里,比如 Windows 自带的记事本,保存为以 .pac 为扩展名的文件,比如 proxy.pac 。网址列表请自行扩充,我这里太多不宜的就不放上来了。须注意新添加了的网址只有在重启了 Chrome 后才能生效。
配置 IE 代理
在 控制面板 –> Internet属性 –> “连接”选项卡 –> “设置”(如果是无线网请用“局域网设置”)中勾选 “自动检测设置”(据说可以防止 Chrome 用代理时的某个抽风问题 )和 “使用自动配置脚本”,在 “地址”一栏中填入刚才所保存的 .pac 文件的位置,比如 Lucifr 将这个文件 proxy.pac 存在了F:盘根目录下,那么就写成:file://f:/proxy.pac ,如下图:
大功造成!
这样完成配置之后,Chrome 也好 IE 也好,甚至是一些自身没有代理功能的 Twitter 客户端比如知名的 TweetDeck、Seesmic 等等 ,因为这些都是走的 IE 代理,就都可以使用 ssh 代理了,同时 Socks 代理也可以正常使用,对于拥有 SSH 但买不起 VPN 又有全局可过滤代理需求的的童鞋来说十分适用。
Ps. Chrome 建议使用最新的 dev 版本,ssh客户端建议用 MyEnTunnel。







通过RSS订阅









{ 3 条评论… 阅读评论或参加讨论 }
看起来好麻烦,真希望chrome可以支持Socks代理,或者把上面的东西集成为一个软件,不然翻次墙太麻烦 弄得自己都没心情了。直接打开浏览器什么网就能上 那感觉多爽
内网用户能用pac么?
应该可以,在Internet选项->连接->局域网设置
{ 1 次引用 }