Squid 多层Cache 如何设置实现墙内直连,墙外域名走国外Proxy
开发人员经常查资料的网站都被墙, 所以在Linode 搞了一个instance 做为我们的Proxy, 但是墙内网站访问很慢, 所以想实现墙内的网站还是直连,被墙的域名走国外proxy.
我实现的思路是假设一个本地proxy, 可以用iptables 加透明代理,也可以让开发人员自己改浏览器设置, 然后在本地proxy 加上cache_peer, 然后用cache_peer_domain 来实现白名单过滤, 但是被墙的实在太多了, 加也加不过来呀。
想问问你们有没有经验,实现 try error 的模式,比如直接访问abc.com 如果访问失败就用proxy, 之后半小时内都用proxy. 我试了 prefer_direct on 的选项, 达不到我的要求, 一是试错很慢, 每个domain 试错都要10几秒, 一般页面上有CDN内容,广告的,域名都好几十个,页面整个载入要超过1分钟。而且不能cache 这个试错的结果,再次访问同样的域名下的内容,还是得先试错,再去选择proxy.
还有什么其他方法可以实现这个效果吗?
Answers
可用火狐浏览器配合autoproxy插件,同步gfwList,这个列表还是比较全的收录了被墙的网站。
chrome也有类似插件,不过我这一直不好用。
提醒一下,代理一定要用加密链接。否则不光不起作用,IP可能随时会被封。
更好的方式是VPN加路由表,默认走国内线路,墙外IP走VPN。效果比代理好。
路由表参考:http://code.google.com/p/chnroutes/
不过这样的话,可能要更改网关的配置或专门为需要的人设立一个网关,不过是一劳永逸的。
路由方式DNS需要用谷歌DNS或opendns。