当前位置: 首页 > ds >正文

准确---配置全局代理

以下是详细的配置步骤,确保 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 网站了。

http://www.xdnf.cn/news/14038.html

相关文章:

  • SpringBoot框架与应用与面向切面编程
  • sdl3+imgui+implot高效绘制图表(c++)
  • RAG 技术详解:结合检索与生成的智能问答新范式
  • c++ io操作(文件的读取与写入)
  • ES集群的故障转移
  • 中科微ATR2660S低噪声放大器芯片
  • IGBT开通时间、关断时间、死区时间
  • 楼宇自控新方向:电力载波技术——低成本、高兼容性的智能未来
  • day28-shell编程-2
  • 动态规划-最长子序列
  • 低熔点纤维市场深度解析:技术革新与产业应用前景
  • 英语写作核心词汇
  • NVIDIA Isaac GR00T N1.5 适用于 LeRobot SO-101 机械臂
  • Python中的函数和方法概要
  • 亚马逊运营中的流量破局与精细化运营路径
  • 【电路】-串并联的应用
  • 独家|阶跃星辰Tech Fellow段楠离职,任京东探索研究院视觉与多模态实验室负责人
  • 【doris】doris集成ranger控制权限,ranger配置无法存储doris密码password信息
  • 什么是分布式锁及分布式锁应用场景
  • GCC编译/连接/优化等选项
  • Solon框架模板漏洞深度剖析与修复实战
  • python格式化字符串的几种方式
  • mysql表备份数据,改表名
  • Ubuntu下使用PyTurboJPEG加速图像编解码
  • 【阿里巴巴 x 浙江大学】信息与交互设计 - 交互设计流程与要素
  • PDB Bank怎么下载小分子sdf(选择哪个)和复合物
  • Spring依赖注入的四种方式(面)
  • DC3靶机渗透
  • python计算生态库:18个常用标准库+第三方库
  • 杭州电商代运营公司排名前十