← Назад к вопросам

Как проверить доступность порта на Linux?

2.0 Middle🔥 201 комментариев
#DevOps и инфраструктура

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Способы проверки доступности порта на Linux

Проверка доступности портов — это критическая задача при разработке и отладке приложений. На Linux существует несколько проверенных методов.

1. Утилита netstat

Классический инструмент для анализа сетевых соединений:

netstat -tuln | grep :8080
netstat -tuln | grep LISTEN

Парамет­ры:

  • -t — TCP соединения
  • -u — UDP соединения
  • -l — слушающие сокеты
  • -n — числовой формат (IP:PORT)

2. Утилита ss (рекомендуется)

Современная замена netstat, встроена во все дистрибутивы:

ss -tuln | grep :8080
ss -tlnp  # с названиями процессов

3. lsof — Список открытых файлов

Мощный инструмент для проверки процессов, занимающих порт:

lsof -i :8080
lsof -i TCP:8080
lsof -i :8080 -sTCP:LISTEN

Отобразит PID, имя процесса и пользователя, владеющего соединением.

4. Проверка из Python

Для программной проверки доступности порта:

import socket

def is_port_open(host: str, port: int, timeout: int = 2) -> bool:
    """Проверяет, открыт ли порт на хосте"""
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(timeout)
    try:
        result = sock.connect_ex((host, port))
        return result == 0
    finally:
        sock.close()

# Использование
if is_port_open("localhost", 8080):
    print("Порт 8080 открыт")
else:
    print("Порт 8080 закрыт")

5. Проверка с использованием telnet

Простой способ проверить соединение:

telnet localhost 8080

Или через echo и /dev/tcp:

(echo >/dev/tcp/localhost/8080) && echo "Порт открыт" || echo "Порт закрыт"

6. Проверка с использованием curl

curl -v telnet://localhost:8080

Быстрая шпаргалка

КомандаНазначение
ss -tulnВсе слушающие сокеты
ss -tuln | grep :8080Проверить порт 8080
lsof -i :8080Процесс на порту 8080
netstat -tulnpВсе подключения с PID
cat /etc/servicesСтандартные порты

Практические советы

При разработке приложения:

  • Используйте ss -tlnp для полной информации о слушающих портах
  • Проверяйте через lsof -i перед запуском нового сервиса
  • В скриптах используйте Python socket или curl для автоматизации

При решении проблем:

  • Проверьте правила firewall: sudo ufw status
  • Убедитесь, что приложение действительно слушает порт
  • Используйте tcpdump для анализа трафика
  • Проверьте логи приложения на ошибки binding

В production:

  • Мониторьте открытые порты регулярно
  • Закрывайте неиспользуемые порты на firewall
  • Используйте только необходимые портовые привязки
Как проверить доступность порта на Linux? | PrepBro