curl NO_PROXY 的域名与 IP 地址规则
检查 curl 的目标绕过规则,包括字面 IP、域名后缀、CIDR 网段、空列表和匹配所有主机的通配符。
NO_PROXY 描述应直接访问的目标,并非列出要避开的代理服务器。把所选代理自身的 IP 加入列表,不能用来决定无关网站是否使用该代理。
| 条目 | 在 curl 中的含义 |
|---|---|
example.com | 该域名及匹配的子域名绕过代理。 |
.example.com | 按域名后缀排除,也包括域名本身。 |
192.168.1.10 | 以字面 IP 作为目标且匹配时,绕过代理。 |
192.168.0.0/16 | 匹配的字面 IP 目标绕过代理;CIDR 支持要求 curl 7.86.0 或更新版本。 |
* | 所有目标都绕过代理。 |
空列表与星号不同
进行一次明确的代理测试时,空的命令行列表会清除来自环境的绕过匹配:
curl --proxy http://203.0.113.10:8080 --noproxy '' \
--connect-timeout 5 --max-time 15 https://example.com/
把文档示例端点换成你的 HTTP 代理,或HTTP 代理列表中的候选项。若要反向对比,带引号的通配符会使请求直连,即使仍指定了代理选项:
curl --proxy http://203.0.113.10:8080 --noproxy '*' \
--connect-timeout 5 --max-time 15 https://example.com/
保留通配符外的引号,避免 shell 将它展开成文件名。取消环境变量、将其设为空值以及通过命令行覆盖是不同的操作;只移除一处定义后,其他适用设置可能仍然存在。
CIDR 并非针对所有解析到某网段的主机名的规则
CIDR 条目与用作目标主机的 IP 地址匹配。它不是一条通用指令,不会先解析每个主机名,再在结果落入该网段时绕过代理。因此,使用主机名的 URL 与使用其数字地址的 URL 可能选择不同路线。
URL 包含主机名或域名后缀时,应按这些内容设置规则。不要把完整协议方案、路径或浏览器绕过表达式放进此列表,并假设 curl 会作相同解释。
这些规则描述 curl 8.14.1。其他客户端有各自的 NO_PROXY 行为,通配符和端口匹配也可能不同。