Ubuntu 22.04 安装 Privoxy 指南
Ubuntu 22.04 安装 Privoxy 指南:apt 仓库 3.0.33 与源码编译 4.2.0 双方案全流程实测,含启动三连坑排障、systemd 托管、升级与卸载清理。
Ubuntu 22.04 安装 Privoxy 指南
目标:在 Ubuntu 22.04 上从零安装 Privoxy 并托管为 systemd 服务,覆盖 apt 官方仓库与源码编译两种方案的完整流程、启动排障实录、升级与卸载清理。全文命令与回显均在 Ubuntu 22.04.4 LTS(x86_64)实测通过,查询日期 2026-10-20。
一、环境信息
本文实测环境如下:
- 操作系统:Ubuntu 22.04.4 LTS(Jammy),架构 x86_64
- 方案 A 实装版本:Privoxy 3.0.33-1build1(jammy/universe 官方仓库,
apt-cache policy privoxy实测候选版本) - 方案 B 实装版本:Privoxy 4.2.0 stable(上游最新稳定版,2026-06 发布;源码取自 Debian 源码池 TUNA 同步站点)
- 源码包校验:privoxy_4.2.0.orig.tar.gz,1791064 字节,sha256
6f91267f81f626c416994db89ab62f4d09246eebf4754b81186e13a18ee9028f实测校验一致 - 默认监听:127.0.0.1:8118(方案 A 的 deb 包配置同时启用 IPv6 回环 [::1]:8118,实测
ss -ltn可见两条 LISTEN;方案 B 源码版默认配置仅启用 IPv4 回环) - 执行身份:全文以 root 执行(普通用户请自行在命令前加 sudo)
- 版本取证渠道与查询日期:Debian 软件包 changelog(privoxy 4.2.0-1,2026-06-03 上传 unstable)、Debian 源码池 TUNA 同步站点,均为 2026-10-20
二、版本选型说明
选版本前先弄清「上游最新版」与「发行版仓库内置版」的差距,再按需求选方案。2026-10-20 实查的版本对照如下:
| 渠道 | 版本 | 发布/佐证 | 说明 |
|---|---|---|---|
| 上游最新稳定版 | 4.2.0 | Debian changelog 4.2.0-1 于 2026-06-03 上传 unstable;源码池 tar 包 mtime Jun 4 | 官方当前主线,4.x 系列引入 https inspection(编译期启用)等新能力 |
| Ubuntu 22.04 官方仓库(jammy/universe) | 3.0.33-1build1 | apt-cache policy privoxy 实测 | 3.x 末代版本,维护通道成熟,无 HTTPS 检查能力 |
对表解读:两版能力差距集中在 4.x 新特性(https inspection、client-specific tags、connection-sharing 等)。只想快速获得一个可用的过滤代理,方案 A 装仓库版即可;需要 4.x 新能力或跟进上游修复,走方案 B 源码编译。
查询上游最新版的方法(避免硬编码未来版本号):
apt-cache policy privoxy # 查看本机仓库可装的版本与候选
实测回显:
privoxy:
Installed: (none)
Candidate: 3.0.33-1build1
Version table:
3.0.33-1build1 500
500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
上游最新稳定版可从 Debian 源码池目录(https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/p/privoxy/)查看当前 tar 包版本号,或访问官网 www.privoxy.org 的下载页确认。
三、前置条件
开始安装前确认以下条件:
- 系统:Ubuntu 22.04(其他 Debian 系发行版命令基本一致,包版本可能不同),具备 root 权限
- 端口:默认监听 8118,执行
ss -ltn | grep 8118应无输出;若有输出说明端口被占用,需先释放或改用其他端口 - 网络:方案 A 需能访问 archive.ubuntu.com;方案 B 需能访问 mirrors.tuna.tsinghua.edu.cn
- 方案 B 额外要求:编译工具链与开发库(见 5.2 节),磁盘空间约 100 MB 足够
四、方案 A:apt 在线安装(Ubuntu 22.04 官方仓库)
4.1 方案说明
Ubuntu 22.04 官方 universe 仓库内置 Privoxy 3.0.33-1build1,安装即包含 systemd 服务单元、默认规则库(default.action/default.filter)与 logrotate 配置,是最省事的安装方式。适合「能用仓库版本即可」的服务器。
4.2 安装步骤
先装验证工具(curl 走代理发请求、ss 查监听端口),再装 Privoxy:
apt-get install -y curl iproute2 # 验证工具
apt-get install -y privoxy # 安装 Privoxy
安装过程实测回显(输出节选,实测末段):
Setting up doc-base (0.11.1) ...
Registering 8 doc-base files...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
安装完成后确认版本与服务状态:
privoxy --version
systemctl status privoxy --no-pager | sed -n '1,5p'
实测回显:
Privoxy version 3.0.33 (https://www.privoxy.org/)
○ privoxy.service - Privacy enhancing HTTP Proxy
Loaded: loaded (/lib/systemd/system/privoxy.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:privoxy(8)
https://www.privoxy.org/user-manual/
⚠️ 注意:单元虽是
enabled,但Active: inactive (dead)——装完服务没有自动启动。原因与处理见 4.3 节。
4.3 启动服务(systemd 托管)
装完不自启的原因:系统存在 /usr/sbin/policy-rc.d 拦截桩(最小化系统/云服务器系统盘普遍自带),实测其内容为:
#!/bin/sh
exit 101
软件包安装钩子调用 invoke-rc.d 启动服务时被它以 101 拒绝,因此装完后处于 inactive 状态,需手动启动一次:
systemctl start privoxy
systemctl is-active privoxy
实测回显:
active
开机自启已在安装时由包配置好(unit 为 enabled),无需额外操作;如需确认或补设:
systemctl is-enabled privoxy
实测回显:
enabled
4.4 安装验证
依次确认监听端口、版本、代理链路与服务状态:
ss -ltn | grep 8118
privoxy --version
curl -sS -o /dev/null -w 'HTTP %{http_code}\n' -x http://127.0.0.1:8118 http://www.baidu.com/
systemctl status privoxy --no-pager | sed -n '3,5p'
实测回显:
LISTEN 0 128 127.0.0.1:8118 0.0.0.0:*
LISTEN 0 128 [::1]:8118 [::]:*
Privoxy version 3.0.33 (https://www.privoxy.org/)
HTTP 200
Active: active (running) since Tue 2026-10-20 10:32:46 UTC; 79ms ago
Docs: man:privoxy(8)
https://www.privoxy.org/user-manual/
HTTP 200 即代理链路验证通过;deb 包默认同时监听 IPv4 与 IPv6 回环,故可见两条 LISTEN。浏览器接入:把 HTTP 代理指向 127.0.0.1:8118(远程客户端则改 listen-address,见第七章)。
方案 A 的文件布局(dpkg -L privoxy 实测关键项):
| 路径 | 内容 |
|---|---|
| /usr/sbin/privoxy | 主程序 |
| /etc/privoxy/config | 主配置 |
| /etc/privoxy/{match-all,default,user}.action | 三级动作规则文件 |
| /etc/privoxy/{default,user}.filter | 官方/用户过滤器 |
| /etc/privoxy/templates/ | CGI 页面与拦截提示页模板 |
| /lib/systemd/system/privoxy.service | systemd 服务单元(Type=forking) |
| /var/log/privoxy/ | 日志目录(包已创建) |
| /usr/bin/privoxy-log-parser、/usr/bin/privoxy-regression-test | 官方辅助工具 |
五、方案 B:源码编译安装最新稳定版 4.2.0
5.1 方案说明
仓库版落后上游一个大版本(3.0.33 对 4.2.0)。需要 4.x 能力(如 https inspection)时,从源码编译安装:全程约几分钟,产物落 /usr/local 前缀。本章从下载到 systemd 托管全程实测,并完整记录首次启动的三个典型坑及修复过程。
5.2 安装编译依赖
apt-get install -y build-essential autoconf libpcre2-dev zlib1g-dev libssl-dev
实测回显(输出节选,实测末段):
Setting up gpg-wks-client (2.2.27-3ubuntu2.5) ...
Setting up gnupg (2.2.27-3ubuntu2.5) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
💡 说明:libpcre2-dev 是内容过滤器的正则引擎依赖,zlib1g-dev 支持压缩处理,libssl-dev 提供编译 https inspection 所需的 OpenSSL 开发头文件,autoconf 用于生成 configure 脚本(源码包不带现成的 configure)。
5.3 下载源码包并校验
mkdir -p /usr/local/src && cd /usr/local/src
wget https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/p/privoxy/privoxy_4.2.0.orig.tar.gz
ls -l privoxy_4.2.0.orig.tar.gz
sha256sum privoxy_4.2.0.orig.tar.gz
tar xzf privoxy_4.2.0.orig.tar.gz
cd privoxy-4.2.0-stable
实测回显:
2026-10-20 10:10:42 (1.70 MB/s) - 'privoxy_4.2.0.orig.tar.gz' saved [1791064/1791064]
-rw-r--r-- 1 root root 1791064 Jun 4 07:16 privoxy_4.2.0.orig.tar.gz
6f91267f81f626c416994db89ab62f4d09246eebf4754b81186e13a18ee9028f privoxy_4.2.0.orig.tar.gz
sha256 与 Debian 源码池发布值一致后继续。解压出目录 privoxy-4.2.0-stable/。
5.4 生成 configure 并完成配置探测
源码包不附带 configure 脚本,需先用 autoconf 生成,再运行探测:
autoconf
./configure
autoconf 阶段实测会输出 autoheader 的提示信息(属正常现象):
autoheader: WARNING: More sophisticated templates can also be produced, see the
autoheader: WARNING: documentation.
configure 探测实测回显(输出节选,实测末段):
checking for pcre2_compile_8 in -lpcre2-8... yes
checking for pcre2.h... yes
checking for regcomp in -lpcre2-posix... yes
checking for pcre2posix.h... yes
Enabling support for client-specific tags.
checking for zlibVersion in -lz... yes
Enabling connection-sharing support.
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating config.h
configure 退出码 0,pcre2/zlib 依赖均探测成功。
5.5 HTTPS 检查编译开关的选型实测
4.x 的 https inspection(HTTPS 检查)是编译期开关,官方支持 mbedTLS 与 OpenSSL 两种后端。两种在 Ubuntu 22.04 上的实测结果如下:
首试 mbedTLS 后端(失败):
./configure --with-mbedtls
make
configure 阶段正常(实测回显):
checking for mbedtls_ssl_init in -lmbedtls... yes
configure: Detected mbedTLS. Enabling https inspection.
但 make 编译失败(实测回显):
ssl.c:1777:14: note: each undeclared identifier is reported only once for each function it appears in
make: *** [GNUmakefile:322: ssl.o] Error 1
⚠️ 注意:Ubuntu 22.04 仓库自带 mbed TLS 版本过旧(2.28 系),与 Privoxy 4.2.0 的 ssl.c 所需 API 不匹配,
--with-mbedtls在该系统上无法编译通过,不要走这条后端。
改用 OpenSSL 后端(成功):
./configure --with-openssl
实测回显(输出节选,实测末段):
checking for OPENSSL_init_ssl in -lssl... yes
configure: Detected OpenSSL-compatible library. Enabling https inspection.
结论:Ubuntu 22.04 上启用 https inspection 必须用 --with-openssl。
5.6 编译与安装
make
make install
make 编译完成实测回显(输出节选,实测末段——最后一行是链接命令):
gcc -c -pipe -O2 -DNDEBUG -pthread -Wall openssl.c -o openssl.o
gcc -c -pipe -O2 -DNDEBUG -pthread -Wall ssl_common.c -o ssl_common.o
grep -v '^#MASTER#' default.action.master > default.action
gcc -pthread -o privoxy actions.o cgi.o cgiedit.o cgisimple.o deanimate.o encode.o errlog.o filters.o gateway.o jbsockets.o jcc.o list.o loadcfg.o loaders.o miscutil.o parsers.o ssplit.o urlmatch.o client-tags.o pcrs.o ssl_common.o openssl.o -lcrypto -lnsl -lz -lpcre2-8 -lpcre2-posix -lssl -lcrypto
make install 完成实测回显(输出节选,实测末段):
Privoxy 4.2.0 stable installation succeeded!
The Privoxy configuration files have been installed in /usr/local/etc/privoxy
确认安装产物:
ls -l /usr/local/sbin/privoxy
/usr/local/sbin/privoxy --version
实测回显:
-rwxr-xr-x 1 root root 409936 Oct 20 10:12 /usr/local/sbin/privoxy
Privoxy version 4.2.0 (https://www.privoxy.org/)
安装布局(实测):
| 路径 | 内容 | 权限(实测) |
|---|---|---|
| /usr/local/sbin/privoxy | 主程序 | 409936 字节,rwxr-xr-x root:root |
| /usr/local/etc/privoxy/ | 全部配置文件(config、actions、filter、templates 等) | 660 root:root(后续排障的坑 1 根源) |
| /usr/local/bin/privoxy-log-parser | 日志分析工具 | 随 install 安装 |
| /usr/local/bin/privoxy-regression-test | 回归测试工具 | 随 install 安装 |
| /usr/local/var/log/privoxy/ | make install 实际创建的日志目录 | 与 config 里写的 logdir 不一致(坑 2 根源) |
5.7 创建运行用户与首次启动排障实录
源码安装不创建专用用户,而以 root 常驻运行不符合最小权限原则。以下按实际踩坑顺序完整记录。
第一步:创建系统用户与组
groupadd privoxy
useradd -r -g privoxy -s /usr/sbin/nologin privoxy
id privoxy
实测回显(gid 取决于系统现有组,实测环境为 1000):
uid=105(privoxy) gid=1000(privoxy) groups=1000(privoxy)
坑 1:配置文件 660 root:root,privoxy 用户读不了,报误导性错误
以 privoxy 用户身份直接验证文件可读性,实测 Permission denied:
head: cannot open '/usr/local/etc/privoxy/config' for reading: Permission denied
而按真实方式启动(--user privoxy 降权运行)时,报错却是「文件不存在」:
2026-10-20 10:12:59.679 71f1640cf380 Fatal error: can't open configuration file '/usr/local/etc/privoxy/config': No such file or directory
exit: 1
文件明明就在那里——这是 Privoxy 对 EACCES(权限不足)的误导性转述,实际是权限问题。修复(保持 660 权限,只改属组):
chgrp -R privoxy /usr/local/etc/privoxy
坑 2:logdir 指向的目录 make install 并没有创建
修完坑 1 再启动,仍然静默退出(exit 1,无任何报错输出,8118 无监听)。用 strace 跟踪定位(apt-get install -y strace 后执行):
strace -f -e trace=setuid,setgroups,openat,unlink privoxy --no-daemon --user privoxy /usr/local/etc/privoxy/config
实测回显(输出节选,实测关键段):
9301 setuid(105) = 0
9301 openat(AT_FDCWD, "/usr/local/etc/privoxy/config", O_RDONLY) = 3
9301 openat(AT_FDCWD, "/var/log/privoxy/logfile", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
9301 openat(AT_FDCWD, "/var/log/privoxy/logfile", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
9301 unlink("/run/privoxy-test.pid") = -1 EACCES (Permission denied)
9301 +++ exited with 1 +++
信息很明确:降权到 uid 105 后,config 已能打开(返回 3),卡在 /var/log/privoxy/logfile 的 EACCES。原因:主配置第 347 行写的是 logdir /var/log/privoxy,而 make install 实际只创建了 /usr/local/var/log/privoxy(实测 ls /usr/local/var/log/ 输出 privoxy),/var/log/privoxy 压根不存在。修复:
mkdir -p /var/log/privoxy
chown -R privoxy:privoxy /var/log/privoxy
坑 3:曾用 root 启动过,logfile 变成 root 属主
若在排障过程中用 root 跑过一次(无 --user),会在 /var/log/privoxy/ 留下 root 属主的 logfile(实测 -rw-rw---- 1 root root 0 Oct 20 10:12 logfile),privoxy 用户后续追加日志同样报 EACCES、静默退出。修复与坑 2 相同:
chown -R privoxy:privoxy /var/log/privoxy
三坑全修后启动验证:
privoxy --pidfile /run/privoxy-test.pid --user privoxy /usr/local/etc/privoxy/config
ss -ltnp | grep 8118
实测回显(daemon 正常 fork、退出码 0,监听已建立):
LISTEN 0 128 127.0.0.1:8118 0.0.0.0:* users:(("privoxy",pid=9359,fd=4))
进程确认(ps 实测):
9359 /usr/local/sbin/privoxy --pidfile /run/privoxy-test.pid --user privoxy /usr/local/etc/privoxy/config
5.8 systemd 托管
手动拉起不适合长期运行,写一个 systemd 单元托管。创建 /etc/systemd/system/privoxy.service,内容如下(实测生效版本):
[Unit]
Description=Privoxy 4.2.0 Privacy enhancing HTTP Proxy
Documentation=man:privoxy(8) https://www.privoxy.org/user-manual/
After=network-online.target
[Service]
Environment=PIDFILE=/run/privoxy.pid
Environment=OWNER=privoxy
Environment=CONFIGFILE=/usr/local/etc/privoxy/config
Type=forking
PIDFile=/run/privoxy.pid
ExecStart=/usr/local/sbin/privoxy --pidfile $PIDFILE --user $OWNER $CONFIGFILE
ExecStopPost=/bin/rm -f $PIDFILE
SuccessExitStatus=15
[Install]
WantedBy=multi-user.target
逐项说明:Type=forking 对应 Privoxy 默认的守护进程化行为;--user privoxy 由主程序完成降权;SuccessExitStatus=15 允许 SIGTERM 正常退出不算失败;ExecStopPost 清理 pidfile 避免残留影响下次启动。
启用并启动:
systemctl daemon-reload
systemctl enable privoxy
systemctl start privoxy
systemctl status privoxy --no-pager
实测回显:
Synchronizing state of privoxy.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable privoxy
Created symlink /etc/systemd/system/multi-user.target.wants/privoxy.service → /etc/systemd/system/privoxy.service.
enabled
active
● privoxy.service - Privoxy 4.2.0 Privacy enhancing HTTP Proxy
Loaded: loaded (/etc/systemd/system/privoxy.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2026-10-20 10:19:06 UTC; 8ms ago
Docs: man:privoxy(8)
https://www.privoxy.org/user-manual/
Process: 9436 ExecStart=/usr/local/sbin/privoxy --pidfile $PIDFILE --user $OWNER $CONFIGFILE (code=exited, status=0/SUCCESS)
Main PID: 9437 (privoxy)
Tasks: 1 (limit: 5753)
Memory: 1.9M
5.9 安装验证
/usr/local/sbin/privoxy --version
curl -sS -o /dev/null -w 'HTTP %{http_code}\n' -x http://127.0.0.1:8118 http://www.baidu.com/
curl -sS -x http://127.0.0.1:8118 http://config.privoxy.org/show-status | grep '<title>'
实测回显(HTTP 200 为代理链路验证通过;show-status 是 Privoxy 内置 CGI 管理页):
Privoxy version 4.2.0 (https://www.privoxy.org/)
HTTP 200
<title>Privoxy@localhost: Proxy Status</title>
至此方案 B 安装完成,运行的是上游最新 4.2.0 且带 https inspection 编译支持。
六、方案对比与选择建议
| 维度 | 方案 A:apt 仓库 | 方案 B:源码编译 |
|---|---|---|
| 版本 | 3.0.33-1build1(2022 年代包) | 4.2.0(上游最新,2026-06) |
| https inspection 能力 | 无(3.x 无此功能) | 有(--with-openssl 编译启用,实测) |
| 是否需编译 | 否 | 是(依赖齐备后约数分钟) |
| 配置路径 | /etc/privoxy/ | /usr/local/etc/privoxy/ |
| systemd 单元 | 随包提供(/lib/systemd/system/) | 手写(/etc/systemd/system/) |
| 日志目录 | /var/log/privoxy(包已建好) | 需手工创建并修正属主(5.7 节坑 2/3) |
| 升级方式 | apt 升级随仓库 | 重新下载源码编译覆盖 |
| 卸载 | apt purge 一条命令 | 手工清理 /usr/local 各产物(10.2 节) |
选择建议:没有 4.x 特性需求、追求稳定省心,选方案 A;需要 https inspection、client-specific tags 等 4.x 能力或必须跟进上游安全修复,选方案 B。两者可共存于同一台服务器(二进制分别在 /usr/sbin/privoxy 与 /usr/local/sbin/privoxy),由 systemd 单元的 ExecStart 决定实际运行哪套,切换时按第九章操作。
七、配置说明
两种方案的配置文件体系一致(主配置 + 三级 actions + 两级 filter + templates),差异只在路径前缀。修改配置后一律用 systemctl restart privoxy 生效——不要用 kill -HUP 重载,实测会触发段错误(见 8.4 节)。
常用主配置项(以方案 B 的 /usr/local/etc/privoxy/config 为例,行号为 4.2.0 实测值;方案 A 同名项在 /etc/privoxy/config 内):
| 配置项 | 行号 | 默认值(实测) | 说明 |
|---|---|---|---|
| listen-address | 794 | 127.0.0.1:8118 | 监听地址与端口;远程客户端改 0.0.0.0:8118 并配合访问控制;方案 A 的 deb 配置还同时启用了第 795 行 [::1]:8118 |
| actionsfile | 385-387 | match-all.action、default.action、user.action | 动作文件加载顺序,后者可覆盖前者;用户定制写 user.action |
| filterfile | 432-433 | default.filter、user.filter | 过滤器定义文件;自定义过滤器写 user.filter |
| logdir | 347 | /var/log/privoxy | 日志目录(源码版需按 5.7 节手工创建) |
| logfile | 481 | logfile | 日志文件名,实际路径为 logdir/logfile |
| toggle | 822 | 1 | 过滤总开关,0 为全放行 |
| enable-edit-actions | 942 | 0 | 网页在线编辑规则开关,生产环境保持 0 |
基础安全项建议:监听保持回环或内网地址;如需对局域网开放,改 listen-address 后用 permit-access/deny-access 限定来源网段;enable-remote-toggle 与 enable-edit-actions 保持默认 0。
八、常见问题(FAQ)
8.1 装完服务是 inactive (dead),没有自动启动
现象与原因见 4.3 节:/usr/sbin/policy-rc.d 返回 101 拦截了包钩子的启动调用。处理:手动 systemctl start privoxy 一次即可,后续重启系统会由 systemd 正常拉起(单元已是 enabled)。
8.2 报 Fatal error: can't open configuration file ... No such file or directory,但文件明明存在
这是源码安装后的典型坑(5.7 节坑 1):配置文件是 660 root:root,privoxy 用户无读取权限,Privoxy 把权限错误误报为「文件不存在」。先用其他命令验证真实原因(实测回显):
head: cannot open '/usr/local/etc/privoxy/config' for reading: Permission denied
修复:chgrp -R privoxy /usr/local/etc/privoxy。
8.3 手动启动静默退出(exit 1),屏幕和日志都没有报错
见 5.7 节坑 2/坑 3:logdir 指向的 /var/log/privoxy 不存在,或 logfile 属主不是 privoxy。Privoxy 打不开日志文件时直接静默退出。定位手段:strace -f -e trace=openat,unlink privoxy --no-daemon --user privoxy <config> 看 EACCES 行(实测回显见 5.7 节)。修复:mkdir -p /var/log/privoxy && chown -R privoxy:privoxy /var/log/privoxy。
8.4 用 kill -HUP 重载配置后服务崩溃
实测:向运行中的 4.2.0 进程发送 HUP 修改过滤器后,journalctl 记录(实测实录):
Oct 20 10:19:58 systemd[1]: privoxy.service: Main process exited, code=dumped, status=11/SEGV
Oct 20 10:19:58 systemd[1]: privoxy.service: Failed with result 'core-dump'.
受控复现还发现:HUP 后自定义过滤器未按预期生效(请求返回空响应体),撤销修改再 HUP 后服务进入 failed 状态。结论:修改任何配置后一律 systemctl restart privoxy(实测 restart 加载新过滤器正常生效),不要依赖 HUP 热重载。
8.5 仓库里只有 3.0.33,怎么装上游最新版
Ubuntu 22.04 官方仓库不收录 4.x,按第五章方案 B 源码编译安装即可;文中命令与回显为 4.2.0 全流程实录,未来更高版本同理(把下载 URL 与目录名换成对应版本号即可)。
九、升级、降级与多版本管理
- 方案 A 升级:跟随系统仓库即可(
apt-get update && apt-get install --only-upgrade privoxy),升级前apt-cache policy privoxy确认目标版本;配置文件在 purge 级操作外不会被覆盖。 - 方案 A 降级:jammy 内只有单一版本,无降级场景;若误装第三方包需回仓库版,先
apt-get purge -y privoxy(见 10.1 节)再重装。 - 方案 B 升级:从 Debian 源码池下载新版 tar 包 → 按 5.3-5.6 节重新编译安装(make install 会覆盖 /usr/local/sbin/privoxy 与 /usr/local/etc/privoxy/)→
systemctl restart privoxy→privoxy --version确认。升级前备份 user.action/user.filter 两个自定义文件。 - 多版本并存与切换:apt 版二进制在 /usr/sbin/privoxy,源码版在 /usr/local/sbin/privoxy,可同时存在;实际运行哪套由 systemd 单元决定(
systemctl status privoxy的 ExecStart 行可核对,实测源码版单元显示ExecStart=/usr/local/sbin/privoxy ...)。切换:停服务 → 改单元 ExecStart 路径与 CONFIGFILE →systemctl daemon-reload→ 启动。
十、卸载与清理
10.1 方案 A(apt)卸载
systemctl stop privoxy
apt-get purge -y privoxy
实测回显(输出节选,实测关键段):
Removing privoxy (3.0.33-1build1) ...
/usr/sbin/policy-rc.d returned 101, not running 'stop privoxy.service'
invoke-rc.d: policy-rc.d denied execution of stop.
Purging configuration files for privoxy (3.0.33-1build1) ...
卸载后核验残留(实测回显):
ls: cannot access '/etc/privoxy/': No such file or directory
ls: cannot access '/var/log/privoxy/': No such file or directory
uid=105(privoxy) gid=65534(nogroup) groups=65534(nogroup)
配置与日志目录已随 purge 删除,但 privoxy 用户会残留,手动删除:
userdel privoxy
实测退出码 0(无输出即成功),再执行 id privoxy 应报 no such user。
10.2 方案 B(源码)卸载
源码版无包管理器记录,按产物清单逐项清理:
systemctl stop privoxy
systemctl disable privoxy
rm /etc/systemd/system/privoxy.service
systemctl daemon-reload
rm /usr/local/sbin/privoxy /usr/local/bin/privoxy-log-parser /usr/local/bin/privoxy-regression-test
rm -rf /usr/local/etc/privoxy /usr/local/share/doc/privoxy /usr/local/var/log/privoxy /var/log/privoxy
userdel privoxy
实测回显(disable 会移除自启软链,rm -v 逐一确认删除):
Synchronizing state of privoxy.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable privoxy
Removed /etc/systemd/system/multi-user.target.wants/privoxy.service.
removed '/etc/systemd/system/privoxy.service'
removed '/usr/local/sbin/privoxy'
removed '/usr/local/bin/privoxy-log-parser'
removed '/usr/local/bin/privoxy-regression-test'
userdel_exit: 0
卸载完成核验(实测回显,以下各条均为「无残留」状态):
ss_grep_exit: 1
ls: cannot access '/usr/local/sbin/privoxy': No such file or directory
ls: cannot access '/usr/local/etc/privoxy': No such file or directory
ls: cannot access '/var/log/privoxy': No such file or directory
id: 'privoxy': no such user
ss_grep_exit: 1 即 ss -ltn | grep 8118 无匹配——8118 已无监听;四处产物目录/文件均报 No such file or directory;用户已删除。
十一、参考链接
- Privoxy 官网与下载页:https://www.privoxy.org/
- 官方用户手册(安装与配置):https://www.privoxy.org/user-manual/
- 官方 FAQ:https://www.privoxy.org/faq/
- SourceForge 项目主页(项目名 ijbswa):https://sourceforge.net/projects/ijbswa/
- Debian 源码池 TUNA 同步站点(方案 B 源码包来源):https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/p/privoxy/
- 站内系列:《Privoxy 4.2.0 介绍与选型指南》(定位、架构与选型对比)、《Privoxy 4.2.0 配置参数详解》(config 指令与 action/filter 体系)、《Privoxy 4.2.0 常用 CLI 命令与工具详解》(命令行参数与辅助工具)