GNU/Linux >> Znalost Linux >  >> Linux

Odstraňování problémů se sítí Linux a ladění?

Uživatelé Linuxu a Unixu se čas od času potýkali s různými problémy se sítí. Mnoho z těchto problémů je uvedeno zde a na některých dalších fórech pro řešení problémů, ale jsou velmi konkrétní a obsahují mnoho dalších technických informací a někdy je poměrně obtížné pochopit hlavní bod a skutečný důvod chybného chování systému.

Položením této otázky je mým záměrem založit komunitní wiki stránku, která umožňuje zobecnit naše zkušenosti s řešením problémů se sítí a laděním. Doufám, že uživatelé Linuxu a Unixu mohou pomocí této stránky snáze rozpoznat a vyřešit („rozděl a panuj“) své síťové problémy.

Nadřazená stránka této stránky by měla být osvědčeným postupem pro diagnostiku problémů. Zde bychom se však měli zaměřit na odstraňování problémů se sítí z uživatelského a jaderného prostoru.

Předpokládám, že pokud:

  1. Sdílejte informace o používání skvělého nástroje pro diagnostiku sítě s konkrétními příklady použití a příklady síťových chyb, které pomáhají zachytit.
  2. Sdílejte odkaz na skvělý síťový tutoriál související s tímto tématem
  3. Řekněte si o obecné metodě nebo receptu, který umožňuje řešit určité problémy se sítí
  4. Sdílejte informace o své sadě nástrojů pro ladění sítě a odstraňování problémů

dokonale by se to hodilo k tomuto tématu.

Začnu sdílením odkazu na diagnostické nástroje varios a 12 let starý jednoduchý návod. Zdá se, že také výukový program archlinux obsahuje aktuální informace o našem předmětu. A abychom se mohli ponořit do linuxových sítí, rozhodně musíme navštívit Linux Networking-HOWTO.

Přijatá odpověď:

Myslím, že obecné principy řešení problémů se sítí jsou:

  1. Zjistěte, na jaké úrovni zásobníku TCP/IP (nebo jiného zásobníku) dochází k problému.
  2. Pochopte, co je správné chování systému a co je odchylka od normálního stavu systému
  3. Zkuste vyjádřit problém jednou větou nebo několika slovy
  4. Pomocí získaných informací z zabugovaného systému, vlastních zkušeností a zkušeností jiných lidí (google, různá fóra atd.) se snažte problém vyřešit až do úspěchu (nebo neúspěchu)
  5. Pokud neuspějete, požádejte ostatní o pomoc nebo radu

Pokud jde o mě, obvykle získám všechny požadované informace pomocí všech potřebných nástrojů a snažím se tyto informace porovnat se svými zkušenostmi. Rozhodnutí, jaká úroveň síťového zásobníku obsahuje chybu, pomáhá odříznout nepravděpodobné varianty. Využití zkušeností jiných lidí pomáhá řešit problémy rychle, ale často to vede k situaci, že dokážu vyřešit nějaký problém bez jeho pochopení a pokud se tento problém objeví znovu, je pro mě nemožné jej znovu řešit bez internetu.

A obecně nevím, jak řeším problémy se sítí. Zdá se, že v mém mozku existuje nějaká magická funkce s názvem SolveNetworkProblem(information_about_system_state, my_experience, people_experience) , který může někdy vrátit přesně správnou odpověď a také může někdy selhat (jako zde TCP umírá na notebooku s Linuxem).

Pro ladění sítě obvykle používám nástroje z této sady:

  • ifconfig (nebo ip link , ip addr ) – pro získávání informací o síťových rozhraní
  • ping – pro ověření, zda je cílový hostitel dostupný z mého počítače. ping lze také použít pro základní diagnostiku DNS – mohli bychom pingnout hostitele podle IP adresy nebo názvu hostitele a pak rozhodnout, zda DNS vůbec funguje. A pak traceroute nebo tracepath nebo mtr podívat se, co se tam cestou děje.
  • dig – diagnostikovat vše DNS
  • dmesg | less nebo dmesg | tail nebo dmesg | grep -i error – za pochopení toho, co si linuxové jádro myslí o nějakém problému.
  • netstat -antp + | grep smth – moje nejoblíbenější použití příkazu netstat, který zobrazuje informace o TCP spojení. Často provádím nějaké filtrování pomocí grep. Viz také nový ss příkaz (z iproute2 nový standard sada síťových nástrojů Linux) a lsof jako v lsof -ai tcp -c some-cmd .
  • telnet <host> <port> – je velmi užitečný pro komunikaci s různými TCP-službami (např. na protokolech SMTP, HTTP), také můžeme zkontrolovat obecnou možnost připojení k nějakému TCP portu.
  • iptables-save (v systému Linux) – pro výpis úplného tabulky iptables
  • ethtool – získat všechny parametry síťové karty (stav linky, rychlost, parametry offload…)
  • socat – nástroj švýcarské armády pro testování všech síťových protokolů (UDP, multicast, SCTP…). Zvláště užitečné (více než telnet) s několika -d možnosti.
  • iperf – k testování dostupnosti šířky pásma
  • openssl (s_client , ocsp , x509 …) k odladění všech problémů s SSL/TLS/PKI.
  • wireshark – výkonný nástroj pro zachycení a analýzu síťového provozu, který vám umožní analyzovat a zachytit mnoho síťových chyb.
  • iftop – zobrazit velké uživatele na síti/routeru.
  • iptstate (v systému Linux) – aktuální pohled na sledování připojení brány firewall.
  • arp (nebo nový (Linux) ip neigh ) – zobrazí stav tabulky ARP.
  • route nebo novější (v systému Linux) ip route – zobrazí stav směrovací tabulky.
  • strace (nebo truss , dtrace nebo tusc v závislosti na systému) – je užitečným nástrojem, který ukazuje, jaká systémová volání způsobují problémový proces, zobrazuje také chybové kódy (errno), když systémová volání selžou. Tyto informace často řeknou dost pro pochopení chování systému a vyřešení problému. Případně pomocí bodů přerušení u některých síťových funkcí v gdb vám umožní zjistit, kdy byly vytvořeny a s jakými argumenty.
  • prošetření problémů s firewallem v systému Linux:iptables -nvL ukazuje, kolika paketům odpovídá každé pravidlo (iptables -Z vynulovat počítadla). LOG cíl vložený do řetězců firewallu je užitečný, abyste viděli, které pakety se k nim dostanou a jak již byly transformovány, když se tam dostaly. Chcete-li získat další NFLOG (spojené s ulogd ) zaprotokoluje celý paket.
Související:Glob s číselným pořadím?
Linux
  1. Odstraňování problémů s hardwarem v Linuxu

  2. Jak nastavit statickou IP adresu a nakonfigurovat síť v Linuxu

  3. Základy Linuxu – Statická IP a konfigurace sítě na Debian Linuxu

  1. 5 Příkazy pro odstraňování problémů se sítí Linux

  2. Jak na to:MTR – Pochopení a řešení problémů se síťovým připojením

  3. Jak monitorovat a protokolovat síťový provoz v systému Linux pomocí vnStat

  1. Rozumíte Linux Desktopu?

  2. Linux OS Service ‚síť‘

  3. Odstraňování problémů s pomalou síťovou komunikací nebo časovými limity připojení v Linuxu