Debian 下 Compton 的网络代理配置说明
核心结论
Compton 是 X11 的窗口合成器,负责窗口阴影、透明度、模糊等合成效果,不进行任何网络访问,因此不存在“为 Compton 单独配置网络代理”的选项。若你的目标是让通过 Compton 渲染的桌面应用走代理,应在系统或应用层配置 HTTP/HTTPS 代理环境变量 或 APT 专用代理;Compton 会继承这些环境设置(若由会话启动器设置),或直接无需任何代理配置即可工作。
让桌面应用走代理的正确做法
- 图形界面设置(GNOME/Debian 桌面)
- 打开:设置 > 网络 > 网络代理 > 手动,填写 HTTP/HTTPS/FTP 的代理地址与端口;保存后,登录会话中的大多数 GUI 应用会继承这些代理设置。
- 例外:Firefox 常使用自身的代理配置,需在 首选项 > 网络设置 > 手动代理配置 中单独填写。
- 命令行与登录会话(对所有登录用户生效)
- 新建脚本:sudo nano /etc/profile.d/proxy.sh
- 写入示例:
- export http_proxy=“http://10.10.1.10:8080/”
- export https_proxy=“http://10.10.1.10:8080/”
- export ftp_proxy=“http://10.10.1.10:8080/”
- export no_proxy=“127.0.0.1,localhost”
- 同时设置大写变量(部分工具使用):HTTP_PROXY、HTTPS_PROXY、FTP_PROXY、NO_PROXY
- 赋权并生效:sudo chmod +x /etc/profile.d/proxy.sh && source /etc/profile.d/proxy.sh
- 验证:env | grep -i proxy
- 仅让 APT 走代理(不影响其他应用)
- 新建:sudo nano /etc/apt/apt.conf.d/80proxy
- 写入示例:
- Acquire::http::Proxy “http://10.10.1.10:8080/”;
- Acquire::https::Proxy “http://10.10.1.10:8080/”;
- Acquire::ftp::Proxy “http://10.10.1.10:8080/”;
- 如需认证,使用:http://用户名:密码@代理地址:端口/
- 仅让 wget 走代理
- 编辑:~/.wgetrc
- 写入:
- use_proxy = on
- http_proxy = http://10.10.1.10:8080/
- https_proxy = http://10.10.1.10:8080/
- ftp_proxy = http://10.10.1.10:8080/
Compton 配置与启动要点
- 配置文件位置:常见为 ~/.config/compton.conf(若不存在可创建),也可使用 /etc/xdg/compton.conf 做全局配置。
- 常用参数示例:
- backend = “glx”(或 xrender,按显卡驱动与兼容性选择)
- vsync = true/false
- shadow = true/false
- opacity/alpha 控制透明度
- 启动方式:
- 会话自启:将 compton --config ~/.config/compton.conf 加入桌面会话的启动脚本(如 Openbox、i3、bspwm 的 autostart)。
- Systemd 用户服务(推荐按需启用):创建 ~/.config/systemd/user/compton.service,示例:
- [Unit] Description=Compton Window Composer After=xorg.service
- [Service] ExecStart=/usr/bin/compton --config %h/.config/compton.conf Restart=on-failure
- [Install] WantedBy=default.target
- 启用:systemctl --user daemon-reload && systemctl --user enable --now compton
- 注意:Compton 配置文件中没有与网络代理相关的选项;若由 systemd 启动,确保服务环境与登录会话一致(必要时在 service 中显式导出 http_proxy/https_proxy)。
验证与排错
- 检查环境变量:在终端执行 env | grep -i proxy,确认输出包含你设置的代理地址;若使用 systemd 用户服务,需在该服务环境中也导出相同变量。
- 测试命令行工具:
- curl:curl -I https://www.example.com
- wget:wget -O- https://www.example.com
- 测试 APT:执行 sudo apt update,确认走代理(必要时查看 /var/log/apt/term.log 或抓包)。
- 浏览器例外:如 Firefox 未走系统代理,请在浏览器内单独配置。
- 常见错误:
- 认证信息未 URL 编码(用户名/密码含特殊字符需百分号编码)。
- 遗漏 no_proxy(内网地址、本地服务被错误代理)。
- APT 代理 URL 协议与端口不匹配(HTTP 代理端口通常为 3128 等)。