CentOS 系统全局代理设置指南

发布于 2026-02-07 | 作者: FreeProxy Team

CentOS 全局代理设置以命令行环境为主,核心是三处配置:用环境变量让当前会话立即走代理,用 /etc/profile.d 脚本让所有登录用户自动继承代理,再为 yum 或 dnf 单独配置仓库代理保证软件包下载顺畅。本文从临时使用讲到永久配置,并处理运维中最常见的 sudo 场景问题。

环境变量方式设置代理

想让当前终端立即通过代理访问网络,直接导出变量即可:

export http_proxy="http://192.168.1.10:7890"
export https_proxy="http://192.168.1.10:7890"
export no_proxy="localhost,127.0.0.1,.example.internal"

变量立即生效,但重启系统或关闭会话后就会丢失,适合临时测试使用。如果代理是 SOCKS5 类型,可以把变量值写为 socks5://127.0.0.1:1080,curl 等工具能够直接识别这种写法。

profile.d 脚本统一配置所有用户

CentOS 习惯把全局 Shell 配置放在 /etc/profile.d 目录下,系统为每个登录用户自动加载该目录中的脚本:

sudo vi /etc/profile.d/proxy.sh

写入以下内容并保存:

export http_proxy="http://192.168.1.10:7890"
export https_proxy="http://192.168.1.10:7890"
export no_proxy="localhost,127.0.0.1,192.168.0.0/16"
export HTTP_PROXY="http://192.168.1.10:7890"
export HTTPS_PROXY="http://192.168.1.10:7890"

赋予可执行权限并在当前会话立即加载:

sudo chmod +x /etc/profile.d/proxy.sh
source /etc/profile.d/proxy.sh

此后每个新开的 SSH 会话都会自动携带代理变量。运维批量部署时,只需要用配置管理工具分发这一个脚本文件,即可让整个机房的代理策略保持一致。

yum 与 dnf 的代理配置

CentOS 7 使用 yum,CentOS 8 及 Stream 版本改用 dnf,两者的代理配置语法完全相同,只是主配置文件位置不同:

sudo vi /etc/yum.conf

在 [main] 段中追加代理参数:

proxy=http://192.168.1.10:7890
proxy_username=proxyuser
proxy_password=proxypass

dnf 用户对应编辑 /etc/dnf/dnf.conf。也可以在单个 repo 文件中写入 proxy 参数,实现只有指定仓库走代理。保存后运行以下命令验证:

sudo yum makecache
sudo dnf repolist

能正常拉取仓库元数据,说明软件源代理已经生效。

常见问题与验证方法

  • sudo 后代理失效:sudo 默认清空环境变量,执行 sudo visudo 在配置中加入 Defaults env_keep += "http_proxy https_proxy no_proxy",或临时改用 sudo -E。
  • 验证出口地址:执行 curl -s ifconfig.me,返回代理服务器的 IP 即代表配置成功。
  • wget 单独配置:个别版本不读取环境变量,可在 /etc/wgetrc 中写入 http_proxy 地址并设置 use_proxy=on。
  • systemd 服务不走代理:服务进程不经过登录流程,需要为对应服务单独创建环境变量覆盖文件。

按照环境变量、包管理器、sudo 白名单三个层面依次配置后,CentOS 即可实现覆盖日常运维场景的完整全局代理。

Article ID: 42

(本文仅供技术交流,请遵守法律法规)

返回知识库
广告区域 (Ad Space)