Какво да знаете
- За да стартирате netstat и да видите подробни данни за мрежата на вашия Mac, отворете нов Terminal прозорец, въведете netstat и натиснетеВъведете.
- Ограничете изхода на netstat с флагове и опции. За да видите наличните опции на netstat, напишете man netstat в командния ред.
- Използвайте командата lsof, за да компенсирате липсващата или ограничена функционалност на netstat, включително показване на всички отворени в момента файлове във всяко приложение.
Тази статия обяснява как да стартирате командата netstat Terminal в macOS, така че да можете да видите подробна информация за мрежовите комуникации на вашия Mac, включително начините, по които вашият Mac говори с външния свят, през всички портове и всички приложения.
Как да стартирате Netstat
Научаването как да използвате netstat може да ви помогне да разберете връзките, които вашият компютър прави и защо. Командата netstat е налична на Mac по подразбиране. Не е необходимо да го изтегляте или инсталирате.
За да стартирате netstat:
-
Отидете на Finder > Отидете > Помощни програми.
-
Щракнете двукратно върху Terminal.
-
В новия прозорец на терминала въведете netstat и натиснете Return (или Enter) за да изпълните командата.
-
Огромно количество текст ще започне да се превърта на екрана ви. Ако не използвате нито един от наличните флагове (вижте по-долу), netstat отчита активните мрежови връзки на вашия Mac. Имайки предвид броя на функциите, които изпълнява едно модерно мрежово устройство, можете да очаквате списъкът да е дълъг. Един стандартен отчет може да включва над 1000 реда.
Флагове и опции на Netstat
Филтрирането на изхода на netstat е от съществено значение за разбирането какво се случва на активните портове на вашия Mac. Вградените флагове на Netstat ви позволяват да задавате опции, ограничавайки обхвата на командата.
За да видите всички налични опции на netstat, напишете man netstat в командния ред, за да разкриете страницата man на netstat (съкращение от „ръчно“). Можете също така да видите онлайн версия на страницата на ръководството на netstat.
Синтаксис
Важно е да се отбележи, че netstat на macOS не работи по същия начин като netstat на Windows и Linux. Използването на флагове или синтаксис от тези реализации на netstat може да не доведе до очакваното поведение.
За да добавите флагове и опции към netstat на macOS, използвайте следния синтаксис:
netstat [-AabdgiLlmnqrRsSvWx] [-c опашка] [-f адрес_семейство] [-I интерфейс] [-p протокол] [-w чакане]
Ако горната стенограма изглежда напълно неразбираема, научете как да четете синтаксиса на командите.
Полезни знамена
Ето някои от най-често използваните знамена:
- - a включва сървърни портове в изхода на netstat, които не са включени в изхода по подразбиране.
- - g показва информация, свързана с мултикаст връзки.
- - I предоставя пакети данни за посочения интерфейс. Всички налични интерфейси могат да се видят с - i флаг, но en0 обикновено е изходящият мрежов интерфейс по подразбиране. (Обърнете внимание на малката буква.)
- - n потиска етикета на отдалечени адреси с имена. Това ускорява изхода на netstat, като същевременно елиминира само ограничена информация.
- - p протокол изброява трафика, свързан с конкретен мрежов протокол. Пълният списък с протоколи е достъпен на /etc/protocols, но най-важните са udp и tcp.
- - r показва таблицата за маршрутизиране, показваща как пакетите се маршрутизират в мрежата.
- - s показва мрежовата статистика за всички протоколи, независимо дали протоколите са активни или не.
- - v увеличава многословността, по-специално чрез добавяне на колона, показваща идентификатора на процеса (PID), свързан с всеки отворен порт.
Интерфейсът
Примери за Netstat
Разгледайте тези примери:
netstat -apv TCP
Тази команда връща само TCP връзки на вашия Mac, включително отворени портове и активни портове. Той също така използва подробен изход, изброявайки PID, свързани с всяка връзка.
netstat -a | grep -i "слушам"
Тази комбинация от netstat и grep разкрива отворени портове, които са портове, които слушат за съобщение. Символът за тръба | изпраща изхода на една команда към друга команда. Тук изходът от netstat препраща към grep, което ви позволява да търсите в него по ключовата дума "слушай" и да намерите резултатите.
Достъп до Netstat чрез Network Utility
Можете също така да получите достъп до някои функции на netstat чрез приложението Network Utility, което е включено във версиите на macOS до Catalina (не е включено в Big Sur).
За да стигнете до Network Utility, въведете Network Utility в Spotlight Search, за да стартирате приложението, след което изберете раздела Netstat за достъп до графичен интерфейс.
Опциите в Network Utility са по-ограничени от тези, достъпни чрез командния ред. Всеки от четирите избрани бутона за избор изпълнява предварително зададена команда netstat и показва изхода.
Командите netstat за всеки бутон за избор са както следва:
- Показване на информация за таблицата за маршрутизиране работи netstat -r.
- Показване на изчерпателна мрежова статистика за всеки протокол работи netstat -s.
- Показване на информация за мултикаст работи netstat -g.
- Показване на състоянието на всички текущи връзки на сокет работи netstat.
Допълване на Netstat с Lsof
Внедряването на netstat в macOS не включва голяма част от функционалността, която потребителите очакват и от която се нуждаят. Въпреки че има своите приложения, netstat не е толкова полезен за macOS, колкото е за Windows. Различна команда, lsof, замества голяма част от липсващата функционалност.
Lsof показва отворени в момента файлове в приложения. Можете също да го използвате, за да проверите отворените портове, свързани с приложението. Изпълнете lsof -i, за да видите списъка с приложения, комуникиращи през интернет. Това обикновено е целта при използване на netstat на Windows машини; но единственият смислен начин за изпълнение на тази задача на macOS не е с netstat, а с lsof.
Lsof флагове и опции
Показването на всеки отворен файл или интернет връзка обикновено е многословно. Ето защо lsof идва с флагове за ограничаване на резултатите със специфични критерии. Най-важните са по-долу.
За информация относно повече флагове и технически обяснения за всеки от тях, вижте страницата с ръководството на lsof или изпълнете man 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 адреси и имената на хостове не могат да се използват едновременно.
- - s обикновено принуждава lsof да показва размера на файла. Но когато се съчетае с флага - i, - s работи по различен начин. Вместо това позволява на потребителя да посочи протокола и състоянието на командата, която да върне.
- - p ограничава lsof до определен идентификатор на процес (PID). Множество PID могат да бъдат зададени чрез използване на общи, като -p 123, 456, 789. Идентификаторите на процеси също могат да бъдат изключени с ^, както в 123, ^456, което конкретно би изключило PID 456.
- - P деактивира преобразуването на номера на портове в имена на портове, ускорявайки изхода.
- - n забранява преобразуването на мрежови номера в имена на хостове. Когато се използва с - P по-горе, може значително да ускори изхода на lsof.
- - u потребител връща само команди, притежавани от посочения потребител.
lsof Примери
Ето няколко начина за използване на lsof.
lsof -nP [email protected]:513
Тази сложно изглеждаща команда изброява TCP връзките с името на хоста lsof.itap и порта 513. Тя също така изпълнява lsof без свързване на имена към IP адреси и портове, правейки командата да работи значително по-бързо.
lsof -iTCP -sTCP:СЛУШАЙТЕ
Тази команда връща всяка TCP връзка със статус LISTEN, разкривайки отворените TCP портове на Mac. Той също така изброява процесите, свързани с тези отворени портове. Това е значителна надстройка спрямо netstat, който изброява най-много PID.
sudo lsof -i -u^$(whoami)
Други мрежови команди
Други мрежови команди на терминала, които може да представляват интерес при изследване на вашата мрежа, включват arp, ping и ipconfig.