Більшість людей вважає, що перевірка відкритих портів — це завдання лише експертів із безпеки, доки їхній сервер не буде зламано через відкритий порт, про який вони навіть не підозрювали. Ви можете перевірити відкриті порти в Linux за допомогою вбудованих команд, таких як netstat, ss, lsof, nmap і netcat, або віддалено сканувати порти за допомогою PowerShell із систем Windows. Кожен метод пропонує різні рівні деталізації та вимагає різних дозволів.
Управління портом має більше значення, ніж будь-коли. Активність автоматизованої розвідки продовжує зростати, а зловмисники постійно шукають вразливі точки входу. Незалежно від того, чи захищаєте ви робочі сервери чи тестуєте локальні служби, оволодіння безпекою портів має основне значення для підтримки безпечної та функціональної системи.
TL; DR: короткий огляд
- Використовуйте ss або netstat для швидкої перевірки портів прослуховування без встановлення додаткових інструментів
- Розгорніть nmap, коли вам потрібне комплексне сканування портів із детальним виявленням служб
- Використовуйте lsof, щоб визначити, який конкретний процес використовує певний порт
- Використовуйте PowerShell Test-NetConnection із Windows, щоб перевірити порти на віддалених серверах Linux
Що таке порт простими словами?

Уявіть порти як пронумеровані двері на вашому сервері. Кожен порт служить кінцевою точкою зв’язку, де мережевий трафік входить або виходить із вашої системи. Номери портів варіюються від 0 до 65 535 і розділені на три категорії: загальновідомі порти (0-1023), зареєстровані порти (1024-49151) і динамічні порти (49152-65 535).
Простіше кажучи, коли ви переглядаєте веб-сайт, ваш браузер використовує порт 80 для HTTP або порт 443 для HTTPS. Сервери електронної пошти відповідають на порт 25 для SMTP, тоді як віддалений доступ SSH працює на порт 22. Ці порти прослуховування діють як шлюзи для законного трафіку, але вони також можуть стати точками входу для зловмисників, якщо їх залишити незахищеними.
Порти працюють у поєднанні з двома основними транспортними протоколами: TCP для надійного зв’язку, орієнтованого на з’єднання, і UDP для швидшої передачі даних без з’єднання. Розуміння того, як функціонують порти, допоможе вам приймати зважені рішення про те, які з них залишати відкритими, а які закривати для кращої безпеки.
Як перевірити відкриті порти в Linux

Linux надає кілька потужних інструментів для аналізу портів, кожен з яких має певні переваги. Деякі поставляються попередньо встановленими, а інші потребують встановлення. Вибір правильного інструменту залежить від вашого рівня дозволу, необхідних деталей і конкретного випадку використання.
Використання команди netstat
Команда netstat десятиліттями була надійним інструментом для аналізу мережі. Щоб перевірити відкриті порти, використовуйте netstat -tuln де кожен прапорець служить певній меті: -t показує TCP-з'єднання, -u відображає UDP-з'єднання, -l фільтрує лише прослуховування портів, а -n представляє результати в числовому форматі, а не розпізнає імена хостів.
Коли ви запустите цю команду, ви побачите результат, який показує протокол, локальну адресу з номером порту, зовнішню адресу та стан з’єднання. Наприклад, 0.0.0.0:22 вказує на те, що SSH прослуховує всі мережеві інтерфейси на порту 22. Кожен запис надає негайну видимість активних служб та їхнього мережевого стану.
The Команда Linux netstat пропонує додаткові позначки для більш детального аналізу. Додавання -p показує, який процес володіє кожним з’єднанням, хоча для цього потрібні привілеї root. Наприклад, sudo netstat -tulnp показує як порт, так і ідентифікатор процесу, який його використовує.
Використання команди ss
Команда ss служить сучасною заміною netstat, пропонуючи чудову продуктивність і більш детальну статистику сокетів. використання сс -тулн з тими самими прапорами, що й netstat для порівнянного виведення. Однак ss обробляє інформацію швидше, особливо в системах з великою кількістю підключень.
Щоб перевірити відкриті порти за допомогою розширеної фільтрації, ss надає потужні параметри синтаксису. Біг сс -тулнп | grep :22 показує лише зв’язки, пов’язані з SSH. Команда сс -тн встановлений стан відображає всі встановлені з'єднання TCP, допомагаючи вам відстежувати активні сесії.
Однією з переваг ss є його здатність фільтрувати за певними критеріями. Наприклад, ss -t ‘( dport = :80 або sport = :80 )’ показує лише з’єднання, пов’язані з веб-трафіком на порту 80. Ця точність робить ss безцінним для усунення несправностей певних проблем служби.
Використання команди lsof
Команда lsof чудово допомагає визначити, який процес використовує певний порт. Біг sudo lsof -i -P -n показує всі мережеві підключення з деталями процесу. Прапор -i фільтрує підключення до Інтернету, -P запобігає перетворенню номерів портів у назви служб, а -n пропускає вирішення DNS для швидшого результату.
Якщо вам потрібно знайти, що використовує певний порт, lsof надає відповідь. Наприклад, sudo lsof -i :3306 показує, чи запущено MySQL і ідентифікатор якого процесу ним володіє. Це стає вирішальним під час усунення конфліктів портів або виявлення неавторизованих служб.
Ви також можете фільтрувати результати за певними програмами. Якщо ви підозрюєте, що певна програма прослуховує неочікувані порти, sudo lsof -i -a -p [PID] показує всі мережеві підключення для цього конкретного ідентифікатора процесу.
Використання Nmap для сканування портів

