如何让 Chrome 等软件在 Windows 下使用 ssh+.pac 代理

2010年01月18日

分类: 软玉温香

本文已过期!目前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 进行设置。

ssh_pac_1

按 Ctrl+F 搜索 “forward-socks5”,将这一行前面的 “#” 注释去掉,然后在后面填入你的 ssh socks 代理的 IP 和端口。如下图所示:

ssh_pac_2

改好后,保存,关闭。这样你的 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 ,如下图:

ssh_pac_3

大功造成!

这样完成配置之后,Chrome 也好 IE 也好,甚至是一些自身没有代理功能的 Twitter 客户端比如知名的 TweetDeck、Seesmic 等等 ,因为这些都是走的 IE 代理,就都可以使用 ssh 代理了,同时 Socks 代理也可以正常使用,对于拥有 SSH 但买不起 VPN 又有全局可过滤代理需求的的童鞋来说十分适用。

Ps. Chrome 建议使用最新的 dev 版本,ssh客户端建议用 MyEnTunnel。

分享或收藏本文:
  • Twitter
  • Buzz
  • Google Bookmarks
  • del.icio.us
  • 收藏到鲜果
  • QQ书签
  • 豆瓣九点
  • 豆瓣
  • 新浪微博
  • 人人网
  • 开心网
  • DigLog
  • 百度搜藏
  • Live
  • Yahoo! Bookmarks
  • Tumblr
  • Facebook
  • Add to favorites
  • email

{ 3 条评论… 阅读评论或参加讨论 }

1 wangzhe 2010年01月24日 at 18:18

看起来好麻烦,真希望chrome可以支持Socks代理,或者把上面的东西集成为一个软件,不然翻次墙太麻烦 弄得自己都没心情了。直接打开浏览器什么网就能上 那感觉多爽

Reply

2 linsk 2010年04月04日 at 12:09

内网用户能用pac么?

Reply

3 Lucifr 2010年04月04日 at 19:12

应该可以,在Internet选项->连接->局域网设置

Reply

{ 1 次引用 }

发表评论

前一篇文章:

后一篇文章:

唾沫新星

唾沫新星

  • Lifestream