GNU/Linux >> Znalost Linux >  >> Linux

17 nejlepších příkazů pro síťování a odstraňování problémů v Linuxu pro začátečníky

Konfigurace sítě, diagnostika a obecné Odstraňování problémů s Linuxem jsou základní části správy systému. I pro vývojáře, který pracuje se systémy Linux, znalost síťových příkazů Linuxu je další výhodou.

Konkrétně, pokud se chcete stát inženýrem DevOps nebo být součástí SRE, je nezbytné znát všechny příkazy pro odstraňování problémů s Linuxem protože budou součástí vašich každodenních činností.

Tento příspěvek se bude zabývat důležitýmipříkazy pro práci v sítích v Linuxu a odstraňování problémů které jsou nativně dostupné v systémech Linux.

Jaké jsou nejlepší příkazy pro síťování a odstraňování problémů v Linuxu?

Následuje seznam nativně dostupných příkazů pro odstraňování problémů.

Příkaz Popis
hostname Kontrola a nastavení názvu hostitele serveru.
host Získání podrobností DNS hostitele
ping Zkontroluje, zda je vzdálený server dosažitelný pomocí protokolu ICMP. Zobrazuje také dobu zpáteční cesty paketů.
curl Nástroj pro více platforem, který se používá k přenosu dat. Lze jej použít k řešení několika problémů se sítí.
wget Nástroj pro stahování souborů. Lze jej použít k odstraňování problémů s připojením a konektivitou proxy.
ip Náhrada za ifconfig . Lze jej použít ke konfiguraci a získávání informací o síťových rozhraních systémů
arp Nástroj pro zobrazení a správu mezipaměti arp.
ss/netstat Používá se primárně ke kontrole připojení a PID na portech a zásuvkách Unix.
tracerout e Tento nástroj používá protokol ICMP a najde přeskoky zapojené do čtení cílového serveru. Ukazuje také čas, který trvá mezi skoky.
mtr mtr je kombinací ping a traceroute . Poskytuje také další informace, jako jsou mezihostitelé a odezva.
dig Pomáhá vám získat záznamy DNS spojené s názvem domény.
nslookup Příkaz podobný dig.
nc nástroj pro ladění soketů TCP/UDP.
telnet Lze jej použít k testování vzdáleného připojení na portech
route Pomáhá vám získat všechny informace o směrovací tabulce
tcpdump Tento nástroj vám pomůže zachytit síťové pakety a analyzovat je na problémy se sítí.
lsof vypsat všechny otevřené soubory a informace o procesu, které je otevřely

Pojďme porozumět každému příkazu a podívat se, jak jej můžeme použít k odstraňování problémů s Linuxem.

Důležitá poznámka: Každý příkaz/utilita uvedený v tomto příspěvku má mnoho možností a příznaků. Každý příkaz má manuálovou stránku a můžete ji použít k identifikaci příznaků a voleb, které jsou vyžadovány pro váš případ použití. Například pro ip stačí zadat man ip v terminálu, abyste získali všechny podrobnosti o tomto příkazu.

1. název hostitele

Příkaz hostname se používá k zobrazení názvu hostitele počítače ak nastavení názvu hostitele.

název hostitele

K nastavení nového názvu hostitele pro počítač můžete použít příkaz hostname. Například,

sudo název hostitele temp.com

Pokud nastavíte název hostitele pomocí „hostname ”, když restartujete počítač, název hostitele se změní na název uvedený v souboru názvu hostitele (např.:/etc/hostname).

Pokud tedy chcete změnit název hostitele trvale, můžete použít /etc/hosts soubor nebo příslušný soubor názvu hostitele přítomný na serveru.

  1. U počítačů ubuntu to můžete změnit v /etc/hostname soubor.
  2. U RHEL, CentOS a Fedory to můžete změnit v /etc/sysconfig/network soubor.

2. hostitel

Příkaz hostitel je pro zpětné vyhledání IP nebo názvu DNS.

Například, pokud chcete najít DNS připojený s IP, můžete použít hostitelské příkazy následovně.

host 8.8.8.8 

Můžete to také udělat obráceně, abyste našli IP adresu spojenou s názvem domény. Například,

host devopscube.com 

3. ping

Síťový nástroj ping se používá ke kontrole, zda je vzdálený server dosažitelný nebo ne. Primárně se používá pro kontrolu připojení a odstraňování problémů se sítí.

Poskytuje následující podrobnosti.

  1. Odeslané a přijaté bajty
  2. Odeslané, přijaté a ztracené pakety
  3. Přibližná doba zpáteční cesty (v milisekundách)

Příkaz Ping má následující syntaxi.

ping 

Například,

ping devopscube.com 

Odeslání příkazu ping na IP adresu

ping 8.8.8.8 

Pokud chcete omezit výstup pingu bez použití ctrl+c, můžete použít příznak „-c“ s číslem, jak je uvedeno níže.

ping -c 1 devopscube.com 

4. zvlnit

Nástroj Curl se primárně používá k přenosu dat ze serveru nebo na něj. Můžete jej však použít pro odstraňování problémů se sítí.

Pro odstraňování problémů se sítí curl podporuje protokoly jako DICT , FILE , FTP , FTPS , GOPHER , HTTP , HTTPS , IMAP , IMAPS , LDAP , LDAPS , MQTT , POP3 , POP3S , RTMP , RTMPS , RTSP , SCP , SFTP , SMB , SMBS , SMTP , SMTPS , TELNET a TFTP

Například curl můžete zkontrolovat připojení na portu 22 pomocí telnet.

curl -v telnet://192.168.33.10:22 

Konektivitu FTP můžete zkontrolovat pomocí curl.

curl ftp://ftptest.net  

Můžete také řešit problémy s připojením k webovému serveru.

curl http://devopscube.com -I 

5. wget

wget příkaz se primárně používá k načítání webových stránek.

Můžete použít wget k řešení problémů se sítí.

Můžete například odstraňovat problémy s připojením k proxy serveru pomocí wget.

wget -e use_proxy=yes http_proxy=<proxy_host:port> http://externalsite.com 

Zda je webová stránka aktivní, můžete zkontrolovat načtením souborů.

wget www.google.com 

6. ip (ifconfig)

ip příkaz se používá k zobrazení a manipulaci s trasami a síťovými rozhraními. ip příkaz je novější verzí ifconfig . ifconfig funguje ve všech systémech, ale je lepší použít příkaz ip místo ifconfig.

Podívejme se na několik příkladů ip příkaz.

Zobrazit síťová zařízení a konfigurace

adresa IP

Tento příkaz můžete použít s rourami a grep, abyste získali podrobnější výstup, jako je IP adresa rozhraní eth0. Je to velmi užitečné, když pracujete na automatizačních nástrojích, které vyžadují dynamické načítání IP.

Následující příkaz získá IP adresu eth0 síťové rozhraní.

ip a | grep eth0 | grep "inet" | awk -F" " '{print $2}'

Získejte podrobnosti o konkrétním rozhraní

ip a show eth0

Můžete uvést seznam směrovacích tabulek.

ip route
ip route list 

7. arp

ARP (Address Resolution Protocol ) zobrazuje tabulku mezipaměti IP adres a MAC adres místních sítí, se kterými systém interagoval.

arp 

Příklad výstupu,

[email protected]:~$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.3                 ether   52:54:00:12:35:03   C                     eth0
192.168.33.1             ether   0a:00:27:00:00:00   C                     eth1
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0 

8. ss (netstat)

ss příkaz je náhradou za netstat . Stále můžete používat netstat příkaz na všech systémech.

Pomocí ss můžete získat více informací než netstat příkaz. Příkaz ss je rychlý, protože získává všechny informace z uživatelského prostoru jádra.

Nyní se podívejme na několik použití ss příkaz.

Výpis všech připojení

ss ” zobrazí seznam všech TCP, UDP a Unixových soketových připojení na vašem počítači.

[email protected]:~$ ssNetid State Recv-Q Send-Q Local Address:Port Peer Address:Portu_str ESTAB 0 0 * 7594 * 0u_str ESTAB 0 0 @/com/ubuntu/upstart 7605 * 0 u_str ESTAB 0 0 * 29701 * 0u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 29702 * 0tcp ESTAB 0 400 172.31.18.184:ssh 1.22.167.31:61808

Výstup ss příkaz bude velký, takže můžete použít ” ss | less ”, aby bylo možné výstup rolovat.

Odfiltrování soketů TCP, UDP a Unix

Pokud chcete odfiltrovat podrobnosti soketu TCP, UDP nebo UNIX, použijte příznak „-t“ „-u“ a „-x“ s příkazem „ss“. Zobrazí všechna navázaná připojení ke konkrétním portům. Pokud chcete vypsat připojené i naslouchající porty pomocí „a“ se specifickým příznakem, jak je uvedeno níže.

ss -tass -uass -xa

Vypsat všechny naslouchající porty

Chcete-li zobrazit seznam všech naslouchacích portů, použijte příznak „-l“ s příkazem ss. Chcete-li vypsat konkrétní soket TCP, UDP nebo UNIX, použijte příznak „-t“, „-u“ a „-x“ s „-l“, jak je uvedeno níže.

[email protected]:~$ ss -ltState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 128 *:ssh *:*LISTEN 0 50 :::http-alt :::*LISTEN 0 50 :::55857 :::*POSLECHNOUT 0 128 :::ssh :::*POSLECHNOUT 0 50 :::53285 :::*[email protected]:~$

