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
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.