NAT 下代理最佳实践:HTTP(S)_PROXY/NO_PROXY

目标:在 NAT 模式下,把代理配置成可控、可回滚、不污染系统的状态。
核心策略:优先"按场景临时生效",再考虑"系统级永久生效"。


1) 先搞清楚三类代理场景

1.1 临时代理(推荐:最安全)

只对当前终端/当前命令生效,不会影响系统其他程序。

1.2 用户级代理(较常用)

写进 ~/.bashrc / ~/.zshrc,对该用户所有终端生效。

1.3 系统级代理(最强也最容易踩坑)

影响 apt、GUI、服务进程,配置错了会导致"全系统都上不了网"。

新手优先用临时代理,避免一把梭把系统搞崩。


2) 代理环境变量:你需要记住的 6 个名字

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY
  • http_proxy
  • https_proxy
  • no_proxy

经验建议:

  • 同时设置大写 + 小写(兼容更多程序)
  • NO_PROXY 一定要配好(否则本地/内网访问会被代理绕远甚至失败)

3) 临时代理(推荐):只对当前命令生效

3.1 只让这一次 curl 走代理

bash 复制代码
HTTPS_PROXY="http://127.0.0.1:7890" curl -I https://www.google.com

3.2 让这一次 apt update 走代理(常见)

bash 复制代码
sudo HTTPS_PROXY="http://127.0.0.1:7890" HTTP_PROXY="http://127.0.0.1:7890" apt update

这里 127.0.0.1:7890 只是示例:你的代理地址要以实际为准。


4) 会话级代理:对当前终端窗口生效(关闭窗口即失效)

bash 复制代码
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"

# NO_PROXY:本地/内网不走代理(非常重要)
export NO_PROXY="localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
export no_proxy="$NO_PROXY"

验证:

bash 复制代码
env | egrep -i 'proxy|http_proxy|https_proxy|no_proxy'

5) 用户级永久生效(可回滚):写到 shell 配置里

例如写到 ~/.bashrc 或 ~/.zshrc:

bash 复制代码
# Proxy (optional)
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export NO_PROXY="localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
export no_proxy="$NO_PROXY"

让配置生效:

bash 复制代码
source ~/.bashrc
# 或
source ~/.zshrc

回滚(注释掉那几行即可):

  • 在 rc 文件里删掉/注释 proxy 段
  • 新开终端或 source 一次

6) apt 专用代理(更稳):只影响 apt,不影响全系统

新建配置文件:

bash 复制代码
sudo tee /etc/apt/apt.conf.d/99proxy <<'EOF'
Acquire::http::Proxy "http://127.0.0.1:7890";
Acquire::https::Proxy "http://127.0.0.1:7890";
EOF

验证:

bash 复制代码
sudo apt update

取消(删除文件即可):

bash 复制代码
sudo rm -f /etc/apt/apt.conf.d/99proxy

7) NO_PROXY 怎么写更合理(通用模板)

推荐保留:

  • localhost,127.0.0.1,::1
  • 内网网段:10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

如果你有 Host-only 网段(例如 192.168.56.0/24),也加进去。


8) 代理排障:3 个最小验证命令

bash 复制代码
# 1) 解析是否正常
dig +short google.com

# 2) HTTPS 是否通(看状态码/握手)
curl -I https://www.google.com

# 3) apt 是否通(看是否超时/证书问题)
sudo apt update

相关推荐
迪康Defender39 分钟前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
网安小学生(兼顾数据库版)1 小时前
固件+软件供应链:ONEKEY+Mend如何实现全链路安全覆盖
网络·安全·web安全
学习中的码虫2 小时前
网络编程5
服务器·网络
GPU实战笔记2 小时前
本地跑不动 llama.cpp,临时租云 GPU 怎么搭?从启动服务到环境复用
java·服务器·网络·人工智能·深度学习·llama
发量惊人的中年网工3 小时前
2026年DDoS防护方案怎么选?从攻击响应、清洗位置到成本账单,解析全球高防方案
大数据·网络·安全·ddos
黄昏回响5 小时前
软件工程基础知识(五):软件测试详解(下篇)——现代测试实践与论文指导
网络·其他·软件工程·改行学it
万联WANFLOW6 小时前
网络排障:如何从延迟、丢包、带宽定位海外访问异常
网络·架构·业界资讯
zzzyyy5386 小时前
TCP 协议学习笔记:从报文格式到异常处理
linux·网络
心易行者7 小时前
Python在线运行+SQLite数据库实战:0成本搭个人数据后台,5个场景直接套用
前端·网络·人工智能·python
终端安全笔记7 小时前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机