Як перевірити відкриті/закриті порти на комп'ютері?
Я використовував netstat -a
в командному рядку.
Існує кілька параметрів в netstat
, які є корисними для цього:
-l
або --listening
показує тільки ті сокети, які в даний момент прослуховують вхідне з'єднання.-a
або --all
показує всі використовувані в даний момент сокети.-t
або --tcp
показує tcp-сокети.-u
або --udp
показує udp-сокети.-n
або --numeric
показує хости і порти у вигляді чисел, замість перетворення в dns і пошуку в /etc/services.Ви можете використовувати їх комбінацію, щоб отримати те, що вам потрібно. Щоб дізнатися, які номери портів в даний час використовуються, скористайтеся одним з цих способів:
netstat -atn # Для tcp
netstat -aun # Для udp
netstat -atun # Для обох
У виведенні всі згадані порти використовуються або для прослуховування вхідного з'єднання, або з'єднані з одноранговим**, всі інші закриті. Порти TCP і UDP мають ширину 16 біт (вони йдуть від 1-65535)
** Вони також можуть бути підключеними/відключеними від однорангового пристрою.
Ви можете скористатися цією командою:
netstat -tulnp | grep <port no>
Якщо він показує якийсь процес, то він використовується. Закривається (не використовується), якщо немає виводу.
Чи свідчить статус порту &quo ;СЛУХАЄТЬСЯ&quo ; про те, що порт відкритий?
Так, це означає, що якась служба прослуховує цей порт на вашому комп'ютері на предмет вхідного з'єднання, тобто цей порт відкритий для встановлення нових з'єднань.
Чи означає, що будь-який порт, який не відображається у виведенні, що він закритий?
Так. Пам'ятайте, що netstat -a
покаже всі активні (прослуховування) і пасивні (непрослуховування) з'єднання, тобто порти, які виступають як в ролі сервера (деякі служби прослуховують ці порти для з'єднань з іншої машини/процесу), так і в ролі встановлених (з'єднання встановлюються на цих портах незалежно від того, що хост/служба може бути сервером або клієнтом)
Всі TCP і UDP порти відносяться до категорії, яка називається сокетами, і їх дуже багато. Переглянути інформацію про сокети можна за допомогою команди man ss
.