Столкнулся с очень странной сетевой проблемой на VPS.
СИМПТОМЫ
SSH и TLS ломаются именно на стадии handshake, при этом само TCP-соединение устанавливается нормально.
SSH ПРИМЕР
sshd запущен и слушает нестандартный порт:
ss -lntp | grep :PORT
LISTEN 0 128 0.0.0.0:PORT users:(("sshd",...))
TCP connect проходит успешно:
nc -v VPS_IP PORT
Connection succeeded
Но SSH handshake не начинается — удалённый баннер от сервера не приходит:
ssh -4 -p PORT user@VPS_IP -vvv
Connection established.
Local version string SSH-2.0-OpenSSH
(no remote banner received)
TLS/HTTPS АНАЛОГИЧНО
На 443 TCP соединение устанавливается, но TLS handshake зависает/таймаутится.
ЧТО УЖЕ ПРОВЕРЕНО
MTU / PMTUD в порядке
DF ping с payload 1472 проходит без потерь:
ping -M do -s 1472 1.1.1.1
0% packet loss
IPv6 исключён:
ssh -4 ...
Firewall отключён
UFW/iptables пустые, локальной фильтрации нет.
SSH локально на VPS работает:
ssh -p PORT user@127.0.0.1
(соединение доходит до password prompt)
То есть sshd исправен и баннер отдаёт локально.
Tcpdump во время внешнего подключения
На интерфейсе eth0 видно, что сервер отправляет данные, но идут ретрансляции PSH:
Flags [P.], length XX
(repeated retransmissions)
То есть серверный баннер/данные уходят, но клиент их не получает или не подтверждает ACK.
ПОДОЗРЕНИЕ
Похоже на проблему сетевого уровня:
- upstream filtering
- DDoS mitigation
- DPI (режут SSH/TLS payload после TCP handshake)
- асимметричная потеря пакетов
Причём одинаково не работает и с домашнего, и с мобильного интернета (страна одна).
ВОПРОС
Кто сталкивался с ситуацией, когда TCP connect проходит,
но протоколы (SSH/TLS) не могут завершить handshake?
Какие ещё тесты можно сделать, чтобы точно доказать фильтрацию/mitigation
и понять, где именно ломается доставка данных?
Буду благодарен за любые идеи и опыт.
[/code
]
Отфарматирую чутиь позже