Vyhledávání na webu

Síťové příkazy Windows v Linuxu: 5 ekvivalentů, které byste měli znát (plus triky pro WSL)


Pokud jste používali síťové příkazy ve Windows, jako například ping a tracert, možná vás zajímá, zda je můžete použít i na Linuxu, ať už samostatně nebo jako součást WSL. Naštěstí je to možné.

ping

Pamatuji si, jak jsem seděl na hodině počítačových sítí na vysoké škole, když instruktor ukazoval použití příkazu ping v příkazovém řádku Windows. Bylo to začátkem celoživotního vztahu, i když překročil operační systémy a nakonec se vrátil zpět s WSL.

Nejjednodušší způsob, jak používat příkaz ping v příkazovém řádku Linuxu a WSL, je použít ping následovaný IP adresou nebo názvem domény.

ping google.com

ping 127.0.0.1

Ten druhý bude posílat ping na „loopback zařízení“ nebo rozhraní vašeho lokálního počítače. Ping je užitečný pro zjištění, zda je hostitel dostupný, nebo alespoň reaguje na pingové požadavky. Některé hostitele mohou být stále dostupné, ale pingové požadavky odmítají z bezpečnostních důvodů. Ping je také užitečný pro zjištění, zda je webová stránka nedostupná pro všechny nebo jen pro vás.

Výchozí chování příkazu ping na Linuxu a dalších unixových systémech se liší od Windows. Na Windows příkaz ping proběhne čtyřikrát. Na Linuxu ping běží neomezeně, dokud nestisknete Ctrl + c, a poté vám ukáže statistiky o vrácených paketech.

Chcete-li, aby ping přestal po určitém počtu pingů, použijte možnost -c. Chcete-li odeslat ping na hostitele čtyřikrát:

ping -c 4 google.com

tracert: traceroute nebo tracepath na Linuxu

Dalším užitečným nástrojem pro diagnostiku sítě ve Windows je nástroj tracert. Tento nástroj vám umožňuje sledovat cestu od vašeho počítače přes síťové uzly až k cílovému počítači. V praxi to nemusí být vždy zcela spolehlivé, protože některé uzly na cestě nemusí reagovat. Přesto je to užitečné pro zjištění, zda je web nedostupný pro všechny nebo jen pro vás.

Můžete jej hledat v Linuxu, ale můžete zjistit, že chybí. Jen má jiný název. Zkuste spustit příkaz „traceroute“:

traceroute example.com

Nebo můžete zkusit příkaz tracepath:

tracepath example.com

Možná budete muset na svém systému nainstalovat další balíček, v závislosti na distribuci Linuxu, kterou používáte. Pokud tyto příkazy selžou, můžete zkusit vyhledat v správci balíčků balíček, který byste mohli potřebovat nainstalovat.

Alternativně byste mohli zvážit instalaci MTR, které kombinuje funkce příkazů ping a traceroute do jednoho nástroje. Pro jeho instalaci na Ubuntu:

sudo apt install mtr

MTR můžete spustit pomocí názvu hostitele nebo IP adresy podobně jako příkazy ping a traceroute:

mtr linux-console.net

Výchozí chování je otevřít okno GUI a neustále opakovat traceroute. MTR můžete zobrazit v terminálu pomocí volby -t:

mtr -t linux-console.net

To můžete udělat automaticky nastavením proměnné prostředí MTR_OPTIONS:

export MTR_OPTIONS="-t"

Můžete to vložit do svých souborů .bashrc nebo .zshrc, aby se to nastavilo pokaždé, když spustíte nový terminál.

Teď, když spustíte MTR, poběží to v okně terminálu.

Jedním z hlavních rozdílů oproti běžným traceroutům je to, že MTR zobrazuje statistiky pro každý uzel, podobně jako byste viděli u pingu. Řekne vám nejkratší, nejdelší a průměrné časy pingu pro každý uzel, stejně jako standardní odchylku. To vám ukáže, jak jsou časy pingu rozloženy kolem průměru.

ipconfig - Jen ip na Linuxu

Možná jste na Windows používali příkaz ipconfig, abyste viděli informace o konfiguraci své sítě. Na Linuxu tomu dříve odpovídal příkaz ifconfig, ale nyní je to jen "ip".

Chcete-li zobrazit všechny síťové rozhraní ve vašem systému:

ip link

Chcete-li zobrazit IP adresu:

ip address

Ve WSL2 uvidíte ve výchozím nastavení adresu virtuálního stroje WSL. Pokud chcete spravovat síťové připojení svého systému Windows na Windows počítači, je nejlepší to dělat přímo na straně Windows.

netstat - Použijte lsof nebo ss

Někdy chcete vidět všechna otevřená síťová připojení. Možná se obáváte, že někdo získal neoprávněný přístup k vašemu systému. Možná jen chcete zjistit, které aplikace "telefonují domů". Ve Windows to zvládne příkaz netstat. Existují také ekvivalenty na Linuxu.

lsof je běžný nástroj pro zkoumání otevřených souborů. Na Linuxu je vše soubor, a to zahrnuje i síťová připojení. Stačí spustit příkaz lsof v shellu:

lsof

Ve výchozím nastavení vám to zobrazí všechny soubory, které mají otevřené běžící Linux aplikace. Chcete-li vidět všechna internetová připojení, použijte možnost -i:

lsof -i

Na Linuxu také příkaz ss zobrazí informace o otevřených soketech, podobně jako netstat:

ss

Jedna výhrada, pokud používáte WSL, je ta, že tyto nástroje zobrazí pouze spojení na straně Linuxu systému. Pokud chcete zkoumat procesy ve Windows, můžete použít utilitu netstat ve Windows z WSL pomocí technik zmíněných později v tomto článku.

nslookup: Použijte nslookup nebo dig v Linuxu místo toho

Chcete-li zjistit, kdo stojí za doménovým jménem, můžete na Windows použít nástroj nslookup. Stejně to můžete udělat i na Linuxu.

Na Linuxu existuje podobný příkaz nslookup:

nslookup linux-console.net

Můžete také použít nástroj dig:

dig linux-console.net

Oba tyto způsoby zobrazí „name servery“ doménového jména spojeného s adresou, kterou jste zadali, v tomto případě linux-console.net.

V závislosti na vašem Linuxovém systému nemusí být tyto nástroje nainstalovány ve výchozím nastavení. Na distribuci Ubuntu, která je výchozí pro WSL, nebyly. Pokud tyto nástroje chcete, budete muset nainstalovat jiný balíček nazvaný „bind9-dnsutils“.

Naštěstí se to dá snadno provést pomocí apt:

sudo apt install bind9-dnsutils  

Bonusový tip: Používejte příkazy Linuxu i Windows ve WSL

Pokud používáte WSL, můžete kombinovat příkazy Linuxu a Windows.

Na straně Linuxu můžete k příkazu přidat ".exe", abyste použili verzi pro Windows. Například pro spuštění příkazu netstat ve Windows:

netstat.exe

Z pohledu Windows můžete také spouštět příkazy Linuxu pomocí příkazu wsl. Například k spuštění příkazu ping z Linuxu v PowerShellu pomocí výchozí distribuce Linuxu:

wsl ping google.com


Pokud jste spouštěli síťové příkazy z příkazového řádku Windows, můžete to snadno udělat i z Linuxu, a WSL to dokonce zjednodušuje tím, že umožňuje spouštět příkazy z obou systémů. Mnoho příkazů Windows pochází ze systémů podobných Unixu, takže jsou si často velmi podobné.

Související články