自托管的 Azure Pipelines 代理可以在根目录的 .proxybypass 文件中保存代理绕过规则。每一行都是一个 ECMAScript 正则表达式,用来与 URL 匹配。

例如,针对一个内部源主机的规则可以写成这样:

^https?://packages[.]internal[.]example(?::[0-9]+)?(?:/|$)

该表达式匹配该主机的 HTTP 或 HTTPS URL,端口为可选的数字。主机名之后的边界可避免同时匹配 packages.internal.example.other-domain 之类的更长名称。

这是代理安装目录中的文件,而不是随意放在源代码检出目录里的文件。它的语法也与以逗号分隔的 NO_PROXY 值不同。把 *.internal.example 这样的 shell 通配符复制到正则表达式字段里,并不能保留相同的含义。

然后确认是谁在下载包

代理内置的源和项目操作使用它自己的代理配置。任务可以通过任务库获取公开的代理信息,并应用到自己的 HTTP 客户端上。

调用外部 NuGet、dotnet 或 curl 进程的任务会引入另一个使用者。确认该任务如何把代理和绕过设置交给这个工具。代理规则正确,并不能证明每个独立的包客户端都读取了它。

在诊断记录中保留内部源 URL,包括协议和端口。用实际访问的 URL 测试该规则,然后检查负责该请求的任务或客户端配置。

相关文章