Seznam všech zavedených

Chcete-li zobrazit seznam všech zavedených portů, použijte state established příznak, jak je znázorněno níže.

ss -t -r state established 

Chcete-li zobrazit seznam všech soketů ve stavu poslechu,

ss -t -r state listening 

9. traceroute

Pokud nemáte traceroute nástroj ve vašem systému nebo serveru, můžete jej nainstalovat z nativního úložiště.

traceroute je nástroj pro odstraňování problémů se sítí. Pomocí traceroute můžete zjistit počet přeskoků požadovaných pro konkrétní paket k dosažení cíle.

Například,

traceroute google.com 

Zde je výstup.

traceroute to google.com (173.194.33.163), max. 30 skoků, 60bajtové pakety 1 ec2-50-112-0-84.us-west-2.compute.amazonaws.com (50.112.0.84) 1.974 ms 1,895 ms 1,899 ms 2 100.64.1.247 (100.64.1.247) 1,414 ms 100,64,1,137 (100,64,1,137) 1,127 ms 100.64.1.97 (100,64,1,1,97) 1,313 ms 3 100,64,0,198) 100.64.0.62) 2,160 ms 100.64.0.60 (100.64.0.60) 2,116 MS10 66,249,94,214 (66,249,94,214) 6,313 ms 7,104 ms 209,85,249,34 (209,85,249,34) 5,986 ms11 209,85,244,65) 6,574 m..12 sea09s18-in-f3.1e100.net (173.194.33.163) 6.302 ms 6.517 ms 6.071 [email protected]:~$

Výše uvedený výstup ukazuje počet skoků (12) k dosažení google.com ze serveru devopscube AWS ec2.

10. mtr

mtr utility je síťový diagnostický nástroj pro odstraňování úzkých míst v síti. Kombinuje funkce obou ping a traceroute

Například následující příkaz zobrazuje traceroute výstup v reálném čase.

mtr google.com 

Zde je výstup.

přehled mtr

Sestavu můžete vygenerovat pomocí příznaku –report. Když spustíte sestavu mtr, odešle 10 paketů do cíle a vytvoří sestavu.

mtr -n --report google.com 

11. kopat

Pokud máte nějakou úlohu související s vyhledáváním DNS, můžete použít „dig ” pro dotaz na jmenné servery DNS.

Získejte všechny záznamy DNS pomocí funkce dig

Následující příkaz vrátí všechny záznamy DNS a informace TTL twitter.com

dig twiter.com ANY 

Použijte +short získat výstup bez upřesnění.

dig google.com ANY +short 

Získejte konkrétní DNS záznam pomocí dig

Například pokud chcete získat A record pro konkrétní název domény můžete použít příkaz dig. +short poskytne informace bez upřesnění

dig www.google.com A +short 

Podobně můžete získat další informace o záznamu samostatně pomocí následujících příkazů.

dig google.com CNAME +short
dig google.com MX +short
dig google.com TXT +short
dig google.com NS +short
 

Reverzní vyhledávání DNS pomocí dig

Reverzní vyhledávání DNS můžete provést pomocí dig pomocí následujícího příkazu. Nahraďte 8.8.8.8 s požadovanou IP

dig -x 8.8.8.8 

12. nslookup

Nslookup Nástroj (Name Server Lookup) se používá ke kontrole záznamů DNS. Je to podobné příkazu dig.

Chcete-li zkontrolovat záznamy DNS domény, můžete použít následující příkaz.

nslookup google.com 

Můžete také provést zpětné vyhledávání pomocí adresy IP.

nslookup 8.8.8.8 

Chcete-li získat všechny záznamy DNS názvu domény, můžete použít následující.

nslookup -type=any google.com 

Podobně se můžete dotazovat na záznamy jako mx , soa atd

13. nc (netcat)

nc (netcat) příkaz je známý jako švýcarská armáda síťových příkazů.

Pomocí nc , můžete zkontrolovat konektivitu služby běžící na konkrétním portu.

Chcete-li například zkontrolovat, zda ssh port je otevřený, můžete použít následující příkaz.

nc -v -n 192.168.33.10 22 

netcat lze také použít pro přenos dat přes TCP/UDP a skenování portů.

Skenování portů se nedoporučuje v cloudových prostředích. Musíte požádat poskytovatele cloudu, aby ve vašem prostředí provedl operace skenování portů.

14. telnet

Příkaz telnet se používá k odstraňování problémů s připojením TCP na portu.

Chcete-li zkontrolovat připojení portu pomocí telnet, použijte následující příkaz.

telnet 10.4.5.5 22 

15. trasa

route ” se používá k získání podrobností o směrovací tabulce pro váš systém ak manipulaci s ní. Podívejme se na několik příkladů příkazu route.

