Найти в Дзене
Герман Геншин

Замена сетевых команд Windows на Linux: всё просто как никогда! Не пропустите секреты для WSL

Оглавление

Если вы привыкли работать с сетевыми командами в Windows — такими как ping или tracert — то, оказавшись в Linux (или внутри WSL), легко запутаться: есть ли тут что-то похожее? Спокойно, всё это на месте и даже больше!

ping

Помню, как на одной из первых пар по сетям преподаватель продемонстрировал ping в командной строке Windows. С тех пор мы и не расставались — даже после полного перехода в Linux (и в WSL тоже пользуюсь именно ей).

Самая простая проверка сети в Linux и WSL — просто введите ping и нужный адрес или домен.

-2

Можно проверить и подключение к локальному компьютеру — так называемому "loopback-интерфейсу". Ping показывает, доступен ли другой хост и отвечает ли он на ваши запросы. Учтите: некоторые сайты специально блокируют ping из соображений безопасности. А ещё по ping удобно проверить, проблема у вас, или сайт реально у всех не работает.

Важное отличие: в Linux ping по умолчанию работает бесконечно, пока не нажмёте Ctrl + C. В Windows ping по умолчанию делает 4 попытки и завершает работу сам. После остановки Linux-версия выведет сводную статистику по пакетам.

-3

Хотите, чтобы ping сработал определённое число раз? Просто добавьте опцию -c с нужным количеством попыток. Например, если нужно четыре запроса:

-4

tracert: traceroute или tracepath в Linux

В Windows очень удобно искать "вторые дна" в маршруте с помощью tracert — он показывает, как ваш трафик проходит до нужного сервера через все промежуточные точки сети. Не все из них отвечают, но эта команда реально спасает при отладке проблем с соединением.

В Linux tracert нет, её заменяет traceroute:

Или попробуйте tracepath:

-5

В разных сборках Linux эти команды могут быть не установлены "из коробки". Если увидите ошибку — просто установите нужный пакет через менеджер пакетов вашей системы.

Совет: попробуйте mtr! Он совмещает ping и traceroute. В Ubuntu команду mtr установить проще простого:

Далее используйте её с адресом сайта или IP — как ping или traceroute:

По умолчанию откроется графическое окно, где маршрут будет тестироваться в реальном времени. Хотите вывод прямо в терминал? Добавьте параметр -t:

-6

Можно задать этот режим навсегда, прописав переменную среды MTR_OPTIONS:

Добавьте это в .bashrc или .zshrc, и команда mtr всегда будет вести себя именно так.

В отличие от обычных traceroute, mtr выводит ещё и подробную статистику по каждому узлу: средние, минимальные, максимальные задержки и даже стандартное отклонение. Разобраться, где "затык" или потери в связи, становится гораздо проще!

ipconfig — теперь просто ip в Linux

В Windows за всеми сетевыми настройками следит ipconfig. В Linux долгие годы этим занималась команда ifconfig, но теперь эстафету приняла новая команда — ip.

Чтобы посмотреть все сетевые интерфейсы на компьютере:

-7

А чтобы узнать свой IP-адрес:

-8

В WSL2 по умолчанию отобразится IP виртуальной машины WSL. Всё, что относится к сетям Windows, лучше смотреть штатными средствами самой Windows — Linux-команды здесь не помогут.

netstat — вместо него lsof или ss

Иногда нужно быстро выяснить, какие программы сейчас подключены к интернету: вдруг что-то подозрительное "бликует" в фоне? В Windows тут незаменим netstat, но в Linux есть аналогичные инструменты.

lsof обычно используют для проверки открытых файлов, но в Linux всё — файл, включая сетевые соединения! Просто введите lsof в терминале:

-9

По умолчанию lsof покажет всё, что открыто в системе. Чтобы вывести только интернет-соединения, используйте опцию -i:

Есть ещё команда ss — она, как и netstat, показывает активные подключения и слушающие порты:

-10

Важно: в WSL эти команды показывают только активность Linux-приложений. Если нужен список подключений Windows-программ — запускайте netstat Windows прямо из-под WSL. Как? Читайте дальше!

nslookup: используйте nslookup или dig на Linux

Чтобы узнать, к какому серверу привязан домен, в Windows используют nslookup. В Linux команды почти не отличаются!

Подпишитесь: только лучшие советы по сетям в Linux и WSL

В Linux просто введите nslookup:

-11

А если хочется больше деталей — используйте dig:

-12

Обе команды покажут, к каким DNS-серверам привязан выбранный домен.

Есть нюанс: в большинстве свежих дистрибутивов Linux dig и nslookup по умолчанию отсутствуют — в частности, в Ubuntu на WSL. Здесь поможет установка пакета bind9-dnsutils.

Добавить его очень просто — одна команда apt, и всё работает:

Бонус: как запускать команды Windows и Linux в WSL одновременно!

Если вы работаете через WSL, используйте возможности обеих систем одновременно!

В Linux-дистрибутиве WSL достаточно дописать ".exe" к любой знакомой команде — и получите версию из Windows. Например, чтобы вызвать netstat Windows:

-13

А если вы всё-таки в Windows, просто пропишите в PowerShell: wsl + нужная команда из мира Linux:

Если вы уже освоили сетевые команды Windows, то в Linux откроется ещё больше возможностей. Особенно в WSL — тут можно пользоваться обоими наборами команд сразу. И, кстати, большинство сетевых утилит Windows когда-то появились именно на Unix — не зря они такие похожие!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: