GNU/Linux >> Znalost Linux >  >> Linux

7 síťových příkazů Linuxu, které by měl znát každý správce systému

Tento článek je první ze série zaměřené na doporučení příkazů „davových zdrojů“. Zeptal jsem se skupiny našich hlavních přispěvatelů, jaké jsou jejich oblíbené linuxové příkazy, a zpětná vazba byla ohromující. Obdrželi jsme 46 jednotlivých příkazů a mnoho z nich bylo podtrženo vícenásobným odesláním.

Tato řada představuje úplný seznam, rozdělený podle kategorií. Těchto prvních sedm příkazů jsem nazval „Síťové příkazy, které by měl znát každý.“

Poznámka editora :Evans Amoany poskytl velitelské informace a příklady. Jeden z našich Sudoerů a talentovaný *nix admin. Křičte na Evanse za to, že to tady dělá těžké.

[ Také by vás mohlo těšit: Síť v Linuxu:13 použití pro netstat ]

ip

ip command je jedním ze základních příkazů, které bude každý správce potřebovat při každodenní práci, od nastavování nových systémů a přidělování IP adres až po odstraňování problémů se stávajícími systémy. ip příkaz může zobrazovat informace o adrese, manipulovat se směrováním a navíc zobrazovat síťová různá zařízení, rozhraní a tunely.

Syntaxe je následující:

ip

OBJEKT je nejdůležitější částí synopse a jsou podporovány následující (některé jsou pro stručnost vynechány):

adresa – adresa protokolu (IPv4 nebo IPv6) na zařízení.

  • tunel – tunel přes IP
  • route – záznam v tabulce směrování
  • pravidlo – pravidlo v databázi zásad směrování
  • vrf – správa virtuálních zařízení pro směrování a přeposílání
  • xfrm – správa zásad IPSec

Zde jsou některé běžné případy použití ip příkaz.

Chcete-li zobrazit adresy IP přiřazené rozhraní na vašem serveru:

[root@server ~]# ip address show 

Chcete-li přiřadit IP rozhraní, například enps03 :

[root@server ~]# ip address add 192.168.1.254/24 dev enps03

Chcete-li odstranit IP na rozhraní:

[root@server ~]# ip address del 192.168.1.254/24 dev enps03

Změňte stav rozhraní uvedením rozhraní eth0 online:

[root@server ~]# ip link set eth0 up

Změňte stav rozhraní uvedením rozhraní eth0 offline:

[root@server ~]# ip link set eth0 down

Změňte stav rozhraní změnou MTU eth0 :

[root@server ~]# ip link set eth0 mtu 9000

Změňte stav rozhraní povolením promiskuitního režimu pro eth0 :

[root@server ~]# ip link set eth0 promisc on

Přidejte výchozí trasu (pro všechny adresy) přes místní bránu 192.168.1.254, která je dostupná na zařízení eth0 :

[root@server ~]# ip route add default via 192.168.1.254 dev eth0

Přidejte trasu k 192.168.1.0/24 přes bránu na 192.168.1.254:

[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254

Přidejte trasu k 192.168.1.0/24, která je dostupná na zařízení eth0 :

[root@server ~]# ip route add 192.168.1.0/24 dev eth0

Smazat trasu pro 192.168.1.0/24 přes bránu na 192.168.1.254:

[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254

Zobrazit trasu použitou pro IP 10.10.1.4:

[root@server ~]# ip route get 10.10.1.4

ifconfig

ifconfig příkaz byl/je základním prvkem mnoha sysadminových nástrojů pro konfiguraci a odstraňování problémů se sítěmi. Od té doby byl nahrazen ip příkaz diskutovaný výše. Pokud byste však o něm chtěli více informací, podívejte se na náš dříve publikovaný článek zde.

mtr

MTR (Matt's traceroute) je program s rozhraním příkazového řádku, který slouží jako nástroj pro diagnostiku sítě a řešení problémů. Tento příkaz kombinuje funkce ping a traceroute příkazy. Stejně jako traceroute , mtr příkaz zobrazí cestu z počítače do zadaného hostitele. mtr poskytuje mnoho statistik o každém skoku, jako je doba odezvy a procento. Pomocí mtr získáte více informací o trase a budete moci vidět problematická zařízení po cestě. Pokud zaznamenáte náhlé zvýšení doby odezvy nebo ztrátu paketů, pak je evidentně někde špatný odkaz.

Syntaxe příkazu je následující:

mtr název hostitele/IP

Podívejme se na některé běžné případy použití.

Základní mtr zobrazí statistiky, včetně každého skoku (názvů hostitelů) s časem a ztrátou %:

[root@server ~]# mtr google.com

Zobrazit číselné IP adresy (pokud použijete -g , získáte místo názvů hostitelů IP adresy (čísla):

[root@server ~]# mtr -g google.com

Zobrazte také číselné IP adresy a názvy hostitelů:

[root@server ~]# mtr -b google.com

Nastavte počet pingů, které chcete odeslat:

[root@server ~]# mtr -c 10 google.com

Získejte zprávu o mtr výsledek příkazu:

[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output

nebo:

[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output

Vynutit použití TCP místo ICMP:

[root@server ~]# mtr –tcp google.com

Vynutit použití UDP místo ICMP:

[root@server ~]# mtr –udp google.com

Nastavte maximální množství skoků:

[root@server ~]# mtr -m 35 216.58.223.78

Definujte velikost paketu:

[root@server ~]# mtr -r -s 50 google.com

Tisk na výstup CSV:

[root@server ~]# mtr –csv google.com

Tisk na výstup XML:

[root@server ~]# mtr –xml google.com

tcpdump

tcpdump příkaz je určen pro zachycování a zobrazování paketů.

Můžete nainstalovat tcpdump pomocí příkazu níže:

[root@server ~]# dnf install -y tcpdump

Před zahájením jakéhokoli nahrávání musíte vědět, která rozhraní tcpdump může použít. V tomto případě budete muset použít sudo nebo mít přístup root.

[root@server ~]# tcpdump -D

  1 eth0
  2 nflog
  3 nfqueue
  4 usbmon1
  5 any
  6 lo (Loopback)

Pokud chcete zachytit provoz na eth0 , můžete to spustit pomocí tcpdump -i eth0 ukázkový výstup:

[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10

Zachyťte provoz do az jednoho hostitele

Můžete odfiltrovat provoz přicházející z konkrétního hostitele. Chcete-li například najít provoz přicházející a směřující do 8.8.8.8, použijte příkaz:

[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8

Pro provoz pocházející z 8.8.8.8 použijte:

[root@server ~]# tcpdump -i eth0 src host 8.8.8.8

Pro odchozí provoz směřující do 8.8.8.8 použijte:

[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8

Zachyťte provoz do a ze sítě

Provoz do a z konkrétní sítě můžete také zachytit pomocí příkazu níže:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0

nebo:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24

Můžete také filtrovat podle zdroje nebo cíle.

Na základě zdroje (provoz přicházející z):

[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24

Na základě cíle (provoz směřující do):

[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24

Zachyťte provoz do az čísel portů

Zachycovat pouze provoz DNS portu 53:

[root@server ~]# tcpdump -i eth0 port 53

Pro konkrétního hostitele

[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53

Chcete-li zachytit pouze provoz HTTPS,

[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443

Chcete-li zachytit všechny porty kromě portů 80 a 25,

[root@server ~]# tcpdump -i eth0 port not 53 and not 25

netstat

netstat nástroj pro tisk síťových připojení, směrovacích tabulek, statistik rozhraní, maškarních připojení a členství v multicastu. Tento nástroj je součástí balíčku net-tool, stejně jako ifconfig . V novém balíčku iproute2 je ss nástroj se používá k dosažení stejných cílů.

Pokud netstat není ve vašem systému nalezen, nainstalujte jej pomocí tohoto příkazu:

[root@server ~]# dnf install net-tools

Primární použití netstat je bez parametrů:

[root@server ~]# netstat

Pro pokročilé použití rozbalte netstat příkaz s možnostmi:

netstat <options>

Nebo seznam možností jednu po druhé:

netstat <option 1> <option 2> <option 3>

Chcete-li zobrazit seznam všech portů a připojení bez ohledu na jejich stav nebo protokol, použijte:

[root@server ~]# netstat -a

Vypište všechny porty TCP spuštěním:

[root@server ~]# netstat -at

Seznam všech portů UDP s:

[root@server ~]# netstat -au

Chcete-li vrátit seznam pouze naslouchacích portů pro všechny protokoly, použijte:

[root@server ~]# netstat -l

Seznam všech naslouchacích portů TCP s:

[root@server ~]# netstat -lt

Vraťte pouze naslouchající porty UDP spuštěním:

[root@server ~]# netstat -lu

Chcete-li zobrazit seznam naslouchacích portů UNIX, použijte:

[root@server ~]# netstat -lx

Zobrazit statistiky pro všechny porty bez ohledu na protokol pomocí:

[root@server ~]# netstat -s

Zobrazit statistiky pro porty TCP pouze pomocí:

[root@server ~]# netstat -st

Chcete-li zobrazit připojení TCP s uvedeným názvem PID/programu, použijte:

[root@server ~]# netstat -tp

Chcete-li najít proces, který používá konkrétní číslo portu, spusťte:

[root@server ~]# netstat -an | grep ‘:<port number>’

nslookup

Použijte nslookup nástroj k interaktivnímu dotazování na internetové jmenné servery. Použijte jej k provádění DNS dotazů a přijímání názvů domén nebo IP adres nebo jakýchkoli jiných specifických DNS záznamů.

Zvažte následující běžné příklady.

Chcete-li najít záznam A domény:

[root@server ~]# nslookup example.com

Chcete-li zkontrolovat záznamy NS domény:

[root@server ~]# nslookup -type=ns example.com

Chcete-li najít záznamy MX odpovědné za výměnu e-mailů:

[root@server ~]# nslookup -query=mx example.com

Chcete-li najít všechny dostupné záznamy DNS domény:

[root@server ~]# nslookup -type=any example.com

Chcete-li zkontrolovat použití konkrétního serveru DNS (v tomto případě dotazujte pomocí konkrétního jmenného serveru ns1.nsexample.com):

[root@server ~]# nslookup example.com ns1.nsexample.com

Kontrola záznamů DNS A za účelem zobrazení IP adresy domény je běžnou praxí, ale někdy je potřeba ověřit, zda IP adresa souvisí s konkrétní doménou. Za tímto účelem potřebujete zpětné vyhledávání DNS.

[root@server ~]# nslookup 10.20.30.40

ping

Ping je nástroj, který ověřuje konektivitu na úrovni IP k jinému počítači TCP/IP odesíláním zpráv Echo Request protokolu ICMP (Internet Control Message Protocol). Zobrazí se příjem odpovídajících zpráv Echo Reply spolu s časy zpáteční cesty. Ping je primární příkaz TCP/IP používaný k odstraňování problémů s konektivitou, dosažitelností a překladem názvů.

Jednoduchý ping příkazy mají pouze jeden parametr:název hostitele nebo adresu IP hostitele, kterou chcete ověřit. Jednoduchý ping příklad je stejný jako níže:

[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms

Musíte zastavit ping stisknutím kláves CTRL+C . V opačném případě bude ping dokud to nezastavíš. Po každém ping příkaz zobrazí souhrnnou zprávu s následujícími informacemi:

  • Min:Minimální doba potřebná k získání odpovědi od hostitele, na kterou byl z vašeho konce odeslán příkaz ping.
  • Prům.:Průměrná doba, kterou trvá získání odpovědi od hostitele, na kterou byl z vašeho konce odeslán příkaz ping.
  • Max:Maximální doba potřebná k získání odpovědi od hostitele, na kterou byl z vašeho konce odeslán příkaz ping.

Také uvidíte TTL, což je zkratka pro Time To Live. Ping používá číselnou hodnotu TTL, aby se pokusil dosáhnout daného hostitelského počítače prostřednictvím cesty. Toto je také známé jako limit skoku.

Normálně, když spustíte jednoduchý ping bez zadání jakýchkoli dalších parametrů, Linux ping že hostitel na nekonečně dlouhou dobu. Pokud chcete ping hostitele desetkrát, použijte následující příkaz:

[root@server ~]# ping -c 10 google.com

Použijte volbu -q zobrazíte pouze ping shrnutí statistik:

[root@server ~]# ping -c 10 google.com

Na systémech s více rozhraními můžete zadat rozhraní pro ping příkaz k použití. Pokud má systém obojí eth0 a eth1 a chci ping pomocí eth0 :

[root@server ~]# ping -I eth0 google.com

Nebo použijte adresu na rozhraní, za předpokladu, že rozhraní je 10.233.201.45 jako IP:

[root@server ~]# ping -I 10.233.201.45 google.com

Můžete také ping a zadejte verzi IP jako v4 nebo v6:

[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com

Při pingování na hostitele najdete jiný výstup než ping výsledky, včetně následujících tří příkladů.

Cílový hostitel je nedosažitelný

Nejlepším možným důvodem je, že neexistuje žádná trasa z místního hostitelského systému ak cílovému požadovanému cílovému hostiteli nebo vzdálený router hlásí, že nemá žádnou cestu k cílovému hostiteli.

Časový limit požadavku vypršel

Tento výsledek znamená, že nebyly přijaty žádné zprávy Echo Reply během výchozí doby jedné sekundy nebo doby, kterou jste nastavili, když pingujete na tohoto hostitele. To může být způsobeno mnoha různými příčinami; mezi nejčastější patří zahlcení sítě, selhání požadavku ARP, filtrování paketů/firewall atd.

Neznámý hostitel/požadavek Ping nenašel hostitele

Možná jste název hostitele napsali špatně nebo hostitel v síti vůbec neexistuje.

Musíte mít 0% ztrátu paketů pro každý ping výsledek s dobrou latencí nebo kratší dobou odezvy. V závislosti na tom, jaké přenosové médium (UTP, kabel z optických vláken, Wi-Fi) používáte, se vaše latence bude lišit.

[ Bezplatný cheat:Získejte seznam linuxových nástrojů a příkazů pro správu serverů a sítí. ] 

Těšíme se

Tyto příkazy a příklady byste měli přidat do svých rutin při konfiguraci a odstraňování problémů s vlastními sítěmi. Pokud vám tento typ článku pomohl, určitě nás kontaktujte a dejte nám vědět. Sledujte také druhou část našeho seznamu komunitních příkazů. Další je 16 obecných linuxových příkazů, bez kterých se neobejdete.


Linux
  1. Zvuková témata v Linuxu:Co by měl vědět každý uživatel

  2. 3 dovednosti, které by měl přinést každý správce systému Linux

  3. 6 Možnosti příkazu OpenSSL, které by měl znát každý správce systému

  1. 10 příkazů, které by měl znát každý uživatel Linuxu

  2. 17 Linuxových příkazů by měl znát každý správce systému

  3. Seznam příkazů Linuxu, které by měl znát každý vývojář

  1. 34 základních příkazů Linuxu, které by měl znát každý uživatel

  2. Příkazy Nginx, které byste měli vědět

  3. 10 smrtících příkazů, které byste nikdy neměli spouštět na Linuxu