Сетевая ошибка WSAETIMEDOUT 10060: "Connection timed out"
Ошибка
Сетевая ошибка 10060: "Connection timed out"
Описание ошибки
Клиентская сторона не получила ответ от сервера в течение отведённого времени, обычно при попытке установить TCP-соединение. Частые причины:
1. Удалённый сервер не доступен:
- сервер не включен, не слушает нужный порт, или отвечает слишком медленно;
- указан неправильный IP адрес сервера, доменное имя или порт для подключения;
- вы подключаетесь по IPv6 адресу, а сервер работает по IPv4 или наоборот;
- приложение на сервере может быть "зависшим" или упало.
2. Потеря соединения:
- нет соединения с сетью (не подключен или неисправен сетевой кабель или Wi-Fi);
- качество линии связи очень плохое и клиент не успевает "достучаться" до сервера приемлемое время.
3. Мешает брандмауэр, антивирус, VPN, NAT или прокси
- ваши попытки подключения блокирует антивирус или брандмауэр, порт заблокирован (локальный, удалённый или между ними);
- некоторые провайдеры фильтруют порты (очень часто, например, 25 для SMTP);
- антивирус ошибочно "влезает" в трафик между клиентом и сервером и "ломает" его.
4. Проблемы маршрутизации:
- вы пытаетесь подключиться к адресу, недоступному из вашей сети (ошибки роутинга);
- пакеты "теряются" по дороге, хотя сервер доступен;
- внутренние DNS-разрешения ссылаются на IP, который недоступен из текущей сети.
Решение проблемы
1. Запустите cmd.exe
Откройте консоль. Меню "Пуск", "Выполнить" (или Win+R), и запустите cmd:
2. Проверьте доступность компьютера сервера.
Попробуйте ping <адрес_сервера> или tracert <хост_сервера>:
Если связь есть, переходим к следующему пункту, если нет (пишется "Превышен интервал ожидания для запроса") — проверяем, включен ли MyChat сервер и доступен ли компьютер по сети. Также стоит проверить физическое подключение вашего компьютера и компьютера с MyChat Server к сети. Если есть потери пакетов, также обратите на это внимание, это может быть из-за плохой связи (медленный канал, нестабильное соединение через спутник, проблемы в сети с неправильно работающим оборудованием или драйверами).
Если есть потери пакетов, то запустите ping <server_address> -t -l 1024. Протестируйте соединение пакетами по одному килобайту в течение хотя бы нескольких минут.
3. Проверяем подключение к серверу с помощью Telnet Client
По умолчанию в системе он не установлен, поэтому нужно установить Telnet Client через командную строку (работает в Windows 10, 11 и Windows Server): dism /online /Enable-Feature /FeatureName:TelnetClient (повышенных привилегий не требуется).
Либо через стандартный апплет "Программы и компоненты" — "Включение или отключение компонентов Windows":
Ищем его в списке и устанавливаем:
По умолчанию MyChat Server использует 2004 TCP порт, поэтому выполняем:
telnet <ip_mychat_сервера> 2004
Если ответа нету (выдало ошибку соединения):
Это означает, что неверно сконфигурирован роутер, либо файрвол, либо порт 2004 заблокирован антивирусом (на сервере, на клиентском компьютере или где-то между ними, если маршрутизация сложная).
Обычно в этих случаях проблема решается добавлением MyChat Client и MyChat Server в исключения файрвола (брандмауэра) и антивируса. Либо, для теста, можно попробовать временно отключить фаервол. Особенно это критично на серверной стороне — Windows Defender часто блокирует слушающие порты.
Стандартный список портов, которые использует MyChat.
4. Убедитесь, что сервер слушает именно этот порт.
На сервере нужно выполнить в консоли netstat -an | find ":2004" — должен быть статус LISTENING.
Также проверьте, что IP-адрес и порт, к которым подключается клиент, те же самые, что слушает сервер (bind). Также проверьте, что в сетевых настройках MyChat Server стоит "слушать все" (listen all), потому что если вы поставите там один сетевой интерфейс, а будете подключаться на другой, из другой подсети, соединение не будет работать. По умолчанию сервер слушает все доступные локальные сетевые интерфейсы: