本文初始版本于 2019年11月21日 发布,现在通过 Google 快照服务找回,历史评论已全部丢失。

Wikipedia 简介:Privoxy 是一款不进行网页缓存且自带过滤功能的代理服务器,针对 HTTP、HTTPS 协议。通过其过滤功能,用户可以保护隐私、对网页内容进行过滤、管理 Cookie,以及拦阻各种广告等。Privoxy 可以单机使用,也可以应用到多用户的网络。修改HTTP请求头的字段,如Referrer和用户代理(User Agent),从而隐藏用户上一个查看的网页和用户正在使用的浏览器。移除网络广告(可用Adblock Plus或uBlock Origin替代)

安装

首先我们要做的就是在我们的 openwrt 设备上安装好 privoxy。

opkg update
opkg install privoxy
opkg install luci-app-privoxy
opkg install luci-i18n-privoxy-zh-cn

运行
点击以下按钮开始运行 Privoxy

配置

确保这两个地址是和你 openwrt LAN 口同一网段(因为我的 openwrt 设备地址是192.168.1.1,所以我下面的都是以192.168.1.1为例子).第一个是你 Privoxy 的监听地址,默认端口是 8118,请注意不要和其他应用冲突了,然后点击保存&应用

在“文件和目录”选项卡下找到这个两个位置,添加上用户自定义 ActionFilter 文件。

使用 WinSCP 连接到你的 openwrt 设备,然后前往/etc/privoxy目录,修改user.actionuser.filter这两个文件
向user.action添加以下内容

{+client-header-filter{androidfilter}}
/

user.filter添加以下内容

CLIENT-HEADER-FILTER: androidfilter Replace all "Android" with "Windows"
s@\b(Android|iP\w+)\b@Windows NT@ig

或者索性全部替换掉!(这个是把所有的常见设备 UA 改成 macOS 的,可能会出现问题,谨慎使用):

CLIENT-HEADER-FILTER: androidfilter Replace all "Android" with "Windows"

s@\b(Android\s\d+|CPU iP\w+\s(OS)\s\w+\s(like Mac OS X)|CPU OS\s\w+\s(like Mac OS X)|Windows NT\s\d+(.)\d|Linux|X11)\b@Macintosh@ig


在进行下一步操作之前,请先用自己的手机设置 HTTP 代理,以保证 Privoxy 顺利运行。

↑ 以安卓手机设置为例

↑ 这是设置成功后的样子,原来的 Android 被替换为了 Windows.

使用 iptables 将所有 http 流量转发给 privoxy 处理。首先就是在杂项选项卡下,勾选Accept intercepted requests

接着进入你的 openwrt 防火墙,然后在自定义设置里输入:

iptables -t nat -N PrivoxyUA
iptables -t nat -A PREROUTING -i br-lan -p tcp -j PrivoxyUA
iptables -t nat -A PrivoxyUA -d 0.0.0.0/8 -j RETURN
iptables -t nat -A PrivoxyUA -d 10.0.0.0/8 -j RETURN
iptables -t nat -A PrivoxyUA -d 127.0.0.0/8 -j RETURN
iptables -t nat -A PrivoxyUA -d 169.254.0.0/16 -j RETURN
iptables -t nat -A PrivoxyUA -d 192.168.1.0/24 -j RETURN
iptables -t nat -A PrivoxyUA -d 172.16.0.0/12 -j RETURN
iptables -t nat -A PrivoxyUA -d 192.168.0.0/16 -j RETURN
iptables -t nat -A PrivoxyUA -d 224.0.0.0/4 -j RETURN
iptables -t nat -A PrivoxyUA -d 240.0.0.0/4 -j RETURN
iptables -t nat -A PrivoxyUA -p tcp --dport 80 -j REDIRECT --to-ports 8118

点击保存&应用

测试效果


测试效果
最后,你就可以看下 UA 是否真的被修改成功了。
有两个测试地址:
HTTP 测试地址(这个是你访问 HTTP 网站时的 UA, UA 检测设备是能看到的):http://www.atool9.com/useragent.php 或者 http://lilynas.com/ua.php
HTTPS 测试地址(这个是你访问 HTTPS 网站时的 UA,校园网 UA 检测设备是无法看到的):
https://ie.icoa.cn/