Командата netstat на macOS е команда за терминал, използвана за показване на подробна информация за мрежовите комуникации на вашия Mac. Мрежовите комуникации включват всички начини, по които вашият Mac говори с външния свят, във всички портове и всички приложения. След овладяването на netstat, потребителите на Mac могат бързо да разберат какви връзки свързват техният компютър и защо.
Стартиране на Netstat
Командата netstat е налице по подразбиране за Mac. Не е необходимо да се изтегля или инсталира.
За да стартирате netstat, отворете прозореца на терминала. Ако не сте запознати с Терминала, той се намира в /Applications/Utilities/Terminal.app. Тип NETSTAT и натиснете Enter, за да изпълните командата.
Ще забележите, че огромно количество загадъчен текст ще започне да се движи на екрана ви. Това е нормално и очаквано. Без допълнителни опции netstat ще отчита всички активни мрежови връзки на вашия Mac. Предвид броя на функциите, които модерното мрежово устройство изпълнява, можете да очаквате списъкът да е продължителен. Стандартен отчет на netstat може да работи над 1000 линии.
Филтрирането на продукцията на netstat е от съществено значение за разбирането на това, което се случва на вашите активни пристанища на Mac. Можете да филтрирате продукцията на netstat с вградените флагове. Тези флагове ви позволяват да зададете опции, ограничаващи обхвата и изхода на netstat.
Flags и опции за Netstat
За да видите всички налични опции на netstat, въведете man netstat в командния ред. Това ще разкрие страницата на човека на netstat. Можете също така да прегледате онлайн версия на страницата man netstat.
NETSTAT -AabdgiLlmnqrRsSvWx -° С опашка -f address_family -I интерфейс -p протокол -w изчакайте
Netstat на macOS не работи по същия начин като netstat на Windows или netstat на Linux. Използването на флагове или синтаксис от тези реализации на netstat може да не доведе до очакваното поведение.
Бакшиш: Ако горният стенограф изглежда напълно неразбираем, научете се как да четете командата синтаксис.
-r показва маршрутната таблица, показваща как пакетите се маршрутират по мрежата.
-p протокол показва трафик, свързан с конкретен мрежов протокол. Докато пълният списък с протоколи може да бъде намерен в / etc / protocols, по-важните са udp и tcp.
-V увеличава подробностите, по-специално чрез добавяне на колона, показваща идентификацията на процеса (PID), свързана с всеки отворен порт.
-I интерфейс предоставя пакети данни за посочения интерфейс. Всички налични интерфейси могат да се видят с флага -i, но en0 обикновено е стандартният изходящ мрежов интерфейс. Забележете малката буква.
-g показва информация, свързана с връзки за множествено предаване.
-с показва статистическите данни за мрежата за всички протоколи, независимо дали са активни или не.
-н подтиска маркираните от отдалечени адреси с имена. Това драматично ускорява продукцията на netstat, като същевременно жертва само ограничена информация.
-а включва сървърните портове в изхода на netstat, които не са включени в изхода по подразбиране.
Примери на Netstat
За да приложим нашето разбиране на практика, нека разгледаме някои примери netstat.
netstat -apv TCP
Тази команда ще връща само TCP връзки на вашия Mac, включително отворени портове и активни портове. Той ще използва и подробен изход, в който са изброени PID, свързани с всяка връзка. netstat -a | grep -i "слушай"
Тази комбинация от netstat и grep ще разкрие отворени портове на Mac. Отворените портове са пристанища, които слушат за съобщение. Ако не сте запознати със синтаксиса, символа на тръбата | се използва за изпращане на изхода на една команда към друга команда. Ние извеждаме продукцията на netstat за grep, което ни позволява да я търсим за ключовата дума "listen" и да намерим нашите резултати. В допълнение към пълнофункционалната употреба чрез интерфейса на командния ред на терминала, някои от функциите на netstat също са достъпни чрез приложението Network Utility. Това вградено приложение macOS може да бъде намерено в / Applications / Utilities / Network Utility.app. Отворете приложението и кликнете върху него Netstat за достъп до графичния интерфейс за netstat. Опциите в Network Utility са много по-ограничени от тези, налични в командния ред. Четирите бутона за избор на бутони просто изпълняват предварително зададена команда netstat и показват изхода на екрана по-долу. Командите на netstat за всеки радио бутон са както следва: Фактът е, че прилагането на netstat на macOS не включва голяма част от функционалността, която потребителите очакват и се нуждаят. Докато има своите приложения, netstat не е толкова полезен за MacOS, колкото и за Windows. Друга команда, lsof, може да замести голяма част от липсващата функционалност. lsof показва всички файлове, които понастоящем се отварят от всички приложения. Това може да се използва и за проверка на отворени портове, свързани с приложения. Изпълнете lsof -i и ще видите списък на всички приложения, които комуникират по интернет. Това обикновено е целта, когато използвате netstat на Windows машини. Обаче единственият смислен начин да се изпълни тази задача на macOS не е с netstat, а с lsof. Показването на всеки отделен отворен файл или връзка с интернет често е преобладаващо подробно.Ето защо lsof идва с няколко знамена за ограничаване на резултатите със специфични критерии. Има много полезни флагове, които разширяват полезността на командата. Най-важните от тях са по-долу. За допълнително четене, включително повече флагове и технически обяснения за внедряването на всеки флаг, проверете страницата на човека на lsof или го пуснете човек lsof на терминален прозорец. -i показва всички отворени мрежови връзки и името на процеса, който използва връзката. Добавяне на 4, както в -i4, ще се показват само IPv4 връзки. Добавяне на 6 вместо (-i6) ще показва само IPv6 връзки. Най- -i флагът може да бъде разширен, за да уточни допълнителни подробности. -iTCP или -iUDP ще връща само TCP и UDP връзки. -iTCP: 25 ще връща само TCP връзки на порт 25. Различни портове могат да бъдат зададени с тире, тъй като -iTCP: 25-50. Използването на [email protected] ще връща само връзки към IPv4 адреса 1.2.3.4. IPv6 адресите могат да бъдат посочени по същия начин. Прекурсорът @ може също така да се използва за определяне на имена на хостове по същия начин, но както отдалечени IP адреси, така и имена на хостове не могат да бъдат използвани едновременно. -с типично принуждава lsof да показва размера на файла. Но когато се сдвоява с -i флаг, -с работи по различен начин. Вместо това, той позволява на потребителя да определи протокола и състоянието на командата да се върне. -p ограничава lsof до конкретен идентификатор на процеса (PID). Множество PID могат да се задават чрез използване на общи неща, като -p 123,456,789. Процесните идентификатори могат също да бъдат изключени с ^, както в 123, ^ 456, което изрично изключва PID 456. -Р деактивира преобразуването на номерата на портовете в имената на пристанищата, ускорявайки изхода. -н деактивира преобразуването на номерата на мрежата в имена на хостове. Когато се използва с -Р горе, тя може значително да ускори изхода на lsof. -ф потребител връща само команди, собственост на посочения потребител. Подобно на netstat, виждайки някои примери за LSOF, ще помогнем да практикуваме нашето разбиране. lsof [email protected]: 513
Тази сложна изглеждаща команда ще изброи всички TCP връзки с името на хоста lsof.itap и пристанището 513. Той също така ще стартира lsof без да свързва имена с IP адреси и портове, което прави командата да работи значително по-бързо. lsof-iTCP-sTCP: LISTEN
Това ще върне всяка TCP връзка със състоянието СЛУШАМ, Това разкрива всички отворени TCP портове на Mac. Той също така изброява процесите, свързани с тези отворени портове. Това е значително подобрение над netstat, което съдържа най-много PIDs. sudo lsof -i-u ^ $ (whoami)
Връща всички връзки не собственост на текущо влезлия потребител. Тази команда е малко по-различна от останалите, затова ще я разчупим подробно. Кредата се използва за отрицание. Всичко, което съответства на текста след каретата, ще бъде премахнато от резултатите. Получаваме името на влезлия в момента потребител, като стартираме кой съм аз вътре в командата lsof, заобиколен от $() за да позволи на lsof да получи достъп до неговата продукция като текст. Работата с sudo ви позволява да виждате задачи, които не са собственост на вас. Изпълнението на тази команда без sudo ще върне празен списък. Други команди за терминални мрежи, които може да са от интерес за проучването на вашата мрежа, включват arp, ping и ipconfig. Достъп до netstat чрез Network Utility
Допълване на netstat с lsof
lsof знамена и опции
Примерни примери
Други мрежови команди