Nmap є одним із найповніших доступних інструментів сканування портів. Спочатку встановіть його за допомогою sudo apt встановити nmap на системах Ubuntu або Debian. Для локальних перевірок портів використовуйте локальний хост nmap or nmap 127.0.0.1 для основного сканування.
Для віддалених серверів вкажіть IP-адресу: nmap 192.168.1.100. Nmap надає детальну інформацію про відкриті порти, версії служб і навіть виявлення операційної системи з розширеними прапорцями. Команда nmap -sV локальний хост виконує визначення версії служби, показуючи, яке саме програмне забезпечення працює на кожному порту.
Команди безпеки цінують здатність Nmap тестувати правила брандмауера. Біг nmap -Pn [IP] сканує хост, навіть якщо ping заблоковано. Однак завжди переконайтеся, що у вас є дозвіл перед скануванням віддалених серверів, оскільки неавторизоване сканування портів може порушити політику безпеки.
Використання Netcat (nc) для перевірки відкритих портів
Netcat пропонує простий підхід до перевірки портів з мінімальними витратами. Команда nc -zv локальний хост 22-80 сканує діапазон портів від 22 до 80, показуючи, які порти приймають підключення. Прапор -z вмикає режим сканування без надсилання даних, тоді як -v забезпечує докладний вивід.
Для перевірки одного порту nc -zv ім'я хоста 443 швидко підтверджує, чи доступний HTTPS. Цей метод виявляється корисним у сценаріях і автоматизованих робочих процесах. Ви можете поєднати netcat із циклами оболонки для ширшого сканування: для порту в {1..1000}; do nc -zv локальний хост $порт 2>&1 | grep вдалося; зроблено
The слухач netcat функціональні можливості поширюються за межі перевірки портів до фактичного тестування послуг і передачі даних, що робить його універсальним інструментом у наборі інструментів будь-якого адміністратора.
Використання PowerShell для перевірки відкритих портів
PowerShell дозволяє користувачам Windows перевіряти відкриті порти на віддалених серверах Linux без встановлення додаткового програмного забезпечення. Команда Test-NetConnection -ComputerName [Linux-IP] -Port 22 перевіряє доступність SSH з машини Windows.
Для сканування кількох портів створіть простий цикл PowerShell: 1..1024 | ForEach-Object { Test-NetConnection -ComputerName 192.168.1.100 -Port $_ -WarningAction SilentlyContinue } | Where-Object { $_.TcpTestSucceeded }. Цей метод ефективно працює під час перевірки портів на Ubuntu, Debian або будь-якому іншому дистрибутиві Linux із систем Windows.
Перевага PowerShell полягає в його інтеграції з інфраструктурою Windows. Ви можете експортувати результати в CSV, надсилати сповіщення електронною поштою або запускати автоматичні відповіді на основі статусу порту, що робить його ідеальним для моніторингу гібридного середовища.
Порівняння методів сканування портів
| Інструмент | Синтаксис команди | Найкраще для | передумови |
| netstat | netstat -tuln | Короткий огляд портів прослуховування | Попередньо встановлено на більшості систем |
| ss | сс -тулн | Швидка продуктивність, детальна інформація про сокет | Попередньо встановлений (сучасний Linux) |
| lsof | sudo lsof -i -P -n | Визначення того, який процес використовує порт | Потрібен доступ root/sudo |
| nmap | локальний хост nmap | Комплексне сканування портів | Необхідно встановити окремо |
| netcat | nc -zv порт хоста | Прості тести підключення до порту | Попередньо встановлений або простий монтаж |
| PowerShell | Test-NetConnection | Віддалене сканування з Windows | Потрібна машина Windows |
Загальні порти Linux і пов’язані з ними служби
| Порт | Сервіс | Протокол | Загальне використання |
| 22 | SSH | TCP | Безпечний віддалений доступ через Віддалене підключення SSH |
| 80 | HTTP | TCP | Незашифрований веб-трафік |
| 443 | HTTPS | TCP | Зашифрований веб-трафік |
| 21 | FTP | TCP | Передача файлів |
| 25 | SMTP | TCP | Надсилання електронною поштою |
| 3306 | MySQL | TCP | Підключення до бази даних |
| 5432 | PostgreSQL | TCP | Підключення до бази даних |
Конфігурація порту вимагає знання налаштувань брандмауера та прив’язки служб. Багато адміністраторів змінити порт SSH в Linux зі стандартного 22 на нестандартний порт, щоб зменшити спроби автоматизованих атак. The Telnet проти SSH дебати підкреслюють, чому порт 23 (Telnet) має залишатися закритим на користь зашифрованого протоколу SSH порту 22.
Розуміння відкритих портів у Linux

