Ръководство за начинаещи за овладяване на командата Netstat на Linux
Командата netstat
е основно средство за администриране на мрежата. Показва информация за подсистемата за мрежова поддръжка на Linux, включително данни за отворени мрежови връзки, маршрутизиращи таблици и статистически данни за инсталираните мрежови интерфейси.
Най-простата команда netstat е просто да изпълните инструмента без параметър:
NETSTAT
Това ще покаже списък с текущите отворени връзки на устройството ви. Резултатите обаче могат да бъдат малко трудни. Ето защо е по-добре да се разбият връзките по тип. За да видите всички отворени TCP връзки, използвайте:
netstat -t
Резултатът е списък с текущите връзки, които се извършват с вашия компютър. В горния пример можете да видите, че моята тестова машина работи с SSH сървър и че има установени SSH връзки.
Обърнете внимание на реда, който гласи " Активна интернет връзка (без сървъри) ". Последната част означава, че netstat не включва списък с сървъри, работещи на вашата машина; с други думи, той не изброява тези програми, които чакат TCP връзки, но понастоящем няма такива.
За да получите списък на активните TCP връзки и списък на пристанищата, които слушат TCP връзки, добавете -a
:
netstat -at
-a
означава "ALL" и добавя набор от порта за слушане. Поглеждайки надолу по списъка, можете да видите, че компютърът ми Linux също чака SSH връзки през IPv6.
Същата информация може да се генерира и за UDP чрез:
netstat -au
Обратното на флага -a
флагът -l
който прави netstat списък на пристанищата за слушане, но пропуска активните връзки.
За да видите списък на процесите, които имат отворени връзки или чакат връзки, използвайте флага -p
:
sudo netstat -atp
Можете да използвате -p
както и -t
за TCP, или -u
за UDP. Също така имайте предвид, че трябва да изпълните командата със sudo
. Знакът -p
прави тълкуването на списъка с връзки много по-лесно. От горния пример можете да видите, че сървърът SSH не работи само (sshd), но устройството има сървър CUPS, който се изпълнява заедно с мини сървъра DNSMasq.
Ако трябва да проверите дали дадена услуга работи, можете да използвате netstat във връзка с grep
. Например, при моята настройка за тестване, инсталирах имейл сървър (postfix). За да проверите дали тя работи, мога да използвам следното:
sudo netstat -ltp | grep smtp
-ltp
указва на netstat да се изброят само TCP сървърите (т.е. тези процеси, които слушат връзките), а grep
филтрира изхода, за да покаже само линиите с низ "smtp". В резултат на това можем да видим, че процесът " master "(което е името на основния процес на Postfix) слуша за IPv4 и IPv6 за входящи SMTP връзки.
netstat е в състояние да генерира доста статистическа информация за подсистемата за работа в мрежа. Изпробвайте следните команди:
netstat -i
да получите информация за използването на мрежовите интерфейсиnetstat -ie
да получите разширена информация за използванетоnetstat -s
да получите обобщена статистика за всеки от мрежовите протоколи (т.е. TCP, UDP, ICMP и т.н.)
За да получите текущата таблица за маршрутизиране на ядрото, използвайте:
netstat -rn
Таблиците за маршрутизиране на четене се нуждаят от обучено око, но по същество това, което е показано по-горе, е, че маршрутът по подразбиране (0.0.0.0) за всички пакети, различни от тези за локалната машина, ще бъде изпратен на 192.168.1.254. по подразбиране портал и моя интернет модем / рутер.
Можете да стартирате командата без -n
което означава, че netstat ще се опита да разреши адресите.
В страницата netstat man има пълен списък с всички налични опции, можете да го прочетете, като използвате:
човек netstat
Ако имате проблеми с посочените по-горе примери, можете да зададете въпрос в секцията за коментари по-долу.