web访问:匿名,穿越,加速,缓存,一个都不能少
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/294)的形式标明文章原始出处和作者信息及本声明。导火索是我的foxyproxy不好用了,本来不怎么使用tor的,wikipedia我也不怎么上,可是最近不仅sitesled上不去了,连反spam的Akismet也上不去,导致spam无法识别,越积越多,只能直接删除了事。edgy中的firefox升级为2.0.0.1,我又把firefox的profile文件夹位置挪动了一下,从那以后foxyproxy就没有好用过,不是提示莫名其妙的错误,就是丢失配置,连右下角的图标和状态文字都经常消失。foxyproxy的作用也就是在我访问不同网站的时候,判断是否启用tor,原来说过privoxy也能实现,今天我就小小的研究了一下,并且把相关的匿名web访问、穿越网络屏障、访问缓存及加速串起来,形成一套完整的工具。
我们使用到的工具是privoxy、tor、squid这三个。
Privoxy是代理转发器,他负责控制那些访问使用代理,使用那个代理。
Tor是socket代理服务器,通过他可以确保目标网站能够访问并且使用者的真实ip不会被记录。
Squid是一个缓存服务器,可以实现访问加速的目的,同时还可以过滤掉广告、js等内容。
Privoxy:
privoxy的主配置文档为/etc/privoxy/config,修改完不用重启privoxy就能生效,在这个文件中添加内容如下:
#forward-socks4a .ip109.com localhost:9050 .
#forward-socks4a www.ip109.com localhost:9050 .
#forward-socks4a www.ip1?9.com localhost:9050 .
forward-socks4a .ip1?9.c*:80 localhost:9050 .
privoxy的匹配规则是从大到小的,也就是范围最大的放在前面,范围小规则的放在后面,匹配的时候会从前到后,使用最后有效的规则。所以第一条forward是默认让所有访问都不走代理,后面的forward-socks4a则是定义访问指定网站需要使用代理,并且是转发到socket代理服务器tor那里。forward-socks4a规则中需要经常变更的就是target_pattern了,就像我写的那4行,其实都是可用的,“?”可以用来通配单个字符,“*”可以用来通配任意字符,“.”放在pattern两端表示之前或之后还有内容,pattern两端是正常字母就说明前面或者后面没有内容了。注意“http://”不能加,否则匹配不上,但是可以用“hostname:80”或者“hostname:443”等方式替代。如果无法访问非443端口的https网站,可以在default.action文件中把
更改为
就可以了,这是因为provoxy默认限制了对非443端口的https访问,详细的解释在这里。
另外privoxy的default.action文件默认设置屏蔽了很多广告什么的,包括google adsense都显示不出来,建议用空文件替代之,并逐步用自己的规则来完善,所以如果只保留上面对https网站的访问规则,default.action就是:
/
Tor:
正常安装,默认配置就可以,监听9050端口。安装完成之后,把浏览器的proxy设置为127.0.0.1:8118,应该就可以访问了。
Squid:
配置文档为/etc/squid/squid.conf,添加如下配置内容:
http_port 127.0.0.1:3128
# 缓存保存位置,1000为缓存总大小(M),16为一级目录个数,256为二级目录个数
cache_dir ufs /var/spool/squid 1000 16 256
# 只允许从本机访问
http_access allow localhost
http_access deny all
# 配置privoxy为squid的上级(squid的出口连接)
cache_peer localhost parent 8118 7 no-query default
visible_hostname localhost
# 全部使用privoxy代理出去,不允许直接连接外网
never_direct allow all
# 显示声明8443端口能够访问,不然这个非标准https端口就又没法用了
acl SSL_ports port 8443
acl Safe_ports port 8443
添加了squid之后,浏览器的代理服务器就不要设置privoxy了,而是要指向Squid:127.0.0.1:3128,这样,我们的web访问会先到squid,如果缓存中没有,再通过privoxy访问外网,并且根据规则使用tor进行匿名加密访问。
现在我们的web访问可以说是无所不能了,并且这三个软件占用系统资源都不多,tor稍微多些,占8.4M内存,privoxy占450+k内存,squid占3.2M内存多,所以对系统的速度影响不大。只是squid服务启停稍微慢一些,不过增加缓存服务器对web访问加速的效果还是很明显的。
一般浏览器的代理设置中,对本机的访问一般都会设置为例外即不使用代理,firefox也是这样,所以对调试本机程序没有什么影响。特殊情况确实需要完全“刷新”页面的,按住“Shift“键再点F5刷新即可,再特殊一点的情况,就把代理更改为privoxy 8118,跳过squid,或者暂时禁用代理就可以了。
另外值得说的是,privoxy和squid都有比较完备的访问控制功能(基于ip或者主机),用来在局域网内架设服务,提供到外网的访问代理服务,是再方便不过的了。什么,sygate、wingate?很久都没有听说过这些名词了,呵呵。
延伸阅读:
update @ 2007-03-18
可以安装squidclient来查询系统运行状态:
*取得squid运行状态信息: squidclient -p 3128 mgr:info
*取得squid内存使用情况: squidclient -p 3128 mgr:mem
*取得squid已经缓存的列表: squidclient -p 3128 mgr:objects (use it carefully, it may crash)
*取得squid的磁盘使用情况: squidclient -p 3128 mgr:diskd
*强制更新某个url: squidclient -p 3128 -m PURGE http://www.yejr.com/static.php
*更多的请查看:squidclient -h 或者 squidclient -p 3128 mgr:
Bookmark and Share This Page
If you like this then please subscribe to the RSS Feed.
Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BuddyMarks
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
kirtsy
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
May 9th, 2007 at 18:18:59
试了一下,privoxy速度太慢了。
只使用squid比直接连接慢1、2 秒。
如果只使用privoxy,不使用tor 比直接连接慢4、5秒。即使清空所有动作和过滤也不起作用。
网络是10M电信光纤。
[Reply]
May 10th, 2007 at 0:13:40
速度确实会稍微慢一些
如果没有用tor的必要
可以只使用squid,虽然首次连接稍微慢一些
但缓存对于css、js和图像的加速作用很明显。
[Reply]
May 10th, 2007 at 18:35:47
有没有privoxy的替代品?
我需要使用tor访问维基。
[Reply]
May 11th, 2007 at 0:15:03
可以试试firefox的torbutton或foxyproxy插件
可以灵活的选择是否启用、什么条件下启用tor
[Reply]
September 26th, 2007 at 13:08:50
[...] 由于我上网客户端配置的特殊性,首先怀疑是squid的问题,但通过实验排除了,不过同时发现了一个Squid和Tor、Privoxy协同使用的隐私泄露问题,留待以后研究。 [...]
October 13th, 2007 at 4:16:53
是不是用代理之后自己的帐号信息会被代理服务器监听
密码什么的是不是就容易被盗取了?
不是很明白,求教一下
[Reply]
October 13th, 2007 at 4:19:19
[...] 简明教程web访问:匿名,穿越,加速,缓存,一个都不能少 作者:fwolf Tags: Firefox , [...]
October 14th, 2007 at 2:44:57
@solazy 理论上讲是这样的
有些别有用心的人会架设代理服务器,然后监听服务器上流过的数据
从中筛选密码等信息用于干坏事。
所以使用代理服务器,一是尽量只访问无需输入密码的网站,二是只在https(有ssl加密)的网站输入密码;这两种方式可以提高安全性。
[Reply]
October 15th, 2007 at 23:46:37
谢谢啦:)
[Reply]