请教如何在 VPS 就通过 privoxy 过滤广告?

2016-12-30 10:21:49 +08:00
 la0wei

使用$$科学上网。 想在 vps 端就把广告过滤掉,于是想到 privoxy google 了下,得到如下命令 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8118

但是编写规则后发现并没有作用,而该规则在本地 windows 上是可以工作的。 求解哪里出问题?

1871 次点击
所在节点    Linux
9 条回复
mozutaba
2016-12-30 10:50:52 +08:00
同求
UnisandK
2016-12-30 11:05:23 +08:00
la0wei
2016-12-30 11:17:57 +08:00
@UnisandK 命令我是从 fqrouter 的 gist.github.com 中找到的,和这篇的内容很类似。

不知道现在版本的$$是否改写了安全相关代码,如果是的话,那么可能我是被卡在没有授予$$访问本地 8118 的权限。
如果没有改写,访问本地资源这个问题还存在,那么问题还是处在上面的 iptables 命令上。
imn1
2016-12-30 11:18:36 +08:00
你搞错了吧? privoxy 里面写 iptables 规则?

改动 config ,载入两个自定义文件
filterfile /etc/privoxy/user1.filter
actionsfile /etc/privoxy/user1.action

1.user1.filter
FILTER: ABC 起个名字给 action 调用
s@source htmlcode@期望的内容 @gi # 其实就是正则替换,换成 display:none 就可以了
#可以多条正则,每行一条,直到下一个 FILTER 行首前,都属于 ABC

2.user1.action
{+filter{上面 filter 起的名字 ABC} +server-header-tagger{content-type}}
域名 # 就是 ABC 的正则对这个域名有效
# 也可以多个域名,意思是 ABC 是通用规则

也可以整个域名 block 掉,参看手册+block 规则


注意: filter 性质属于自我劫持,只能对 http 有效, ssl 无效,因为没有证书

/t/157098
/t/156197
更多可以搜本站“ privoxy imn1 ”
la0wei
2016-12-30 12:55:18 +08:00
@imn1 不是的。用 iptables 是把$$的流量导入到 privoxy 。
privoxy 的规则在 user.action 和 user.filter 文件。
我现在遇到的问题是无法把$$的流量使用 privoxy 过滤
imn1
2016-12-30 13:03:31 +08:00
@la0wei
我俩中有一个语文不好

vps 上应该是$$输出端口->privoxy 监听端口吧?
而且要分出 http 协议,不然就乱套了
la0wei
2016-12-30 13:15:22 +08:00
@imn1 这个……
确实是这样设想的。因为是把目的端口为 80 的重定向到 privoxy 的 8118 ,所以实际上不需要考虑协议了。现在就是 ss 到 privoxy 之间这个通道没有打好。
fangdingjun
2016-12-30 15:48:12 +08:00
你确定 privoxy 支持透明代理功能?
印像中好像不支持,在前面加一层 redsocks, iptables 重定向流量到 redsocks,然后再转发到 privoxy
la0wei
2016-12-30 23:10:14 +08:00
@fangdingjun privoxy 是否支持这个我还得看看官方文档,主要是基于 privoxy 的 adby 之类的广告过滤软件是支持的, privoxy 支持的可能性很大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX