由于流量有限,自然用Privoxy比较合适。但在修改/etc/privoxy/config的时候一不小心就把默认的config文件给覆盖了,而且还是用的Windows版本的文件。然后无论如何都不能启动/etc/init.d/privoxy start。 重装privoxy,提取源码包中的config文件都不行。
后来自己手写了一个config文件,可以勉强启动并且根据规则判断是否转发。但http://p.p/页面一直显示:
"500 Internal Privoxy Error
Privoxy encountered an error while processing your request:
Could not load template file default or one of it's
included components.
Please contact your proxy administrator.
If you are the proxy administrator, please put the
required file(s)in the (confdir)/templates directory.
后来自己手写了一个config文件,可以勉强启动并且根据规则判断是否转发。但http://p.p/页面一直显示:
"500 Internal Privoxy Error
Privoxy encountered an error while processing your request:
Could not load template file default or one of it's
included components.
Please contact your proxy administrator.
If you are the proxy administrator, please put the
required file(s)in the (confdir)/templates directory.
这时候我强迫症发作了:用VirtualBox全新安装了一个Ubuntu,然后把默认的配置文件提取出来:点此下载(/etc/privoxy目录下的所有文件)。
对比可以发现原因是Linux和Windows下的config和config.txt不能通用。主要在于目录变量以及功能的支持上:Linux下的config默认内容:
user-manual /usr/share/doc/privoxy/user-manual
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
filterfile user.filter # User customizations
logfile logfile
listen-address localhost:8118
toggle 1
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
socket-timeout 300
Windows下的config.txt默认内容:
confdir . logdir . actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations filterfile default.filter filterfile user.filter # User customizations logfile logfile listen-address 127.0.0.1:8118 toggle 1 enable-remote-toggle 0 enable-remote-http-toggle 0 enable-edit-actions 0 enforce-blocks 0 buffer-limit 4096 enable-proxy-authentication-forwarding 0 forwarded-connect-retries 0 accept-intercepted-requests 0 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 5 tolerate-pipelining 1 socket-timeout 300
最后完全重写了转发的规则,以前都是直接写在config文件里。但现在需要多平台同步,并且config文件不能通用,只好把forward规则改写成action的方式。
要感谢 七星庐:强大的代理调度器代理 Privoxy 和 cckpg的autoproxy2privoxy 的帮助。其实改写过程就几分钟,但苦在Privoxy的action功能太强大,这种简单的功能反而不知道如何下手。
然后就是把新写好的config和proxy.action文件放到Dropbox里Windows版的Privoxy目录下,再用硬链接链接到/etc/privoxy目录下。
这样Windows直接打开Dropbox中的exe程序就可以使用,Ubuntu下也可以同步到最新的规则。
但是经过多机实验,发现一个BUG,如果在Windows平台下修改proxy.action文件,会导致Ubuntu的硬链接失效。初步认为是坚果云同步文件的实现方式造成的。但由于网络环境导致Dropbox不能实时同步,所以不能确定原因。
EOF
要感谢 七星庐:强大的代理调度器代理 Privoxy 和 cckpg的autoproxy2privoxy 的帮助。其实改写过程就几分钟,但苦在Privoxy的action功能太强大,这种简单的功能反而不知道如何下手。
然后就是把新写好的config和proxy.action文件放到Dropbox里Windows版的Privoxy目录下,再用硬链接链接到/etc/privoxy目录下。
这样Windows直接打开Dropbox中的exe程序就可以使用,Ubuntu下也可以同步到最新的规则。
但是经过多机实验,发现一个BUG,如果在Windows平台下修改proxy.action文件,会导致Ubuntu的硬链接失效。初步认为是坚果云同步文件的实现方式造成的。但由于网络环境导致Dropbox不能实时同步,所以不能确定原因。
EOF