Dela via


Felet "Begäran avbröts i väntan på anslutning"

I den här artikeln beskrivs hur du åtgärdar ett timeout-scenario som inträffar när du försöker hämta en containeravbildning eller artefakt från Azure Container Registry.

Förutsättningar

  • Telnet-verktyget
  • Verktyget NetCat (nc)

Symptom

Du får följande felmeddelande:

Hämta "https://< container-registry-name.azurecr.io/v2/>": net/http: begäran avbröts i väntan på anslutning (Client.Timeout överskreds i väntan på rubriker)

Orsak 1: Port 443 är inte tillgänglig på inloggningsservern

Autentiserings- och registerhanteringsåtgärder hanteras via registrets offentliga inloggningsserver, men kommunikationen via port 443 fungerar inte korrekt.

Kommentar

Azure Container Registry-inloggningsservern kallas även register-REST API-slutpunkten. Den här inloggningsservern har ett domännamnsformat på <container-registry-name>.azurecr.io.

Om du vill testa anslutningen manuellt mellan enheten och Azure Container Registry-inloggningsservern på port 443 kör du kommandot telnet eller NetCat:

telnet <container-registry-name>.azurecr.io 443
nc -vz <container-registry-name>.azurecr.io 443

Lösning 1: Gör port 443 tillgänglig för kommunikation mellan enheten och inloggningsservern

Kontrollera att nätverksanslutningen finns mellan enheten och Azure Container Registry-inloggningsservern via port 443.

Om enheten ingår i en begränsad nätverksarkitektur kontrollerar du att den har nätverksanslutning med Azure Container Registry-inloggningsservern via port 443. Du kan överväga att kontrollera potentiella befintliga brandväggar, proxyservrar, åtkomstkontrollistor, internetleverantörsbegränsningar och så vidare.

Orsak 2: Kommunikationen blockeras av en NSG som är associerad med nätverkskortet eller undernätet för en virtuell dator

Om du använder en virtuell Azure-dator (VM) för att hämta från Azure Container Registry kan en nätverkssäkerhetsgrupp (NSG) blockera kommunikationen mellan enheten och inloggningsservern. Den blockerande NSG:n är associerad med nätverkskortet eller undernätet för den virtuella Azure-datorn.

Kör telnet- eller NetCat-kommandot som visas i Orsak 1. Om kommandots utdata visar att en timeout uppstod kontrollerar du om NSG-konfigurationen blockerar IP-adressen för lagringskontot. För att göra detta följer du stegen nedan:

  1. I Azure Portal söker du efter och väljer Network Watcher.

  2. I menyfönstret Network Watcher väljer du Nätverksdiagnostikverktyg>NSG-diagnostik.

  3. I Network Watcher | På sidan NSG-diagnostik fyller du i formuläret genom att följa anvisningarna i följande tabell.

    Fält Åtgärd
    Målresurstyp Välj Virtuell dator i listan.
    Virtuell dator Ange eller välj namnet på den virtuella Azure-datorn i listan.
    Protokoll Välj TCP i listan.
    Riktning Välj alternativet Utgående.
    Källtyp Välj IPv4-adress/CIDR i listan.
    IPv4-adress/CIDR Ange IP-adressen för den virtuella Azure-datorn.
    Mål-IP-adress Ange IP-adressen för Azure Container Registry.
    Målport Ange 443.
  4. Välj knappen Kör NSG-diagnostik.

  5. I rutan Resultat markerar du värdet för fältet Trafikstatus .

Fältet Trafikstatus kan ha värdet Tillåten eller Nekad. Statusen Nekad innebär att nätverkssäkerhetsgruppen blockerar trafiken mellan den virtuella Azure-datorn och Azure Container Registry. I det här fallet visas även namnet på den blockerande NSG:n i rutan Resultat . Leta reda på NSG-namnkolumnen i resultattabellen för raden där motsvarande värde för den tillämpade åtgärdskolumnen är Neka.

Lösning 2: Ändra NSG-konfigurationen för att tillåta anslutning mellan den virtuella datorn och Azure Container Registry

Gör ändringar på NSG-nivå så att anslutningen tillåts mellan den virtuella Azure-datorn och Azure Container Registry på port 443. Mer specifikt kontrollerar du att följande villkor är uppfyllda.

Villkor Mer information
Routningstabellen släpper inte trafik mot Azure Container Registry-inloggningsservern. Trafiken tas bort om nästa hopp är inställt på Ingen för en väg som är associerad med Azure Container Registry-inloggningsservern. Trafikdirigering i virtuella nätverk
Om routningstabellen skickar trafiken mot en virtuell installation, till exempel en brandvägg som är associerad med undernätet för virtuella Azure-datorer, kontrollerar du att brandväggen inte blockerar trafik till Azure Container Registry-inloggningsservern på port 443. Konfigurera regler för åtkomst till ett Azure-containerregister bakom en brandvägg

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.