🕵️ QA-история: Почему таймаут — это не всегда про порт? 🤔
Недавно столкнулся с интересным кейсом. Один сервер (назовём его Сервер A) пытался подключиться к другому (Сервер B), но каждая попытка заканчивалась таймаутом.
Классика, думаю. Сейчас быстренько telnet
, curl
, nc
— и будет счастье.
Но не тут-то было. 😓
🔍 Первые шаги диагностики
Проверка связи с A до B:
telnet server-b 8080
# ➔ соединение есть
nc -vz server-b 8080
# ➔ соединение установлено успешно
curl -v http://server-b:8080/ping
# ➔ зависает, затем: Connection timed out
❗ То есть соединиться можно, но ответа нет. Интересно.
🛠️ Диагностика с двух сторон
✅ На стороне Сервер B:
sudo netstat -tulnp | grep 8080
# ➔ сервис слушает порт
📄 Логи:
Смотрю логи — запросы приходят, ответы отправляются. Всё как надо.
📡 Анализ сетевого трафика:
sudo tcpdump -i eth0 port 8080
# ➔ видно, что пакеты приходят и уходят
🔬 Wireshark — наше всё:
На Сервере A снимаю трафик:
sudo tcpdump -i eth0 host server-b and port 8080 -w trace.pcap
Открываю .pcap
в Wireshark и вижу:
SYN → SYN-ACK → ACK → [DATA] → …
А дальше — ничего. ❌ Ответы не доходят обратно.
🔥 Разгадка
После долгих раскопок и привлечения инфраструктурной команды выяснилось:
🔥 Фаервол на Сервере A блокировал входящие ответы, так как они приходили с другого региона (IP-диапазон отличался).
☞ То есть:
— Сервер A мог отправлять запросы (исходящие пакеты разрешены)
— Но когда Сервер B отправлял ответ — фаервол A блокировал его (входящие из этого региона были запрещены)
💡 Поэтому и был таймаут. Запрос-то отправляется, а вот ответ “теряется” по пути.
📚 Полезные команды из практики:
# Проверить соединение:
nc -vz server-b 8080
telnet server-b 8080
# Проверить маршрут:
traceroute server-b
# Посмотреть открытые порты:
sudo netstat -tulnp
# Снять трафик:
sudo tcpdump -i eth0 host server-b -w trace.pcap
# Анализировать в Wireshark:
открыть trace.pcap
🧠 Мораль QA-истории
Если telnet работает — это ещё не значит, что всё хорошо.
Иногда таймаут не связан с портом — причина может быть глубже: фаервол, маршруты, политика безопасности.
🔐 “Выходить можно. А вот вернуться — нет.” — сказал фаервол.
📦 SEO-бонус: Ключевые слова для продвижения
- таймаут подключения
- QA диагностика сети
- curl зависает
- telnet работает но нет ответа
- firewall блокирует ответ
- Wireshark анализ
- tcpdump команды
- как найти причину таймаута
- сетевые ошибки QA
- дебаг таймаута
😎 Будь героем текста!
Увидел косяк? 🚬 Орфографический монстр 👻 подкрался незаметно?
✂️ Выделяйте ошибку и нажимайте Ctrl + W
Мы примем удар на себя 👨💻 и всё исправим 🛠️ Спасибо за бдительность!
2 комментария
я точно це пропустила, але піду шукати той пост)
До речі, в свою першу міжнародну компанію я потрапила завдяки талановитій рекрутерці, яка мені пояснила, що варто переподатись на схожу позицію, бо мій досвід вартий більшого, зразу передала мене керівниці, і за два дні я мала офер. Уже працюючи в компанії, познайомилась із «айчаром» і зрозуміла, що в неї не пройшла б навіть первинну співбесіду. На жаль, забула прізвище тої шикарної рекрутерки, тіки пам’ятаю ім’я, а так би давно вже їй написала, і може б була вже з роботою)