Ответ
В DevOps-практике проверка доступности портов — рутина для диагностики сетевых сервисов и фаерволов.
Для локального хоста (проверка, какие порты слушает система):
# Используем ss (современная замена netstat)
ss -tuln | grep LISTEN
# Или для детального вывода по процессам
sudo lsof -i -P -n | grep LISTEN
Для удаленного хоста (проверка доступности сервиса извне):
# Быстрая проверка TCP-порта с помощью netcat (nc)
nc -zv example.com 443
# Проверка с таймаутом (5 секунд)
timeout 5 bash -c '</dev/tcp/example.com/443 && echo Open || echo Closed'
# Полноценное сканирование с Nmap (устанавливается отдельно)
nmap -p 22,80,443 --open example.com
Автоматизация в скриптах (например, для health-check в CI/CD):
#!/bin/bash
HOST="api.service.internal"
PORT=8080
if nc -z -w 2 "$HOST" "$PORT"; then
echo "SUCCESS: Port $PORT on $HOST is reachable"
exit 0
else
echo "ERROR: Cannot connect to $HOST:$PORT"
exit 1
fi
Ключевые моменты для DevOps:
- Проверяйте не только доступность порта, но и ответ сервиса (например,
curl -Iдля HTTP). - Учитывайте сетевые политики Kubernetes/облачных провайдеров и настройки Security Groups.
- Для UDP-сервисов используйте специализированные инструменты вроде
nmap -sU.