Je obtížné najít počítač se systémem Linux, který není připojen k síti ať už jde o server nebo pracovní stanici. Čas od času je nutné diagnostikovat poruchy, přerušování nebo pomalost sítě. V tomto článku se podíváme na některé z nejpoužívanějších příkazů Linuxu pro diagnostiku sítě.
Diagnostika sítě v Linuxu pomocí těchto příkazů
1. ping
Jeden z prvních příkazů, ne-li první, při diagnostice selhání nebo přerušení sítě. Nástroj ping nám pomůže určit, zda je v síti připojení, ať už místní nebo internetové.
[root @ horla] # ping www.linuxandubuntu.com PING www.linuxandubuntu.com (173.274.34.38) 56 (84) bytes of data. 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 1 ttl = 59 time = 2.52 ms 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 2 ttl = 59 time = 2.26 ms 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 3 ttl = 59 time = 2.31 ms 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 4 ttl = 59 time = 2.36 ms 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 5 ttl = 59 time = 2.33 ms 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 6 ttl = 59 time = 2.24 ms 64 bytes from r4-nyc.webserversystems.com (173.274.34.38): icmp_seq = 7 ttl = 59 time = 2.35 ms
2. traceroute
Tento příkaz nám umožňuje vidět skoky, které jsou potřeba k dosažení cíle. V tomto případě vidíme skoky, které jsou nutné k dosažení našeho webu. Tento test byl proveden z notebooku s Linuxem. V příkladu provedeme traceroute na naši webovou stránku www.linuxandubuntu.com.
horla @ horla-ProBook: ~ $ traceroute www.linuxandubuntu.com traceroute to www.linuxandubuntu.com (173.274.34.38), 30 hops max, 60 byte packets 1 linuxandubuntu.com (192.168.1.1) 267,686 ms 267,656 ms 267,616 ms 2 10.104.0.1 (10.104.0.1) 267.630 ms 267.579 ms 267.553 ms 3 10,226,252,209 (10,226,252,209) 267,459 ms 267,426 ms 267,396 ms 4 * * * 5 10,111.2,137 (10,111.2,137) 266,913 ms 10,111.2,141 (10,111.2,141) 266,784 ms 10,111.2,101 (10,111.2,101) 266,678 ms 6 5.53.0.149 (5.53.0.149) 266.594 ms 104.340 ms 104.273 ms 7 5.53.3.155 (5.53.3.155) 135.133 ms 94.142.98.147 (94.142.98.147) 135.055 ms 176.52.255.35 (176.52.255.35) 135.069 ms 8 94,142,127,229 (94,142,127,229) 197,890 ms 5.53.6.49 (5.53.6.49) 197,850 ms 94,142,126,161 (94,142,126,161) 223,327 ms 9 ae-11.r07.nycmny01.us.bb.gin.ntt.net (129.250.9.1) 197.702 ms 197.715 ms 180.145 ms 10 * * * 11 csc180.gsc.webair.net (173.239.0.26) 179.719 ms 149.475 ms 149.383 ms 12 dsn010.gsc.webair.net (173.239.0.34) 149.288 ms 168.309 ms 168.202 ms 13 r4-nyc.webserversystems.com (173.274.34.38) 168.086 ms 168.105 ms 142.733 ms horla @ horla-ProBook: ~ $
3. trasa
Tento příkaz nám v tomto případě umožňuje vidět trasu, kterou náš tým Linux používá k připojení k síti. Naše zařízení odchází přes router 192.168.1.1.
horla @ horla-ProBook: ~ $ route -n Core IP route table Destination Gateway Genmask Indic Metric Ref Use Interface 0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlo1 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlo1 192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 wlo1 horla @ horla-ProBook: ~ $
4. kopat
Tento příkaz nám umožňuje ověřit, zda DNS funguje správně, před tím musíme ověřit, jaký DNS máme v konfiguraci sítě. V tomto příkladu chceme vidět IP adresu našeho webu www.linuxandubuntu.com, která nám vrací 173.274.34.38.
horla-ProBook: ~ $ dig www.linuxandubuntu.com ; << >> DiG 9.10.3-P4-Ubuntu << >> www.linuxandubuntu.com ;; global options: + cmd ;; Got answer: ;; - >> HEADER << - opcode: QUERY, status: NOERROR, id: 12083 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION:; www.linuxandubuntu.com. IN A ;; ANSWER SECTION: www.linuxandubuntu.com. 2821 IN A 173.274.34.38 ;; Query time: 21 msec ;; SERVER: 127.0.1.1 # 53 (127.0.1.1) ;; WHEN: Wed Nov 7 19:58:30 PET 2018 ;; MSG SIZE rcvd: 51 horla @ horla-ProBook: ~ $
5. ethtool
Tento nástroj je náhradou za mii-tool. Pochází od CentOS6 a dále a umožňuje zjistit, zda je síťová karta fyzicky připojena k síti, tzn. Můžeme diagnostikovat, zda je síťový kabel skutečně připojen k přepínači.
# ethtool eth0 Settings for eth0: Supported ports: [] Supported link modes: Not reported Supported pause frame use: No Supports auto-negotiation: No Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Speed: Unknown! Duplex: Unknown! (255) Port: Other PHYAD: 0 Transceiver: internal Auto-negotiation: off Link detected: yes
6. IP ADDR LS
Další ze specifických nástrojů Linuxu, který nám umožňuje vypsat síťové karty a jejich příslušné IP adresy. Tento nástroj je velmi užitečný, když máte nakonfigurováno několik IP adres.
[[email protected] named]# ip addr ls 1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth6: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:15:5d:a0:f6:05 brd ff:ff:ff:ff:ff:ff inet 193.82.34.169/27 brd 190.82.35.192 scope global eth6 inet 192.168.61.10/24 brd 192.168.61.255 scope global eth6:1 inet6 fe80::215:5dff:fea0:f605/64 scope link valid_lft forever preferred_lft forever
7. ifconfig
Stejně zásadní jako předchozí, ifconfig nám umožňuje vidět síťovou konfiguraci karet nainstalovaných v našem týmu. V tomto případě je zobrazena 1 fyzická síťová karta odpojená v p37s0, místní síťová karta nebo localhost lo a bezdrátová síťová karta wlo1, která je připojena k síti. Záměrně zvýrazňujeme nainstalované karty a přidělené IP adresy.
horla @ horla-ProBook: ~ $ ifconfig enp37s0 Link encap: Ethernet addressHW 2c: 41: 38: 15: 4b: 0e ACTIVE MULTICAST MTU DISTRIBUTION: 1500 Metric: 1 RX packages: 0 errors: 0 lost: 0 overruns: 0 frame: 0 TX packages: 0 errors: 0 lost: 0 overruns: 0 carrier: 0 collisions: 0 long.colaTX: 1000 Bytes RX: 0 (0.0 B) TX bytes: 0 (0.0 B) lo Link encap: Local loop Direc. inet: 127.0.0.1 Másc: 255.0.0.0 Inet6 address: :: 1/128 Scope: Host ACTIVE LOOP RUNNING MTU: 65536 Metric: 1 RX packages: 19095 errors: 0 lost: 0 overruns: 0 frame: 0 TX packages: 19095 errors: 0 lost: 0 overruns: 0 carrier: 0 Collisions: 0 long.colaTX: 1 Bytes RX: 1716020 (1.7 MB) TX bytes: 1716020 (1.7 MB) wlo1 Link encap: Ethernet addressHW 20: 10: 7a: fc: b1: 44 Direc. inet: 192.168.1.102 Difus.:192.168.1.255 Masc: 255.255.255.0 Inet6 address: fe80 :: 2b5d: 1b14: 75a: e095 / 64 Scope: Link ACTIVE DIFFUSION FUNCTIONING MULTICAST MTU: 1500 Metric: 1 RX packages: 1660063 errors: 0 lost: 0 overruns: 0 frame: 0 TX packages: 1285046 errors: 0 lost: 0 overruns: 0 carrier: 0 collisions: 0 long.colaTX: 1000 Bytes RX: 966719020 (966.7 MB) TX bytes: 209302107 (209.3 MB) horla @ horla-ProBook: ~ $
8. mtr
Další z našich oblíbených nástrojů MTR nebo My Traceroute nám umožňuje vidět, jak router skáče a ping každý z nich. To je velmi užitečné pro určení, které z těchto směrovačů jsou ty, které mají zpoždění v síťovém provozu.
My traceroute [v0.75] My traceroute [v0.75] router02 (0.0.0.0) Nov 7 20:19:24 2018Resolver: Received error response 2. (server failure) er of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. router2-linuxandubuntu.com 0.0% 11 0.7 0.7 0.6 0.8 0.1 2. 173.255.239.16 0.0% 11 0.8 0.9 0.8 1.6 0.2 3. 173.255.239.8 0.0% 11 2.9 3.2 0.8 7.8 2.1 4. ??? 5. es0.nyc4.webair.net 0.0% 10 2.0 2.6 1.8 7.7 1.8 6. csc180.gsc.webair.net 0.0% 10 2.6 2.6 2.6 2.7 0.1 7. dsn010.gsc.webair.net 0.0% 10 2.2 2.2 2.1 2.3 0.1 8. r4-nyc.webserversystems.com 0.0% 10 2.3 2.4 2.2 2.5 0.1
9. nslookup
Další nástroj ke zjištění IP adresy hostitele, kterého chceme dosáhnout. V tomto případě chceme znát IP našeho webu www.linuxandubuntu.com.
# nslookup www.linuxandubuntu.com Server: 127.0.0.1 Address: 127.0.0.1 # 53 Non-authoritative answer: Name: www.linuxandubuntu.com Address: 173.274.34.38
10. nmtui-edit
Textové uživatelské rozhraní Network Manager (nmtui nebo Network Manager založené na příkazovém řádku). Využívá ncurses a umožňuje nám snadno konfigurovat z terminálu a bez dalších závislostí. Nabízí grafické rozhraní, založené na textu, takže uživatel provádí tyto úpravy.
Závěr
Pomocí těchto síťových příkazů , budeme mít příležitost provádět mnohem přímější a přesnější správu různých parametrů sítě v prostředí Linuxu. Také pomocí příkazu mtr, jak jsme zmínili výše, můžeme mít jednodušší kontrolu nad stavem naší sítě a mnohem centrálnějším způsobem kontrolovat její různé aspekty zaměřené na její optimalizaci. Děkuji za přečtení.