准确---配置全局代理
以下是详细的配置步骤,确保 HTTP 和 HTTPS 都能通过代理:
1. 配置系统环境变量(影响大部分命令行工具和用户会话)
这是最关键的一步,会影响 curl
、wget
、git
等多数依赖环境变量的工具。
-
编辑全局配置文件 (
/etc/profile
):
这是最推荐的方式,因为它会对所有用户和所有 shell 会话生效。sudo vim /etc/profile
在文件末尾添加以下内容:
# Proxy settings for HTTP and HTTPS export HTTP_PROXY="http://10.1.77.11:3128/" export HTTPS_PROXY="http://10.1.77.11:3128/"# Optional: If you also use FTP export FTP_PROXY="http://10.1.77.11:3128/"# List of hosts/IPs that should NOT use the proxy # Common examples: localhost, internal IPs, network ranges. Adjust as needed. # For example: 10.0.0.0/8 (private A class), 172.16.0.0/12 (private B class), 192.168.0.0/16 (private C class) export NO_PROXY="localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" # For compatibility, also set lowercase variables export http_proxy="http://10.1.77.11:3128/" export https_proxy="http://10.1.77.11:3128/" export ftp_proxy="http://10.1.77.11:3128/" export no_proxy="localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
解释:
HTTP_PROXY
和http_proxy
: 用于 HTTP 请求。HTTPS_PROXY
和https_proxy
: 用于 HTTPS 请求。NO_PROXY
和no_proxy
: 非常重要!它定义了不应该通过代理访问的地址列表。这通常包括本地回环地址 (localhost
,127.0.0.1
,::1
) 以及你的内部网络 IP 地址段。请根据你的实际内部网络环境调整NO_PROXY
中的 IP 范围。- 请注意,代理地址末尾的
/
是推荐的,但不是强制的。
-
保存并退出
vim
:
按Esc
键,然后输入:wq
并按回车。 -
使配置生效:
你需要重新加载profile
文件,或者重启你的 shell 会话(注销再登录,或直接关闭当前终端窗口并打开新的)。source /etc/profile
-
验证环境变量:
echo $HTTP_PROXY echo $HTTPS_PROXY echo $NO_PROXY
你应该看到你设置的代理地址。
-
测试代理连接:
使用curl
命令测试 HTTP 和 HTTPS 网站。curl http://www.example.com # 测试 HTTP curl https://www.google.com # 测试 HTTPS
如果能够成功获取页面内容,说明环境变量代理已生效。
2. 配置 yum
代理(如果需要通过代理更新系统包)
yum
有自己的代理配置,不受环境变量的影响。
- 编辑
yum
配置文件:sudo vim /etc/yum.conf
- 在
[main]
部分的末尾添加以下行:proxy=http://10.1.77.11:3128
- 保存并退出。
- 清理
yum
缓存并测试:sudo yum clean all sudo yum makecache fast sudo yum update # 尝试更新,观察是否通过代理
3. 配置 docker
代理 (如果安装了 Docker)
Docker 服务需要单独配置代理,以确保 Docker 能够拉取镜像和构建镜像时使用代理。
- 为
systemd
的docker.service
创建配置目录:sudo mkdir -p /etc/systemd/system/docker.service.d
- 创建代理配置文件:
添加以下内容:sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
[Service] Environment="HTTP_PROXY=http://10.1.77.11:3128/" Environment="HTTPS_PROXY=http://10.1.77.11:3128/" Environment="NO_PROXY=localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
- 保存并退出。
- 重新加载
systemd
配置并重启 Docker 服务:sudo systemctl daemon-reload sudo systemctl restart docker
- 验证 Docker 代理:
你应该能看到systemctl show docker --property Environment
Environment
中包含了你设置的代理信息。
然后尝试拉取一个公共镜像:
如果成功,则说明 Docker 代理生效。docker pull hello-world
4. 配置 git
代理(可选,通常环境变量已足够)
Git 默认会使用环境变量中的代理,但你也可以为其单独配置。
- 为当前用户配置 Git 代理:
git config --global http.proxy http://10.1.77.11:3128 git config --global https.proxy http://10.1.77.11:3128
重要注意事项:
- 防火墙: 确保 CentOS 服务器的防火墙 (
firewalld
) 允许出站连接到代理服务器的3128
端口。如果防火墙是开启的,可能需要添加规则:sudo firewall-cmd --permanent --zone=public --add-port=3128/tcp sudo firewall-cmd --reload
- 代理服务器可用性: 在配置之前和之后,请确保
10.1.77.11:3128
这个代理服务器是可用的。如果代理服务器本身有问题,你的网络连接仍然会失败。 - SSL 证书验证: 对于 HTTPS,如果你的代理服务器执行了 SSL 拦截 (SSL interception / man-in-the-middle proxy),你可能需要将代理服务器的根证书添加到 CentOS 的信任存储中,否则可能会遇到 SSL 证书验证错误。这在企业环境中比较常见。
- 重启: 在某些情况下,尤其是修改了
/etc/profile
或systemd
配置后,最好完全注销并重新登录,或者重启相关服务,以确保所有进程都获得了新的环境变量。 - 系统范围 vs 用户范围: 配置在
/etc/profile
的环境变量是系统范围的。如果你只想为特定用户设置代理,可以将其添加到该用户的~/.bashrc
或~/.bash_profile
文件中。
完成以上步骤后,你的 CentOS 7.9 服务器应该能够通过 10.1.77.11:3128
代理访问 HTTP 和 HTTPS 网站了。