准确---配置全局代理

以下是详细的配置步骤,确保 HTTP 和 HTTPS 都能通过代理:

1. 配置系统环境变量(影响大部分命令行工具和用户会话)

这是最关键的一步,会影响 curlwgetgit 等多数依赖环境变量的工具。

  • 编辑全局配置文件 (/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_PROXYhttp_proxy: 用于 HTTP 请求。
    • HTTPS_PROXYhttps_proxy: 用于 HTTPS 请求。
    • NO_PROXYno_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 能够拉取镜像和构建镜像时使用代理。

  • systemddocker.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 pull hello-world
    
    如果成功,则说明 Docker 代理生效。

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/profilesystemd 配置后,最好完全注销并重新登录,或者重启相关服务,以确保所有进程都获得了新的环境变量。
  • 系统范围 vs 用户范围: 配置在 /etc/profile 的环境变量是系统范围的。如果你只想为特定用户设置代理,可以将其添加到该用户的 ~/.bashrc~/.bash_profile 文件中。

完成以上步骤后,你的 CentOS 7.9 服务器应该能够通过 10.1.77.11:3128 代理访问 HTTP 和 HTTPS 网站了。

你可能感兴趣的:(准确---配置全局代理)