10.1 系统代理
系统代理是指通过配置环境变量或应用程序参数,使网络请求通过指定的代理服务器转发的机制。在 V2Ray 或 Clash 等代理软件开启允许局域网连接后,即可按照下文进行配置。
配置系统代理前,首先需要查看当前用户正在使用的 Shell 类型,因为不同 Shell 对环境变量的设置方式存在差异。执行以下命令可查看当前 Shell:
$ echo $SHELLHTTP_PROXY 代理
本节介绍通过环境变量配置系统代理的方法。多数命令行工具会读取 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 等环境变量来确定是否使用代理。
若使用 sh、bash 或 zsh
注意
在 sh、bash 或 zsh 中,环境变量
HTTP_PROXY必须使用大写形式,小写形式不会生效。
设置 HTTP 代理环境变量,该变量将被当前 Shell 及其子进程继承:
# export HTTP_PROXY=http://192.168.X.X:7890警告
本文中的
192.168.X.X:7890仅为示例,请根据实际情况填写,直接复制粘贴不会生效。IP 地址与端口号须与实际代理服务监听的端点一致。
取消已设置的 HTTP 代理环境变量:
# unset HTTP_PROXY若使用 csh
注意
在 csh 或 tcsh 中,环境变量
http_proxy必须使用小写形式,大写形式不会生效。
在 csh 或 tcsh 中设置 HTTP 代理环境变量,需使用该 Shell 特有的 setenv 命令:
在 csh 或 tcsh 中取消已设置的 HTTP 代理环境变量,使用对应的 unsetenv 命令:
Git 代理
Git 的代理配置方法,请参见本书其他章节。
浏览器配置代理
本节介绍 Chromium 和 Firefox 浏览器的代理配置方法。
Chromium 浏览器在 ~/.config 等目录下没有专门的代理配置文件,也不支持通过环境变量指定默认代理服务器,但可以通过启动参数设置代理。
为支持此参数的应用程序指定代理服务器和端口:
启动 Chrome 并使用指定的本地代理服务器:
默认使用 HTTP 协议,为支持此参数的应用程序指定 SOCKS 代理服务器和端口:
为支持此参数的应用程序指定 SOCKS4 代理服务器和端口:
在图形界面下让 Chromium 默认使用代理打开,可通过修改桌面启动文件实现持久化配置。
首先,找到桌面环境为 Chromium 创建的桌面(desktop)文件,通常位于 ~/.local/share/applications/ 目录下。
使用编辑器打开上述目录下的 Chromium desktop 文件 chromium-browser.desktop,找到 Exec=chrome %U 这一行,并在其后添加所需参数:
启动 Chrome 并使用指定的代理服务器:
为 Firefox 单独配置代理
Firefox 浏览器在设置页面的网络设置选项卡提供了图形化代理配置模块。

参考资料
The Chromium team. chromium(1) USER COMMANDS chromium(1) NAME chromium - the web browser from Google[EB/OL]. [2026-03-25]. https://man.freebsd.org/cgi/man.cgi?query=chrome 系统阐述 Chromium 命令行代理参数配置,为本章节提供技术依据。
Owynn, graudeejs, rjohn, olli@, Sevendogsbsd, kpedersen. chromium proxy settings page doesn't exist[EB/OL]. [2026-03-25]. https://forums.freebsd.org/threads/chromium-proxy-settings-page-doesnt-exist.31927/. 提供了 FreeBSD 下 Chromium 代理配置的实践解决方案。
课后习题
修改 Chromium 的 desktop 文件,使其默认使用 SOCKS5 代理启动,验证其 DNS 查询是否也通过代理转发,并将其方法贡献至本文。
为 csh 编写一个代理开关脚本,在设置代理后验证 git、fetch 等命令的实际网络流量路径,思考为何不同 Shell 对环境变量大小写有不同约定,究竟是哪个文件规定的。
为 Firefox 编写一个 shell 脚本,通过修改其配置文件实现代理自动切换,并对比与 Chromium 参数配置方式在用户可控性上的差异。最终尝试将其贡献到 Firefox 项目。
最后更新于