Výpis všech tras

Spusťte „route ” bez jakýchkoliv argumentů k vypsání všech existujících tras ve vašem systému nebo serveru.

[email protected]:~$ routeTabulka směrování IP jádra Cílová brána Genmask Příznaky Metrické Ref Použít výchozí ip-172-31-16-1. 0.0.0.0 UG 0 0 0 eth0172.17.0.0 * 255.255.0.0 U 0 0 0 docker0172.31.16.0 * 255.255.240.0 U 0 0 0 eth0example@preunixlin>u. 

Pokud chcete získat úplný výstup v číselné podobě bez jakéhokoli názvu hostitele, můžete použít příznak „-n“ s příkazem route.

[email protected]:~$ trasa -nTabulka směrování IP jádra Cílová brána Genmask Flags Metric Ref Použití Iface0.0.0.0 172.31.16.1 0.0.0.0 UG 0 0 0 eth0152.17.0.0.0 0.0152.17.0.0.0 0. 0 0 0 docker0172.31.16.0 0.0.0.0 255.255.240.0 U 0 0 0 [email protected]:~$

16. tcpdump

tcpdump příkaz se primárně používá k odstraňování problémů se síťovým provozem.

Poznámka: K analýze výstupu tcpdump příkaz vyžaduje určité učení, takže jeho vysvětlování je mimo rozsah tohoto článku.

tcpdump příkaz pracuje se síťovými rozhraními systému. Ke spuštění příkazu tedy musíte použít oprávnění správce.

Vypsat všechna síťová rozhraní

Pomocí následujícího příkazu vypíšete všechna rozhraní.

sudo  tcpdump --list-interfaces 

Zachycení paketů na konkrétním rozhraní

Chcete-li získat výpis paketů na konkrétním rozhraní, můžete použít následující příkaz.

Poznámka: stiskněte ctrl + c zastavit zachycování paketů.

sudo tcpdump -i eth0 

Chcete-li omezit zachytávání paketů, můžete použít -c příznak s číslem.

Například,

sudo tcpdump -i eth0 -c 10 

Zachytávání paketů na všech rozhraních

Chcete-li zachytit pakety na všech rozhraních, použijte any příznak, jak je znázorněno níže.

sudo tcpdump -i any 

17. lsof

lsof je příkaz, který by se používal při každodenních potížích s linuxem. Tento příkaz je stejně důležitý pro každého, kdo pracuje se systémy Linux.

Chcete-li zobrazit všechny otevřené soubory, spusťte lsof příkaz.

lsof 

Jednou z běžných chyb, s nimiž se vývojáři a inženýři DevOps potýkají, je „Chyba vazby selhala:Adresa se již používá “. ID procesu spojené s portem můžete najít pomocí následujícího příkazu. Proces můžete zabít, abyste uvolnili port.

lsof -i :8080 

Nástroje pro odstraňování problémů se sítí třetích stran

Existuje více nástrojů příkazového řádku pro odstraňování problémů se sítí, které jsou k dispozici od řešení třetích stran.

Musíte je nainstalovat samostatně a používat je pro účely odstraňování problémů. Z důvodu dodržování bezpečnostních předpisů vám to ne každá organizace umožní. Pokud však máte možnost používat nástroje třetích stran, můžete je prozkoumat.

Závěr

V tomto článku jsme se zabývali důležitými nástroji příkazového řádku systému Linux pro řešení problémů se sítí a konfiguraci.

Pokud začínáte se správou systému, rolemi DevOps nebo SRE, je nezbytné se o těchto nástrojích dozvědět, abyste podpořili projekty, na kterých pracujete.

Každý nástroj má mnoho funkcí a můžete je dále zkoumat, abyste splnili své požadavky.

Pokud si myslíte, že jsme vynechali nějaké důležité příkazy, dejte nám vědět v sekci komentářů.

Také, pokud se chcete naučit skriptování v shellu, podívejte se na naši příručku, jak se naučit skriptování v shellu. Pokud jste vývojáři, podívejte se na můj průvodce příkazy Linuxu, které by měl znát každý vývojář.


Linux
  1. Linux hostname Command Tutorial pro začátečníky (5 příkladů)

  2. Linuxové příkazy:jobs, bg a fg

  3. Nejlepší základní Linuxové příkazy pro začátečníky

  1. 10 návodů na příkazy Linuxu pro začátečníky a experty

  2. Linuxový příkaz dir pro začátečníky (10 příkladů)

  3. Linuxové příkazy – přehled a příklady

  1. Příkaz Linux rm vysvětlený pro začátečníky (8 příkladů)

  2. Linux ln Command Tutorial pro začátečníky (5 příkladů)

  3. Linux nl Command Tutorial pro začátečníky (7 příkladů)