` med den faktiska IP. Exempel:`Värd 192.168.1.100`
* `ip.addr ==`: Samma som ovan men ibland mer pålitliga.
* `tcp.port ==`: Filtrera med ett specifikt TCP -portnummer (t.ex. 80 för HTTP, 443 för HTTPS, 22 för SSH). Exempel:`tcp.port ==80`
* `TCP.Stream EQ `: Filtrera med ett specifikt TCP -strömnummer. Du kan hitta strömnumret i paketinformationen. Detta är användbart för att isolera en enda TCP -anslutning.
Dessa initiala filter hjälper till att minska den fångade trafiken till de relevanta paketen, vilket gör analysen enklare.
3. Analysera anslutningsföretag (trevägs handskakning):
* Filter för synpaket: `tcp.flags.syn ==1 och tcp.flags.ack ==0` (Detta visar synpaket utan ACK -flaggan.)
* Leta efter Syn/ACK -paket: `tcp.flags.syn ==1 och tcp.flags.ack ==1 '(detta visar synpaket som också har ACK -flaggan inställd.)
* Leta efter ACK -paket (den sista delen av handskakningen): `tcp.flags.ack ==1 och tcp.flags.syn ==0` (Detta visar ACK -paket utan synflagguppsättningen.)
felsökning baserat på detta:
* saknad syn: Om du inte ser ett synpaket från klienten kanske klienten inte kan nå servern (routingproblem, brandväggsblockering).
* saknas syn/ack: Om klienten skickar en SYN men inte får en SYN/ACK kan servern vara nere, oåtkomlig eller avvisa anslutningen (brandvägg).
* saknad ACK: Om klienten får en SYN/ACK men inte skickar den slutliga ACK, kan det vara problem med klientens nätverkskonfiguration, routing eller brandvägg.
* Omfördelade synpaket: Klienten skickar synpaket flera gånger, vilket kan indikera ett problem på sökvägen till servern som förhindrar att den första Syn når servern.
4. Analysera ENSKRIVNINGSFRÅGOR:
* Filter för finpaket: `tcp.flags.fin ==1`
* Filter för RST -paket: `tcp.flags.reset ==1`
felsökning baserat på detta:
* Fin Exchange: En graciös nära involverar ett finpaket från ena sidan, en ACK för den fenan, en fen från andra sidan och en ACK för den fenan. Om denna sekvens är ofullständig avbröt något stängningsprocessen.
* första paket: Ett första paket indikerar en plötslig uppsägning. Leta efter orsaken till det första. Möjliga orsaker:
* Port stängd: Klienten eller servern skickade data till en port som inte längre lyssnade.
* Anslutning vägrade: Servern vägrade anslutningen.
* oväntade data: En sida fick data som den inte förväntade sig.
* brandvägg: En brandvägg kan vara tvångsstängande anslutningen.
5. Analysera problem med dataöverföring (efter handskakning):
* `TCP.Analysis.Retransmission`: Detta filter är ett snabbt sätt att identifiera TCP -överföringar. Högt antal vidarebefordringar indikerar paketförlust, nätverkstoppning eller andra nätverksproblem.
* `tcp.analysis.duplicate_ack`: Detta filter identifierar duplikat ACK -paket, som kan uppstå på grund av paketförlust. Avsändaren retransmits ett paket, och mottagaren ACKS originalet och det vidarebefordrade paketet, vilket skapar en duplikat ACK.
* `tcp.flags.push ==1`: Filtrera för paket med PSH -flagguppsättningen. Detta indikerar att avsändaren driver data snabbt. Även om det vanligtvis inte är ett * problem * i sig, kan det vara användbart för att förstå dataflödet.
6. Avancerad filtrering med `tcp.flags`
* Kombinera flaggor: Du kan kombinera flaggor med `&&` (och) och `||` (eller). Till exempel:`tcp.flags.syn ==1 &&tcp.flags.reset ==1` (paket med både syn- och första flaggor - mycket ovanliga, kan indikera en attack).
* kontroll för * vilken flagguppsättning som helst: `TCP.FLAGS> 0` - Visa alla paket med * alla * TCP -flagguppsättningar. Detta kan vara användbart för att få en allmän översikt.
Exempelsscenarier
* Webbplats som inte laddas:
1. Filtrera efter webbplatsens IP -adress (`HOST `).
2. Kontrollera om trevägshandskakningen. Om SYN eller SYN/ACK saknas, undersöka nätverksanslutning eller serverns status.
3. Om handskakningen är klar, leta efter HTTP få förfrågningar och serverns svar. Finns det tillägg? Skickar servern tillbaka fel (t.ex. HTTP 500 -fel)?
4. Leta efter RST -paket som kan stänga anslutningen för tidigt.
* ssh -anslutning misslyckas:
1. Filter efter port 22 (`tcp.port ==22`).
2. Kontrollera om trevägshandskakningen.
3. Leta efter SSH -protokollmeddelanden. Om handskakningen är klar men SSH -klienten och servern inte utbyter data kan det finnas ett problem med SSH -autentisering eller konfiguration.
4. Leta efter RST -paket. Ett återställningspaket är ofta ett tecken på misslyckad autentisering eller ett problem med SSH -servern.
* långsam filöverföring
1. Filtrera för IP:erna för klienten och servern som gör överföringen.
2. Leta efter `TCP.Analysis.Retransmission '. Högt antal vidarebefordringar indikerar paketförlust, nätverkstoppning eller andra nätverksproblem.
3. Leta efter `tcp.window_size ==0`. En nollfönsterstorlek indikerar att mottagaren är överväldigad och inte kan acceptera mer data. Avsändaren måste pausa överföringen.
Nyckeltips
* Tidssekvensgraf: Använd Wiresharks "Statistik -> TCP Stream Graph -> Time -Sequence Graph (Stevens)" för att visualisera TCP -anslutningsflödet och snabbt identifiera vidarebefordringar, luckor och andra avvikelser.
* Expertinfo: Var uppmärksam på "Expertinfo" -fönstret längst ner i Wireshark. Det belyser ofta potentiella problem.
* Högerklicka och följ TCP-ström: Högerklicka på ett TCP -paket och att välja "Följ -> TCP -ström" är ett bra sätt att isolera en enda TCP -anslutning och se alla paket i den anslutningen i följd.
* Lär dig TCP -protokollet: En solid förståelse av TCP-protokollet (särskilt trevägshandskakningen och anslutningen av anslutning) är avgörande för effektiv felsökning.
Genom att behärska användningen av `TCP.Flags 'och dessa felsökningstekniker kan du avsevärt förbättra din förmåga att diagnostisera och lösa nätverksproblem med Wireshark. Kom ihåg att kombinera denna information med andra nätverksövervakningsverktyg och serverloggar för en omfattande bild av problemet.