Кожен відкритий порт є потенційною точкою входу у вашу систему. Наслідки для безпеки посилилися, активність автоматичного сканування портів різко зросла 16,7% у всьому світі, оскільки суб’єкти загрози постійно шукають вразливі точки входу. Ці розвідувальні дії сканують мільярди портів щомісяця, шукаючи неправильно налаштовані служби чи застаріле програмне забезпечення.
Чесно, але що насправді відбувається, коли зловмисники знаходять відкритий порт? Портові штати розповідають вам історію. Порт у стані LISTEN приймає вхідні підключення, ESTABLISHED вказує на активну передачу даних, а TIME_WAIT показує нещодавно закрите з’єднання, яке все ще відстежується. Зловмисники використовують відкриті порти різними методами: атаки грубою силою на SSH (порт 22), впровадження SQL через веб-порти (80/443) і віддалене виконання коду через вразливі служби.
Безпечне відкриття портів вимагає глибокого захисту. Почніть із політики заборони брандмауера за умовчанням. Перевірте свою конфігурацію за допомогою iptables показує правила. Відкривайте порти лише для служб, якими ви активно користуєтеся, і негайно закривайте їх, коли вони більше не потрібні. Розгляньте можливість зміни стандартних портів для звичайних служб, щоб зменшити ефективність автоматичного сканування.
Екосистема Linux зіткнулася зі значними проблемами безпеки, оскільки сотні вразливостей вимагали виправлень. Регулярний аудит портів допомагає виявити неавторизовані служби раніше, ніж зловмисники. Використовуйте інструменти передачі файлів, які поважають межі безпеки, наприклад копіювання файлів через SSH замість незашифрованого FTP. Під час переміщення файлів між системами за допомогою SCP для копіювання файлів з віддаленої системи в локальну забезпечує зашифровану передачу через безпечний канал SSH.
Найкращі практики включають реалізацію стуку портів для конфіденційних служб, використання fail2ban для блокування повторних помилок автентифікації та ведення докладних журналів спроб підключення. Плануйте регулярні перевірки безпеки, щоб перевірити, які порти залишаються відкритими та чи служать вони законним цілям.
Як Linux VPS Cloudzy спрощує керування портами
Управління портами стає значно легшим завдяки добре налаштованій інфраструктурі. Cloudzy’s Linux VPS Рішення забезпечують попередньо налаштовані параметри безпеки, які включають інтелектуальні правила брандмауера та спрощене керування портами через інтуїтивно зрозумілу панель керування. Завдяки повному кореневому доступу ви повністю контролюєте, які порти відкривати та закривати.
Отримайте собі економний або преміальний Linux VPS для розміщення вашого веб-сайту або віддаленого робочого столу за найнижчою ціною. VPS працює на Linux KVM для підвищення ефективності та працює на потужному апаратному забезпеченні з накопичувачем NVMe SSD для збільшення швидкості.
ДетальнішеПід час перевірки та керування портами продуктивність має значення. Сховище NVMe від Cloudzy забезпечує ефективну роботу інструментів сканування портів, а з’єднання зі швидкістю до 10 Гбіт/с обробляють великий трафік без вузьких місць. Інфраструктура виграє від того факту, що Linux забезпечує значну частину глобальної серверної інфраструктури, що робить ці оптимізовані конфігурації перевіреними в боях і надійними.
Починаючи лише з 3,96 дол. США на місяць, ви отримуєте середовище професійного рівня, ідеальне для практики керування портами. Кілька місць розташування центрів обробки даних дозволяють тестувати георозподілені налаштування, а цілодобова підтримка 7 днів на тиждень допомагає налаштувати складні конфігурації брандмауера або вирішити проблеми, пов’язані з портами. Незалежно від того, як ви вчитеся перевіряти відкриті порти в Linux чи розгортаєте виробничі служби, наявність гнучкого середовища VPS прискорить впровадження безпеки.
Висновок
Отже, який найкращий спосіб перевірити відкриті порти? Простіше кажучи, такого немає. Для швидких локальних перевірок ss або netstat виконають роботу без зайвих зусиль. Якщо вам потрібні комплексні перевірки безпеки, Nmap розкриває все. Щоб відстежити, який процес володіє портом, lsof заощаджує години здогадок. PowerShell з’єднує Windows і Linux, коли вам потрібна віддалена перевірка.
Справжній урок полягає не в запам’ятовуванні команд. Йдеться про те, щоб зробити аудит портів рутиною, а не паніку. Плануйте щотижневе сканування, закривайте невикористовувані порти, щойно ви їх помітите, і документуйте, які служби потребують яких портів. Такий підхід перетворює перевірку портів із реактивного пожежогасіння на проактивний захист.