Konfigurera KDNET-nätverkskärnfelsökning manuellt
Felsökningsverktyg för Windows stöder kernelfelsökning i ett nätverk. I den här artikeln beskrivs hur du konfigurerar nätverksfelsökning manuellt.
Viktig
Att konfigurera en nätverksfelsökning manuellt är en komplex och felbenägen process. Information om hur du konfigurerar nätverksfelsökning automatiskt finns i Konfigurera KDNET-nätverkskärnfelsökning automatiskt. Användning av KDNET-verktyget rekommenderas starkt för alla felsökaranvändare.
Den dator som kör felsökningsprogrammet kallas värddatoroch datorn som debuggas kallas måldator. Värddatorn måste köra Windows 7 eller senare och måldatorn måste köra Windows 8 eller senare.
Felsökning över ett nätverk har följande fördelar jämfört med felsökning av andra typer av anslutningar.
- Värd- och måldatorerna kan finnas var som helst i det lokala nätverket.
- Det är enkelt att felsöka många måldatorer från en värddator.
- Med tanke på två datorer är det troligt att båda har Ethernet-kort. Det är mindre troligt att båda har serieportar eller 1394 portar.
- Nätverksfelsökningen går snabbare än felsökning av seriell port.
Nätverkskort som stöds
Värddatorn kan använda valfritt nätverkskort, men måldatorn måste använda ett nätverkskort som stöds av felsökningsverktyg för Windows. En lista över nätverkskort som stöds finns i Ethernet-nätverkskort som stöds för felsökning av nätverkskärnor i Windows 11 och Ethernet-nätverkskort som stöds för felsökning av nätverkskärnor i Windows 10.
Installera felsökningsverktyg för Windows
Bekräfta att felsökningsverktygen för Windows är installerade på värdsystemet. Information om hur du laddar ned och installerar felsökningsverktygen finns i Felsökningsverktyg för Windows.
Fastställa IP-adressen för värddatorn
Använd någon av följande procedurer för att fastställa IP-adressen för värddatorn.
Öppna en kommandotolk på värddatorn och ange följande kommando:
ipconfig
Anteckna IPv4-adressen för det nätverkskort som du tänker använda för felsökning.
På måldatorn öppnar du en kommandotolk och anger följande kommando, där YourIPAddress är IP-adressen för värddatorn:
ping -4 <YourIPAddress>
Välj en port för nätverksfelsökning
Välj ett portnummer för felsökning på både värd- och måldatorerna. Du kan välja valfritt tal mellan 49152 och 65535. Det rekommenderade intervallet är 50000–50039. Porten som du väljer öppnas för exklusiv åtkomst av felsökningsprogrammet som körs på värddatorn. Var noga med att välja ett portnummer som inte används av andra program som körs på värddatorn.
Not
Antalet portnummer som kan användas för nätverksfelsökning kan begränsas av företagets nätverksprincip. Det finns inget sätt att berätta för värddatorn vilka begränsningarna är. Om du vill ta reda på om företagets princip begränsar det antal portar som kan användas för nätverksfelsökning kontrollerar du med nätverksadministratörerna.
Om du ansluter flera måldatorer till en enda värddator måste varje anslutning ha ett unikt portnummer. Om du till exempel ansluter 100 måldatorer till en enda värddator kan du tilldela port 50000 till den första anslutningen, port 50001 till den andra anslutningen och så vidare.
Obs
En annan värddator kan använda samma portintervall (50000 till 50099) för att ansluta till ytterligare 100 måldatorer.
Konfigurera måldatorn
Kontrollera att måldatorn har ett nätverkskort som stöds. Mer information finns i:
Anslut adaptern som stöds till en nätverkshubb eller växel med hjälp av en lämplig nätverkskabel.
Viktig
Innan du använder BCDEdit för att ändra startinformationen kan du tillfälligt behöva pausa Windows-säkerhetsfunktioner, till exempel BitLocker och Säker start, på testdatorn. Återaktivera dessa säkerhetsfunktioner när testningen är klar och hantera testdatorn på rätt sätt när säkerhetsfunktionerna är inaktiverade.
I en upphöjd kommandotolk anger du följande kommandon, där w.x.y.z är IP-adressen för värddatorn och n är ett valfritt portnummer:
bcdedit /debug on bcdedit /dbgsettings net hostip:w.x.y.z port:n
BCDEdit visar en automatiskt genererad nyckel. Kopiera nyckeln och lagra den på en flyttbar lagringsenhet, till exempel ett USB-minne. Du behöver nyckeln när du startar en felsökningssession på värddatorn.
Använd Enhetshanteraren för att fastställa PCI-buss-, enhets- och funktionsnummer för det kort som du vill använda för felsökning. Dessa värden visas i Enhetshanteraren under Plats på fliken Allmänt. I en upphöjd kommandotolk anger du sedan följande kommando, där b, doch f är bussnummer, enhetsnummer och funktionsnummer för adaptern:
bcdedit /set "{dbgsettings}" busparams b.d.f
Måldatorn startas om efter att ett kernelfelsökare har anslutits.
Notera
Om du tänker installera Hyper-V-rollen på måldatorn kan du se Konfigurera nätverksfelsökning för en virtuell datorvärd.
Varning Om måldatorn är i en dockningsstation och nätverksfelsökning är aktiverad för ett nätverkskort som ingår i dockningsstationen ska du inte ta bort datorn från dockningsstationen. Om du behöver ta bort måldatorn från dockningsstationen inaktiverar du kernelfelsökning först. Om du vill inaktivera kernelfelsökning på måldatorn öppnar du en kommandotolk som administratör och anger kommandot bcdedit /debug off
. Starta om måldatorn.
Starta felsökningssessionen
Bekräfta att värddatorns nätverkskort är anslutet till en nätverkshubb eller växla med hjälp av en lämplig nätverkskabel.
Öppna WinDbg på värddatorn. På menyn Arkiv väljer du Kernel Debug. I dialogrutan Kernel-felsökning öppnar du fliken Net. Ange portnummer och nyckel. Välj OK.
Du kan också starta en session med WinDbg genom att öppna en kommandotolk och ange följande kommando, där n är ditt portnummer och MyKey är nyckeln som genererades automatiskt av BCDEdit när du konfigurerade måldatorn:
windbg -k net:port=<n>,key=<MyKey>
Om du uppmanas att tillåta WinDbg att komma åt porten via brandväggen tillåter du att WinDbg får åtkomst till porten för alla tre av de olika nätverkstyperna.
Använd KD
Öppna en kommandotolk på värddatorn. Ange följande kommando, där n är ditt portnummer och MyKey är nyckeln som genererades automatiskt av BCDEdit när du konfigurerade måldatorn:
kd -k net:port=<n>,key=<MyKey>
Om du uppmanas att tillåta WinDbg att komma åt porten via brandväggen kan du tillåta WinDbg att komma åt porten för alla tre av de olika nätverkstyperna.
Starta om måldatorn
När felsökningsprogrammet är anslutet och väntar på att ansluta startar du om måldatorn. Ett sätt att starta om datorn är att använda det här kommandot från en administratörs kommandotolk:
shutdown -r -t 0
När målet startas om bör felsökaren i värdoperativsystemet ansluta.
När du har anslutit till målet på värden trycker du på break on your debugger (Felsökaren) och du kan börja felsöka.
Tillåt felsökningsprogrammet via brandväggen
När du först försöker upprätta en nätverksfelsökningsanslutning kan du uppmanas att tillåta felsökningsprogrammet (WinDbg eller KD) åtkomst via brandväggen. Klientversioner av Windows visar kommandotolken, men serverversioner av Windows visar inte kommandotolken. Du bör svara på uppmaningen genom att markera rutorna för alla tre nätverkstyper: domän, privat och offentlig.
Om du inte får kommandotolken eller om du inte kryssade i rutorna när uppmaningen var tillgänglig måste du använda Kontrollpanelen för att tillåta åtkomst via brandväggen på den värddator där felsökningsprogrammet körs. Öppna Kontrollpanelen > System och säkerhet och välj Tillåt en app via Windows-brandväggen.
(WinDbg) I listan över program letar du upp WinDbg-motorprocess (TCP) (alla).
(Klassisk WinDbg) I listan över program letar du upp Windows GUI-felsökningsprogrammet och Windows Kernel-felsökningsprogrammet.
Använd kryssrutorna för att tillåta dessa program via brandväggen. Starta om felsökningsprogrammet (WinDbg eller KD).
Krypteringsnyckel
För att hålla måldatorerna säkra måste paket som skickas mellan värd- och måldatorerna krypteras. Du bör använda en automatiskt genererad krypteringsnyckel (tillhandahålls av BCDEdit när du konfigurerar måldatorn). Att använda en automatiskt genererad krypteringsnyckel rekommenderas eftersom den är säkrare och ger ett unikt värde som används för att upprätta anslutningen till ett specifikt mål.
Nätverksfelsökning använder en 256-bitarsnyckel som anges som fyra 64-bitarsvärden, i bas 36, avgränsade med perioder. Varje 64-bitarsvärde anges med upp till 13 tecken. Giltiga tecken är bokstäverna en genom z och siffrorna 0 till och med 9. Specialtecken tillåts inte.
Om du vill ange din egen nyckel öppnar du en upphöjd kommandotolk på måldatorn. Ange följande kommando, där w.x.y.z
är IP-adressen för värddatorn, n är ditt portnummer och Nyckel är din nyckel:
bcdedit /dbgsettings net hostip:w.x.y.z port:n key:Key
Måldatorn måste startas om när dbgsettings ändras.
Felsökningstips
Felsökningsprogrammet måste tillåtas via brandväggar
När du först försöker upprätta en nätverksfelsökningsanslutning kan du uppmanas att tillåta felsökningsprogrammet (WinDbg eller KD) åtkomst via brandväggen. Klientversioner av Windows visar kommandotolken, men serverversioner av Windows visar inte kommandotolken. Du bör svara på uppmaningen genom att markera rutorna för alla tre nätverkstyper: domän, privat och offentlig.
Om du inte får kommandotolken eller om du inte kryssade i rutorna när uppmaningen var tillgänglig måste du använda Kontrollpanelen för att tillåta åtkomst via brandväggen. Öppna Kontrollpanelen > System och säkerhet och välj Tillåt en app via Windows-brandväggen.
(WinDbg) I listan över program letar du upp WinDbg-motorprocess (TCP) (alla).
(WinDbg (klassisk)) I listan över program letar du upp Windows GUI-symbolfelsökaren och Windows Kernel-felsökaren.
Använd kryssrutorna för att tillåta dessa program via brandväggen. Rulla nedåt och välj OK för att spara brandväggsändringarna. Starta om felsökningsprogrammet.
Portnumret måste vara inom det intervall som tillåts av nätverksprincipen
Antalet portnummer som kan användas för nätverksfelsökning kan begränsas av företagets nätverksprincip. Om du vill ta reda på om företagets princip begränsar det antal portar som kan användas för nätverksfelsökning kontrollerar du med nätverksadministratören. Öppna en kommandotolk som administratör på måldatorn och ange kommandot bcdedit /dbgsettings
. Utdata kommer att likna följande:
C:\> bcdedit /dbgsettings
key XXXXXX.XXXXX.XXXXX.XXXXX
debugtype NET
hostip 169.168.1.1
port 50085
dhcp Yes
The operation completed successfully.
I föregående utdata är värdet för porten 50085. Om värdet för porten ligger utanför det intervall som nätverksadministratören tillåter anger du följande kommando. Värdet w.x.y.z är värddatorns IP-adress och DittDebugPort är ett portnummer i det tillåtna spannet.
bcdedit /dbgsettings net hostip:w.x.y.z port:YourDebugPort
När du har ändrat inställningarna för måldatorns felsökning kör du felsökaren igen på värddatorn med den nya portinställningen och startar sedan om måldatorn.
Använda ping för att testa anslutningen
Om felsökaren inte ansluter använder du ping-kommandot på måldatorn för att verifiera anslutningen.
C:\>Ping <HostComputerIPAddress>
Anteckning
Detta kanske inte fungerar om värddatorn inte är konfigurerad för att identifieras i nätverket eftersom brandväggen kan blockera ping-begäranden. Om brandväggen blockerar pingbegäranden kommer du inte att få några svar när du pingar enheten.
Så här hämtar felsökningsprogrammet en IP-adress för måldatorn
KDNET på måldatorn försöker använda DHCP (Dynamic Host Configuration Protocol) för att hämta en dirigerbar IP-adress för nätverkskortet som används för felsökning. Om KDNET hämtar en DHCP-tilldelad adress kan måldatorn debuggas av värddatorer som finns var som helst i nätverket. Om KDNET inte hämtar en DHCP-tilldelad adress använder det APIPA (Automatic Private IP Address) för att hämta en LOKAL länk-IP-adress. IP-adresser för lokal länk kan inte dirigeras, så en värd och ett mål kan inte använda en lokal länk-IP-adress för att kommunicera via en router. I så fall fungerar nätverksfelsökning om du ansluter värddatorn och måldatorn till samma nätverkshubb eller switch.
Ange alltid busparams när du ställer in KDNET på en fysisk maskin med ett PCI-baserat nätverkskort
Om du konfigurerar KDNET på en fysisk dator med ett PCI- eller PCIe-baserat nätverkskort bör du alltid ange bussparams för det nätverkskort som du vill använda för KDNET. Om du vill ange bussparametrarna öppnar du Enhetshanteraren och letar upp det nätverkskort som du vill använda för felsökning. Öppna egenskapssidan för nätverkskortet och anteckna bussnummer, enhetsnummer och funktionsnummer som visas under Plats på fliken Allmänt. I en upphöjd kommandotolk anger du följande kommando, där b, doch f är buss-, enhets- och funktionsnumren i decimalformat:
bcdedit /set "{dbgsettings}" busparams b.d.f
När felsökningsprogrammet körs på värddatorn och väntar på att ansluta startar du om måldatorn med följande kommando:
shutdown -r -t 0
Ta bort BCDEdit-poster manuellt
Manuellt borttagning krävs normalt inte men tillhandahålls här som en felsökningsprocedur för ovanliga situationer.
Det är inte nödvändigt att ta bort poster manuellt när du använder kdnet-verktyget. Mer information finns i Konfigurera KDNET-nätverkskärnfelsökning automatiskt.
När du använder bcdedit –deletevalue
måste du ange ett giltigt bcd-elementnamn. Mer information finns i BCDEdit /deletevalue.
Om du vill ta bort bcdedit-poster manuellt utför du följande steg:
Öppna en kommandotolk som administratör på måldatorn.
Ange till exempel följande kommando för att ta bort BCDEdit-felsökningsposten för värdens IP-adress:
bcdedit -deletevalue {dbgsettings} hostip
När du tar bort värd-ip-adressen måste du ange target= på kommandoraden för felsökningsprogrammet.
Som ett annat exempel tar du bort portposten med hjälp av följande kommando:
bcdedit -deletevalue {dbgsettings} port
När du tar bort portinmatningen använder KDNET den ICANN-registrerade standardfelsökningsporten nummer 5364.
Konfigurera Hyper-V
Om du tänker installera Hyper-V-rollen på måldatorn kan du läsa Konfigurera nätverksfelsökning för en virtuell värddator.
Information om hur du felsöker en Hyper-V virtuell dator (VM) finns i Konfigurera nätverksfelsökning av en virtuell dator – KDNET.
Aktivera KDNET på en Hyper-V värd som kör virtuella datorer med extern nätverksanslutning
Ibland uppstår en situation som gör att nätverk på virtuella datorer slutar fungera:
Hyper-V har aktiverats på datorn har en extern nätverksväxel skapats och pekar på ett fysiskt nätverkskort på datorn och virtuella datorer har konfigurerats för att använda den externa växeln för sina nätverk.
KDNET aktiveras sedan på Hyper-V värdoperativsystem med samma fysiska nätverkskort som pekas på av den externa nätverksväxeln. Värden startas om.
Alla virtuella datorer som använde den tidigare konfigurerade externa växeln förlorar sin nätverksanslutning efter omstarten.
Det här stoppet sker avsiktligt och beror på att KDNET tar exklusiv kontroll över det nätverkskort som det är konfigurerat att använda. Den interna NDIS-miniporten för det nätverkskortet läses inte in av operativsystemet. Den externa nätverksväxeln kan sedan inte längre kommunicera med den interna NDIS-miniportdrivrutinen och slutar fungera. Gör följande för att kringgå den här situationen:
Öppna Virtual Switch Manager från Hyper-V Manager och välj din befintliga virtuella växel. Ändra det externa nätverkskortet till Microsoft Kernel Debug Network Adapter genom att välja det i listrutan och sedan välja OK i dialogrutan Hanteraren för virtuell växel.
När du har uppdaterat nätverkskortet för virtuell växel stänger du av och startar om dina virtuella datorer.
När KDNET-felsökning är avstängd måste samma procedur följas för att rikta om den externa växeln tillbaka till den ursprungliga NDIS-miniporten för nätverkskortet. I annat fall går anslutningen till den virtuella datorn förlorad när datorn startas om efter att felsökningen har inaktiverats.
IPv6
IPv6-stöd lades till i Windows version 1809.
Utför följande steg för att använda IPv6 med felsökningsprogrammet:
Pinga ditt <felsökvärdnamn> och notera IPv6-adressen som rapporteras i svaret från utdata. Använd den här IPv6-adressen i stället för
x:y:z:p:d:q:r:n
.Använd BCDEdit för att ta bort befintliga IP-adressvärden i dbgsettings.
bcdedit -deletevalue {dbgsettings} hostip
Ställ in hostens IPv6-adress. Det får inte finnas några blanksteg i
hostipv6=s:t:u:v:w:x:y:z
strängen. <YourPort> är det nätverksportnummer som ska användas för den här måldatorn. <YourKey> är säkerhetsnyckeln i fyra delar. <b.d.f> är platsnumren för bussenhetens funktion för det nätverkskort som du vill använda för KDNET.bcdedit /dbgsettings net hostipv6:s:t:u:v:w:x:y:z port:<YourPort> key:<YourKey> busparams:<b.d.f>
Skriv det här kommandot för att bekräfta att dbgsettings har angetts korrekt.
C:\> bcdedit /dbgsettings busparams 0.25.0 key 2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p debugtype NET hostipv6 2001:db8:0:0:ff00:0:42:8329 port 50010 dhcp Yes The operation completed successfully.
På värddatorn använder du följande kommando för att starta felsökningsprogrammet:
Windbg -k net:port=<yournetworkportnumber>,key=<key_output_from_kdnet>,target=::<YourIPv6Address>
Starta om måldatorn när felsökningsprogrammet körs på värddatorn och väntar på att ansluta.
Felsökningsprogrammet bör ansluta till värdfelsökaren tidigt under starten. Du kan se att KDNET använder en IPv6-anslutning eftersom IP-adresserna som rapporteras i det anslutna meddelandet är IPv6-adresser i stället för IPv4-adresser.
Anteckningar
Varje bcd-inställning för felsökningsprogram som gör att
hostip
kan anges har ett motsvarandehostipv6
element. Det finns tre.IPv4 IPv6 Användning värd-IP-adress hostipv6 För start- och kernelfelsökning targethostip targethostipv6 Specifikt för kernel-felsökning hypervisorhostip hypervisorhostipv6 För hyper-v-felsökning Om du anger
hostipv6
formatadress för någon av dessa typer av felsökning innebär det att du vill ha och får IPv6.Om du anger
hostip
formatadress för någon av dessa typer av felsökning innebär det att du vill ha och får IPv4.Målenheten stöder bara IPv4 eller IPv6, inte båda samtidigt. Den version av IP-protokollet som används styrs av måldatorns dbgsettings. Om
hostip
anges använder målet IPv4. Omhostipv6
anges använder målet IPv6.Värdfelsökaren väljer normalt automatiskt användningen av IPv4 eller IPv6. Som standard lyssnar felsökningsprogrammet på både en IPv4-socket och en IPv6-socket och ansluter automatiskt på någon av dem till måldatorn.
Om du vill framtvinga användningen av IPv6 i felsökningsprogrammet på värddatorn, men önskar att felsökningsprogrammet ska lyssna efter en anslutning från måldatorn, kan du lägga till
target=::
till kommandoraden för felsökningsprogrammet.::
är en IPv6-adress på 0.Om du vill tvinga IPv4-felsökning i felsökningsprogrammet på värden, men du vill att felsökaren ska lyssna efter en anslutning från målet, kan du lägga till
target=0.0.0.0
till kommandoraden för felsökningsprogrammet.0.0.0.0
är en IPv4-adress på 0.Om du anger
target=
på kommandoraden för felsökningsprogrammet och använder ett datornamn konverterar felsökningsprogrammet datornamnet till en IPv4-adress och en IPv6-adress. Felsökningsprogrammet försöker sedan ansluta på båda.När du anger
target=
på kommandoraden för felsökningsprogrammet och använder en IP-adress, om IP-adressen innehåller någon : tecken, förutsätter felsökningsprogrammet att det är en IPv6-adress och tvingar användningen av IPv6 för den anslutningen. Om IP-adressen innehåller någon . tecken förutsätter felsökningsprogrammet att det är en IPv4-adress och tvingar användningen av IPv4 för den anslutningen.Om du konfigurerar IPv6 på målet och framtvingar användning av IPv4 på kommandoraden för felsökningsprogrammet får du ingen anslutning.
Om du konfigurerar IPv4 på målet och framtvingar användning av IPv6 på kommandoraden för felsökningsprogrammet får du inte heller någon anslutning.