Паводле дакументаванай палітыкі асяроддзевага проксі HttpClient, example.internal і .example.internal супадаюць па-рознаму. Голае імя выбірае бацькоўскі хост; форма з кропкай наперадзе выбірае яго паддамены.

Калі абодва павінны ісці напроста, уключыце абодва ў асяроддзе запуску:

export no_proxy='example.internal,.example.internal'

Аб'яднайце гэта з меркаваным існуючым спісам абыходу. На сістэмах, дзе імёны зменных адрозніваюць рэгістр, .NET спачатку правярае праксі-зменныя ў ніжнім рэгістры, а потым у верхнім, таму састарэлы no_proxy можа мець перавагу над NO_PROXY.

Усярэдзіне праграмы селектар па змаўчанні можна праверыць, не адпраўляючы HTTP-запыт да пункта прызначэння:

foreach (var host in new[] {
    "example.internal", "api.example.internal", "other.internal"
})
{
    var uri = new Uri("https://" + host + "/");
    Console.WriteLine($"{host}: bypass={HttpClient.DefaultProxy.IsBypassed(uri)}");
}

Фрагмент выкарыстоўвае System і System.Net.Http. Калі праграма відавочна падала іншы IWebProxy, правярайце фактычны проксі апрацоўшчыка. Задайце патрэбнае асяроддзе да ініцыялізацыі проксі па змаўчанні.

Гэта дакументаваныя правілы .NET. Вынік curl з той жа радком не даказвае, што іншы кліент выбраў той жа маршрут, а рашэнне аб абыходзе ўсё яшчэ патрабуе прамой сеткавай дасяжнасці.

Падобныя артыкулы