Что говорит код
Текст «Подключение не установлено, т. к. конечный компьютер отверг запрос на подключение» соответствует WSAECONNREFUSED, коду 10061. В этом случае ваш запрос дошёл до цели, и целевой узел ответил, что никакая программа не принимает соединения на этот порт. То есть связь есть, а слушающего процесса нет.
Это отличает 10061 от тайм-аута: там ответа не было вовсе. Тут ответ мгновенный и однозначный, поэтому ошибка возникает практически сразу после попытки.
Отказ также может отправить сетевой фильтр, настроенный отвечать отказом, а не молчать, но на практике это реже.
Причины в порядке вероятности
Чаще всего служба на удалённом компьютере не запущена: сервер базы данных, веб-сервер, почтовый сервер остановлен или упал. Второе — неверный порт или адрес: приложение стучится на порт, где ничего нет, либо на локальный адрес вместо удалённого.
Третья причина — служба слушает только на локальном адресе компьютера, поэтому снаружи её порт кажется закрытым. Четвёртая — брандмауэр настроен на активный отказ, а не на тихое отбрасывание. Пятая — промежуточный сервер или переадресация портов настроены неверно и ведут на пустой порт.
Отдельный случай — попытка подключиться к серверу, который находится в процессе перезапуска.
Как проверить: Ошибка сокета 10061
Если сервер ваш, войдите на него и убедитесь, что служба запущена и слушает нужный порт. В Windows это показывает команда netstat с параметрами, выводящими прослушиваемые порты и идентификаторы процессов. Проверьте, что адрес прослушивания не ограничен локальным.
С клиента выполните Test-NetConnection с адресом и портом. Если проверка возвращает отказ, а на самом сервере порт слушается, вероятна фильтрация или неверный адрес. Проверьте, что вы обращаетесь именно на тот адрес, где работает сервер.
Отдельно попробуйте подключиться с самого сервера к нему же. Если локально работает, а снаружи нет, причина в привязке к адресу или в брандмауэре.
Решения: Ошибка сокета 10061
Запустите нужную службу и настройте её автозапуск. Убедитесь, что порт в настройках приложения совпадает с портом сервера. Если служба слушает только локальный адрес, измените параметр привязки в её конфигурации на нужный сетевой интерфейс.
В брандмауэре создайте разрешающее правило для входящих соединений на этот порт. Если между вами и сервером стоит роутер, проверьте проброс портов.
После изменения конфигурации перезапустите службу и повторите подключение. Проверьте журнал службы: часто там записана причина остановки.
Типичные примеры
Разработчик запустил локальный сервер на одном порту, а клиент обращается к другому: получается мгновенный отказ. Администратор перезапустил службу базы данных, и клиент несколько секунд получает отказы, пока служба не поднялась. Пользователь подключается к адресу 127.0.0.1, но программа ожидает сервер на другой машине, и отказ логичен.
Во всех примерах помогает одно: убедиться, что на нужном адресе и порту действительно слушает нужная программа. Полезно смотреть в журнал службы: записи о запуске, ошибках привязки к порту и падениях объясняют отказ лучше любых догадок.
Учтите и разницу между локальным адресом и адресом сети. Обращение по имени localhost и по внешнему адресу компьютера может давать разный результат: служба, привязанная только к локальному интерфейсу, откажет внешним подключениям. Проверьте, к какому именно адресу вы пытаетесь подключиться и какой адрес указан в конфигурации службы.
Когда виноват чужой сервер
Если вы подключаетесь к стороннему сервису и получаете отказ, значит, на его стороне порт закрыт, служба остановлена либо изменился адрес. Сообщите поддержке точный адрес и порт.
Убедитесь, что вы не используете устаревший адрес из старой инструкции или конфигурации. Серверы иногда переезжают на другой порт или домен.
Если отказ приходит только из вашей сети, а из другой всё работает, проверьте настройки промежуточного сервера и локального брандмауэра: они могут отвечать отказом на определённые порты.