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čí zadatman 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.
- U počítačů ubuntu to můžete změnit v
/etc/hostname
soubor. - 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.
- Odeslané a přijaté bajty
- Odeslané, přijaté a ztracené pakety
- 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ář.
EndeavourOS – Naučte se Arch správným způsobem Linux VI Editor zkratky, tipy a hacky produktivity pro začátečníkyLinux