在 CentOS 上使用 Postman 的代理设置
一 方式总览与优先级
- 在 Postman 桌面应用中可通过三种方式控制代理:
- 系统代理:遵循操作系统的代理配置(含环境变量 HTTP_PROXY/HTTPS_PROXY/NO_PROXY);
- 自定义全局代理:在 Postman 内手动指定代理主机、端口、认证与不走代理的地址;
- 内置代理用于抓包:将 Postman 作为中间人捕获其他设备或本机应用的流量(与“发送请求走代理”不同)。
- 优先级规则:自定义全局代理 > 系统代理;当两者都开启时,Postman 使用自定义代理。内置代理仅用于流量捕获,不会替代发送请求的代理配置。
二 在 Postman 内配置
- 打开 Postman → 右上角齿轮 → Settings → Proxy。
- 使用系统代理:
- 开启 Use system proxy;
- 按需勾选 Use environment variables (HTTP_PROXY/HTTPS_PROXY/NO_PROXY);
- 如需认证,在 Default Proxy Configuration 中勾选 This proxy requires authentication 并填写用户名与密码。
- 使用自定义代理:
- 勾选 Add custom proxy configuration;
- 在 Proxy type 勾选 HTTP/HTTPS;
- 填写 Proxy Server(主机或 IP,不要带协议)与 Port;
- 需要认证时开启 Proxy Auth 并填写凭据;
- 在 Proxy Bypass 填写以逗号分隔的主机/网段(如 localhost,127.0.0.1),这些地址将直连不走代理。
- 注意:若同时开启“系统代理”和“自定义代理”,Postman 以自定义代理为准。
三 在 CentOS 上配置系统代理供 Postman 使用
- 为当前会话或全局设置环境变量(示例为 HTTP 代理,端口 8080;请替换为你的代理地址与端口):
- 当前会话:
- export http_proxy=http://proxy.company.com:8080
- export https_proxy=http://proxy.company.com:8080
- export no_proxy=localhost,127.0.0.1,.company.com
- 永久生效(所有用户):编辑 /etc/profile.d/proxy.sh
- sudo tee /etc/profile.d/proxy.sh <<‘EOF’
export http_proxy=http://proxy.company.com:8080
export https_proxy=http://proxy.company.com:8080
export no_proxy=localhost,127.0.0.1,.company.com
EOF
- source /etc/profile.d/proxy.sh
- 验证:echo $http_proxy $https_proxy $no_proxy。
- 说明:Postman 的 Use system proxy 会读取上述环境变量;若只想让 Postman 走代理,可仅为其单独设置环境变量后启动 Postman(见下一节)。
四 常见问题与排查
- 已配置仍不通:在 Postman → Settings → Proxy 中关闭 Use system proxy,仅保留 Add custom proxy configuration 并核对主机、端口与认证信息。
- 环境变量干扰:若设置了 HTTP_PROXY/HTTPS_PROXY/NO_PROXY,Postman 可能仍走系统代理;可在启动脚本中临时清空这些变量后再启动 Postman(见下一节脚本示例)。
- 本地服务访问被代理:在 Proxy Bypass 中加入 localhost,127.0.0.1 等地址,避免被代理转发。
- 需要代理认证:在 Default Proxy Configuration 勾选 This proxy requires authentication 并填写凭据,或在环境变量中使用 http://USER:PASS@host:port 形式。
- 区分功能:内置 Web 代理/Interceptor 用于捕获流量,不等同于“发送请求走代理”的配置。
五 附 启动脚本示例
- 仅让 Postman 使用代理启动(临时覆盖环境变量):
- 新建脚本 /usr/local/bin/postman-proxy.sh
- sudo tee /usr/local/bin/postman-proxy.sh <<‘EOF’
#!/usr/bin/env bash
export http_proxy=http://USER:PASS@proxy.company.com:8080
export https_proxy=http://USER:PASS@proxy.company.com:8080
export no_proxy=localhost,127.0.0.1,.company.com
exec /opt/Postman/Postman “$@”
EOF
- chmod +x /usr/local/bin/postman-proxy.sh
- 之后通过命令启动:postman-proxy.sh
- 无代理启动(清空变量后再启动 Postman):
- 新建脚本 /usr/local/bin/postman-noproxy.sh
- sudo tee /usr/local/bin/postman-noproxy.sh <<‘EOF’
#!/usr/bin/env bash
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
exec /opt/Postman/Postman “$@”
EOF
- chmod +x /usr/local/bin/postman-noproxy.sh
- 之后通过命令启动:postman-noproxy.sh
- 提示:请将示例中的 USER/PASS、proxy.company.com:8080 与 /opt/Postman/Postman 路径替换为你的实际值。