Як я можу перерахувати свої відкриті порти на 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.