Мережева помилка 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 <ip_mychat_сервера> або 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":
Шукаємо його у списку та встановлюємо:
Якщо відповіді немає (видає помилку з'єднання):
Це означає, що неправильно налаштований роутер або файрвол, або порт 2004 заблокований антивірусом (на сервері, на клієнтському комп'ютері або десь між ними, якщо складна маршрутизація).
Зазвичай у випадках проблема вирішується додаванням MyChat Client і MyChat Server у виключення фаєрвола (брандмауера) і антивіруса. Або, для тесту, можна спробувати тимчасово відключити фаєрвол. Особливо це критично на серверній стороні — Windows Defender часто блокує порти, що слухають.
Стандартний перелік портів, які використовує MyChat.
4. Переконайтеся, що сервер слухає цей порт.
На сервері потрібно виконати в консолі netstat -an | find ":2004" - має бути статус LISTENING.
Також перевірте, що IP-адреса і порт, до яких підключається клієнт, ті самі, що слухає сервер (bind). Також переконайтесь, що в мережевих налаштуваннях MyChat Server встановлено "слухати все" (listen all), тому що якщо ви поставите там один мережевий інтерфейс, а підключатиметеся на інший, з іншої підмережі, з'єднання не працюватиме. Стандартно сервер слухає всі доступні локальні мережеві інтерфейси: