407 agter die korporatiewe VPN-proxy: npm, Maven en VS Code
@APOS@n 407 beteken die proxy wil geloofsbriewe hê, nie dat die registry af is nie. Stel npm, Maven, VS Code en houers op en sluit interne gashere uit.
Die suksesvolle intranet-bladsy in die blaaier bewys net dat die proxy vir die blaaier werk, nie vir npm of Maven nie. Elke kliënt lees sy eie konfigurasie, en ’n netwerk wat net oor die VPN bereikbaar is, vra ’n tweede vraag: of die kliënt die proxy hoegenaamd kan bereik. Begin by die statuskode en volg dan die konfigurasieketting van die gereedskap wat gefaal het. Daarom werk een kliënt terwyl sy buurman faal.
Wat ’n 407 werklik bewys
’n 407 Proxy Authentication Required kom van die proxy, nie van die registry of die repository nie. Die kliënt het die proxy bereik, en die proxy het die versoek geweier, gewoonlik omdat geloofsbriewe ontbreek, verkeerd gevorm of vir daardie bestemming nie aanvaar nie.
’n Timeout vertel iets anders. Die kliënt het dalk die verkeerde proxy-adres, geen roete na die proxy voordat die tonnel staan nie, of ’n bypass-inskrywing wat vir ’n interne gasheer ontbreek. Lees die foutteks voordat jy geloofsbriewe verander.
Bevestig die proxy-gasheer, die poort, die stawingsmetode en of die gebruikersnaam ’n domeinvoorvoegsel nodig het. Kyk dan of die gereedskap wat faal die waarde uit ’n lêer, ’n omgewingsveranderlike of albei lees. ’n Domeingekwalifiseerde gebruikersnaam is ’n algemene oorsaak van 407. So ook ’n wagwoord wat met die verkeerde enkodering gestoor is.
npm lees sy eie konfigurasieketting
npm aanvaar die sleutels proxy en https-proxy in ’n .npmrc op gebruikers- of projekvlak. Sluit die skema in, want die waardes is URL’s, en enkodeer gereserveerde karakters in ’n wagwoord as URL sodat ’n at-teken die waarde nie verdeel nie.
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true
Gebruik npm config list om te sien watter lêer elke effektiewe waarde verskaf het. ’n Skel-uitvoer soos npm_config_proxy kan die lêer oorheers, en ’n .npmrc op projekvlak met ’n persoonlike wagwoord moet nooit ingedien word nie. Druk die bronpad sowel as die waarde.
Hou strict-ssl geaktiveer. ’n Proxy wat TLS inspekteer, kan die korperatiewe CA in die truststore vereis; om die verifikasie af te skakel om verby die fout te kom, verberg die werklike vertrouensprobleem.
Maven skei proxys van mirrors
Maven lees proxys en mirrors uit die gebruikersinstellings, nie uit die projek-pom nie. Sit netwerkspesifieke proxys en interne repository-mirrors in ~/.m2/settings.xml, en laat openbare repository-verklarings in die projek waar dit hoort.
Die proxy-blok het ’n id, ’n aktief-vlag, die protokol, die gasheer en poort, en ’n nonProxyHosts-inskrywing vir die interne repository nodig. Sit daardie velde in die gebruikersinstellings, nie in die projek-pom nie, sodat ’n netwerkverandering nie die bou vir die hele span herskryf nie. ’n Mirror-inskrywing is apart en wys Maven na die interne repository.
Voeg die interne repository by nonProxyHosts sodat Maven dit direk bereik. Sonder daardie inskrywing word die proxy ’n onnodige stop, en die fout lyk soos ’n repository-onderbreking. ’n Mirror-inskrywing wys na die interne repository; dit vervang nie die proxy-instelling nie.
Ontwikkelaars wat tussen netwerke beweeg, kan een instellingslêer per netwerk hou en die regte kopie kies wanneer die skel begin. Om een lêer by elke skuif met die hand te redigeer, is hoe ’n werkende skootrekenaar ’n ondersteuningskaartjie word.
VS Code en dev-houers het verskillende naamruimtes
VS Code lees http.proxy uit sy gebruikers- of werkruimte-instellings, insluitend die skema en poort. Dit dek die redigeerder se eie uitbreidings- en markplekversoeke, maar konfigureer nie outomaties ’n terminaal of ’n houer wat uit die redigeerder begin word nie. Kyk na die omvang van die instelling sowel as die waarde. ’n Werkruimte-instelling kan die gebruikersinstelling vir een projek oorheers.
’n Dev-houer het sy eie netwerk-naamruimte. Dit erf nie die gasheer se proxy-veranderlikes of die gasheer se VPN-roete nie, en daarom kan ’n markplek-oproep in die houer misluk terwyl dieselfde oproep op die gasheer werk.
Gee die houer daardie veranderlikes, of gee dit sy eie resolver en roete. Wanneer name daarbinne opgelos word maar die proxy nooit antwoord nie, is die ontbrekende deel gewoonlik die pad, nie die adres nie.
Bypass-lyste en voorrang van die omgewing
Voeg die VPN-gateway, interne registries en private DNS-agtervoegsels by die bypass-lys. As die kliënt die VPN-gateway deur die proxy probeer bereik voordat die tonnel bestaan, misluk die verbinding op ’n manier wat soos ’n proxy-onderbreking lyk. Toets daardie bypass met die tonnel af.
Omgewingsveranderlikes en lêers kan verskil. Voer die gereedskap se eie konfigurasie-uitvoer uit, nie die skel se een nie, en vergelyk die waardes wat dit rapporteer. ’n Dubbele veranderlike in kleinletters, ’n verouderde waarde in ’n ouer skel of ’n projeklêer kan almal wen teenoor die instelling wat jy pas gewysig het.
In CI gee jy die proxy as ’n geheime veranderlike deur en toets een pakketinstallering in dieselfde beeld. ’n 407 in ’n houer beteken dikwels dat die veranderlike daar eenvoudig afwesig is, terwyl die gasheer-skel dit het.
Teken die proxy-gasheer, die poort, die bypass-agtervoegsels en die lêer of veranderlike wat dit verskaf vir elke stuk gereedskap aan. Wanneer een kliënt 407 teruggee en ’n ander werk, maak daardie aantekening van vier verskillende konfigurasies ’n kort kontrole.