Мережева помилка WSAECONNRESET 10054: "Connection reset by peer"
Помилка
Мережева помилка 10054: "Connection reset by peer"
Опис помилки
Помилка виникає коли сервер примусово розриває з'єднання з клієнтом з якоїсь причини. Іноді причина розриву з'єднання пишеться у лозі клієнта, іноді (з міркувань безпеки) — ні.
Основні причини проблеми:
- IP адреса, MAC адреса або HardwareID комп'ютера клієнта входить до списку заблокованих, MyChat Server буде блокувати будь-які спроби підключення клієнта без пояснення причин;
- якщо якість з'єднання між клієнтом та сервером дуже низька і сервер тривалий час не отримує відповіді від клієнта, після чого примусово розриває з'єднання. Наприклад, канал зв'язку "забитий" торентами на максимальній швидкості. Або якість лінії зв'язку погана, з'єднання часто розривається. Це характерно для мобільних мереж в умовах поганого інтернет-з'єднання або великого навантаження на канал, наприклад, безкоштовних Wi-Fi в інтернет-кафе;
- NAT/Firewall визначив з'єднання як "мертве" і скинув його;
- протокол порушено, хтось втрутився у процес передачі даних та програма відправила несподівані дані, що не відповідають очікуваному протоколу;
- мережне з'єднання раптово обірвалося, наприклад, роутер/свіч був перезавантажений або переключили ноутбук в режим fly mode;
- ноутбук автоматично переключився між мережами, наприклад, Wi-Fi та мобільною точкою доступу, коли зникло з'єднання;
- на сервері включений захист від занадто частих підключень клієнтів (anti-ddos) і клієнтська програма тимчасово відключається через велике навантаження;
- на сервері заборонені мультилогіни (коли можна підключатися декількома пристроями під одним і тим самим обліковим записом одночасно);
- ви використовуєте неправильний пароль безпеки для підключення до сервера (або адміністратор увімкнув його, поки ви були офлайн).
- на сервері закінчились доступні ліцензії.
Варто зауважити, що іноді таке повідомлення у протоколі — норма, якщо відключення відбулося штатно. Наприклад, сервер був перезавантажений, клієнтська програма була відключена адміністратором в адмінці або скриптом. Або сервер примусово відключив клієнта через надто довгу відповідь або відсутність відповідей протягом тривалого часу (так званий keep-alive ping). Головне, щоби це не відбувалося постійно.
Вирішення проблеми
Якщо причина проблеми — чисто мережева, спочатку варто діагностувати її за допомогою консольної команди Windows ping <server_address> -t -l 1024. Якщо зв'язок стабільний і втрат пакетів немає, перевірте, чи не заблоковано ваш IP на сервері у фільтрах IP адрес, фільтрах HardwareID та фільтрах MAC-адрес.
Також варто включити шифрування, щоб антивіруси та фаєрволи не могли втручатися в процес передачі даних між клієнтом та сервером (MyChat Client, "Налаштування чату", "Мережа", "Мережеві налаштування", "Використовувати шифрування трафіку").
Як правило, щоб з'ясувати причину, чому сервер розриває з'єднання з клієнтом, слід зайти у WEB-консоль адміністрування сервера MyChat та переглянути системний лог.
Як зайти у WEB-консоль адміністрування MyChat?
Розділ "Інструменти" — "Перегляд протоколів". Тип протоколів: "Системні протоколи".
За системним протоколом можна зробити висновки про причину відключення клієнтської програми (за IP-адресою та UIN, якщо користувач встиг авторизуватися).
Використовуйте пошук за текстом (Ctrl+F).