Як я можу перерахувати свої відкриті порти на Debian?


58

Яка команда для відображення списку відкритих портів на сервері Debian?

Я спробував, netstat -a | egrep 'Proto|LISTEN'але мені хотілося б чогось більш конкретного, що фактично перелічує номер порту.

Відповіді:


86
 netstat -pln

-lперелічить порти прослуховування, -pтакож відобразить процес, -nпокаже номери портів замість імен. Додати, -tщоб показати лише порти TCP.


12
Для -pправильної роботи вам потрібно запустити це як root, sudo netstat -tplnінакше стовпець процесу не буде особливо корисним, якщо ви не користувач, процес якого прослуховується на заданому порту.
cjc

21

lsof -i -P

Перевірте сторінку чоловіка на lsofнаявність варіантів. -Pперелічує номер порту, а не ім'я, узяте з /etc/servicesRun як root, однак це надасть вам список усіх активних мережевих з'єднань та їх стан (прослуховування, встановлення тощо).


Це має бути правильна відповідь. Netstat не встановлений за замовчуванням
Жозе

10

Чого майже всі хочуть (TCP та UDP) netstat -tunlp.

Я використовую його щодня, може, щогодини. Злом 'lsof' є більш портативним (працює і на Solaris), але для Debian це не важливий пакет, його потрібно встановити.


Так, і запустіть його через sudo.
Martijn Heemels

1
Мій друг навчив мене запам'ятовувати цю команду з назвою квітки netstat -tulpenПрапор eдає додаткову інформацію.
Діле

1
І ось, у 2018 році, у моїй свіжій коробці Debian немає, netstatале є lsof. :)
Джейсон

10

Я великий шанувальник netstat -ntlpі lsof -i, як уже згадувалося.

Нова команда (er) для мене - ss .

Виклик виглядає так:

ss -l

Добре мати варіанти, що стосуються команд та прапорів.


1
варіанти особливо гарні , оскільки Монго докер контейнер (і , імовірно , багато інших) мали сс але не NETSTAT або Lsof
Foon

Я почав використовувати це як питання інтерв'ю. Напевно, запитували 40 різних людей. Досі ніхто не згадував сс. Я запитую це як ОП, то якщо вони відповідають, я кажу: "добре, я забираю Х, тепер як це зробити". Поки не закінчиться ідей.
dmourati

6

Ви можете зробити:

netstat -an | egrep 'Proto|LISTEN'

або просто:

netstat -anl

що дасть вам усі розетки для прослуховування в системі.


2
Це було б найкращим рішенням (де "best" визначається як "працює на найширшому діапазоні систем" (BSD, Linux, AIX, Solaris, я вважаю, HP-UX))
voretaq7

0

TechRepulic має гідну статтю, яку ви можете знайти тут . У ньому є кілька подібних команд, як ви перераховані вище, але також кілька варіантів. Я також настійно рекомендую використовувати nmap, щоб зробити сканування портів на розглянутому комп’ютері, щоб ви могли з зовнішньої точки зору побачити, які порти відкриті та прослуховані.


Скажіть, будь ласка, чому це було проголосовано? Оскільки я просто надав посилання з великою кількістю рішень, над якими було схвалено, а також з іншою перспективою проведення зовнішнього сканування. Дякую.
Ерік

8
Я не сказав, але на сервері за замовчуванням, як на більшості стек-бірж, ми, як правило, очікуємо, що ви поставите тут відповідь, а не просто посилання на інше місце. Посилання з часом відходять, але ми хочемо, щоб вміст у SF все ще був цінним, коли посилання відмирають.
Зоредаче

Єдиний рядок коду, який має вищенаведене посилання на статтю, - це sudo nmap -T4 -A -v 192.168.1.1/24все, що робити, - робити це без будь-яких деталей ... Це як читати задню обкладинку книги - багато слів без м'яса.
KingsInnerSoul

0

Порти прослуховування не такі, як порти, відкриті зовні. Потрібно врахувати брандмауер. Якщо ви спробуєте програму на зразок nmapіншого комп'ютера, ви зможете побачити відкриті порти, не заблоковані брандмауером.


0

Я вважаю за краще використовувати замість цього:

netstat -antp 
lsof -i 
netstat -lptu
netstat -tulpn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.