Ubuntu 22.04 安装 Privoxy 指南

Ubuntu 22.04 安装 Privoxy 指南:apt 仓库 3.0.33 与源码编译 4.2.0 双方案全流程实测,含启动三连坑排障、systemd 托管、升级与卸载清理。

PrivoxyPrivoxyHTTP 代理网络配置安全2026/10/20

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.0Debian 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-1build1apt-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.servicesystemd 服务单元(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-address794127.0.0.1:8118监听地址与端口;远程客户端改 0.0.0.0:8118 并配合访问控制;方案 A 的 deb 配置还同时启用了第 795 行 [::1]:8118
actionsfile385-387match-all.action、default.action、user.action动作文件加载顺序,后者可覆盖前者;用户定制写 user.action
filterfile432-433default.filter、user.filter过滤器定义文件;自定义过滤器写 user.filter
logdir347/var/log/privoxy日志目录(源码版需按 5.7 节手工创建)
logfile481logfile日志文件名,实际路径为 logdir/logfile
toggle8221过滤总开关,0 为全放行
enable-edit-actions9420网页在线编辑规则开关,生产环境保持 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;用户已删除。

十一、参考链接