Программа SocketException на вашем хост-компьютере разорвала установленное соединение
Обновлено: 21.11.2024
Вы также не получите эту ошибку, если клиент закроет соединение с помощью метода close() до того, как сервер отправит ответ. Это произошло, когда сервер закрыл соединение, в то время как клиент все еще ожидает чтения данных из своего InputStream.
Например, если вы используете BufferedReader для записи данных, он будет заблокирован, если вы не напишете \n или знак конца строки в сообщении.
Аналогично, на стороне сервера вы увидите следующую ошибку:
Это происходит, когда сервер считывает данные и блокируется вызовом read(), но работа клиента была завершена, на этот раз вы увидели сообщение на стороне сервера. Как видите, мы получаем SocketException с сообщением Connection reset. Это происходит, когда одна из сторон закрывает соединение без использования метода close().
Если вы являетесь клиентом и получаете эту ошибку при подключении к серверному приложению, вы можете сделать следующее:
<р>1. Во-первых, проверьте, работает ли сервер, выполнив telnet на хост-порте, на котором работает сервер.В большинстве случаев вы обнаружите, что либо сервер не работает, либо перезапускается вручную или автоматически. <р>2. Проверьте, был ли перезапущен сервер <р>3. Проверьте, не переключился ли сервер на другой хост <р>4. запишите ошибку <р>5. Сообщите о проблеме команде сервера
Тем не менее, как Java-программист, вы должны хорошо знать Socket API, как старый, так и новый, и если вам нужна рекомендация для повышения уровня ваших навыков, я предлагаю вам записаться на всеобъемлющий курс Java, например курс The Complete Java Programming MasterClass. Тим Бучалака на Udemy. Это не только самый полный курс, но и самый актуальный, и он охватывает новости из последних выпусков Java.
- java.sql.SQLException: не найден подходящий драйвер для 'jdbc:mysql://localhost:3306/mysql [решение]
- Как устранить ошибку java.lang.ClassNotFoundException: com.mysql.jdbc. Ошибка драйвера? (подсказка)
- java.sql.SQLServerException: индекс 58 выходит за допустимые пределы — JDBC (решение)
- Как исправить Вызвано: java.lang.NoClassDefFoundError: org/apache/log4j/Logger (решение)
- org.Springframework.Web.Context.ContextLoaderListener (решение)
- Как подключиться к базе данных MySQL в Java? (учебник)
- Исправление ошибки java.lang.UnsupportedClassVersionError неподдерживаемой основной.дополнительной версии 50.0 (решение)
- Как исправить «javac» не распознается как внутренняя или внешняя команда (решение)
- java.lang.ClassNotFoundException: ошибка org.apache.commons.logging.LogFactory (решение)
- Распространенные причины исключения java.lang.ArrayIndexOutOfBoundsException в Java? (решение)
- java.lang.ClassNotFoundException:
- Как избежать исключения ConcurrentModificationException в Java? (учебник)
- Как устранить ошибку "Не удалось создать виртуальную машину Java" в Java? (решение)
- 10 распространенных причин возникновения исключения java.lang.NumberFormatException в Java? (учебник)
- Как исправить ошибку времени компиляции "недопустимое начало выражения" в Java? (учебник)
- Причина и решение ошибки компилятора "ожидаемый класс, интерфейс или перечисление" в Java? (исправлено)
- Как устранить ошибку java.lang.OutOfMemoryError: пространство кучи Java в Eclipse, Tomcat? (решение)
- Как исправить ошибку «Ошибка: не удалось найти или загрузить основной класс» в Eclipse? (руководство)
- Как решить java.lang.classnotfoundException oracle.jdbc.driver.oracledriver? (решение)
- Как устранить ошибку времени компиляции "переменная могла не быть инициализирована" в Java? (ответ)
P. S. Стоит отметить, что и программирование сокетов, и сетевое программирование — это продвинутые навыки, и их стоит изучить. Если вы хотите узнать больше о программировании сокетов в Java, я предлагаю вам пройти бесплатный курс Java: Socket Programming Simplified на Udemy.
Эти ошибки становятся все более частыми на моем игровом сервере. Из-за них сервер постоянно закрывается и перезагружается.
Это код, из которого генерируются эти ошибки:
Размеры буферов установлены правильно, мы используем KeepAlive на сокете и использовали тайм-ауты отправки и получения.
Люди предполагали, что отключение брандмауэра поможет, но всякий раз, когда я это делаю, наш игровой сервер (выделенный сервер) перезагружается, как будто он подвергается атаке, поэтому брандмауэр должен оставаться включенным.
У кого-нибудь есть другие решения для этого?
PS: мы поддерживаем службы предотвращения DDoS-атак, которые могут ограничивать количество подключений.
Что именно представляют собой эти службы защиты от атак DDoS? Вы можете запустить команду netstat на сервере и просмотреть количество установленных подключений и посмотреть, не превышается ли ограничение, установленное вашими службами защиты от DDoS-атак
Я получаю неограниченное количество подключений, но, возможно, когда говорится о программном обеспечении на вашем хост-компьютере, это означает предотвращение DDoS-атак
3 ответа 3
Установленное соединение было прервано программным обеспечением на вашем хост-компьютере
Это типовое сообщение об ошибке, оно исходит от Windows. Основной код ошибки — WSAECONNABORTED. Что на самом деле означает не больше, чем «соединение было прервано». Вы должны быть немного осторожны с частью фразы «ваш хост-компьютер». В подавляющем большинстве прикладных программ Windows именно хост, к которому подключено настольное приложение, прерывает соединение. Обычно это сервер в другом месте.
Однако при реализации собственного сервера роли меняются местами. Теперь вам нужно прочитать сообщение об ошибке как «прервано приложением на другом конце провода». Что, конечно, не редкость, когда вы реализуете сервер, клиентские программы, использующие ваш сервер, вряд ли прервут соединение по какой-либо причине. Это может означать, что брандмауэр или прокси-сервер разорвали соединение, но это маловероятно, поскольку они обычно не позволяют установить соединение в первую очередь.
Вы действительно не знаете, почему соединение было прервано, если не знаете, что происходит на другом конце провода. Это, конечно, трудно найти. Если ваш сервер доступен через Интернет, не сбрасывайте со счетов возможность того, что вас проверяет сканер портов. Или ваши клиенты, ищущие игровой чит.
Ташриф Шариф — разработчик программного обеспечения, ставший техническим писателем. Он обнаружил свой интерес к технологиям после того, как случайно прочитал технический журнал. Теперь он пишет обо всем, что связано с технологиями, от Windows до iOS и потоковых сервисов. Подробнее
- Увидев в Minecraft, существующее соединение было принудительно закрыто, ошибка остановит вас во время игры.
- Чтобы приступить к устранению этой проблемы, отключите брандмауэр Windows и добавьте двоичный файл Java SE в список исключений.
- Посетите наш подробный центр компьютерных игр, чтобы получить больше интересной и полезной информации.
- Не забудьте заглянуть в наш подробный раздел Minecraft, где вы найдете еще больше полезных советов и рекомендаций по Minecraft.
Для решения различных проблем с ПК мы рекомендуем Restoro PC Repair Tool:
Это программное обеспечение устраняет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует работу вашего ПК для достижения максимальной производительности. Решите проблемы с ПК и удалите вирусы за 3 простых шага:
- Загрузите Restoro PC Repair Tool, который поставляется с запатентованными технологиями (патент доступен здесь).
- Нажмите «Начать сканирование», чтобы найти проблемы Windows, которые могут вызывать проблемы с ПК.
- Нажмите «Исправить все», чтобы устранить проблемы, влияющие на безопасность и производительность вашего компьютера.
- В этом месяце Restoro скачали 0 читателей.
При попытке войти в систему или получить доступ к серверу Minecraft вы можете столкнуться с ошибкой «Существующее соединение было принудительно закрыто удаленным хостом». Полная ошибка гласит:
Соединение потеряно
Внутреннее исключение: java.io.IOException: существующее соединение было принудительно закрыто удаленным хостом
Эта ошибка может возникать по нескольким причинам, поэтому и решение будет различаться. Распространенными причинами ошибки являются блокировка подключения брандмауэром, подключение к Интернету и проблемы с маршрутизатором.
В этой статье мы рассмотрим некоторые распространенные решения, которые помогут вам устранить существующее соединение, которое было принудительно закрыто из-за ошибки удаленного хоста на вашем сервере Minecraft.
Почему я получаю сообщение о закрытии соединения в Minecraft Bedrock?
Если вы столкнетесь с ошибкой «Нет подключения к Интернету» в Minecraft, ваше соединение будет принудительно закрыто. Этому есть множество причин, но наиболее вероятными являются проблемы с сервером.
Если сервер Minecraft не работает, возможно, вам придется связаться с администратором и сообщить о проблеме, чтобы ее можно было устранить.
Возможно также, что Minecraft не удалось аутентифицировать ваше соединение, и если это произойдет, убедитесь, что ваши учетные данные верны и ничто не блокирует работу программы.
Как исправить ошибку сервера Minecraft java.io.ioexception?
1. Отключить брандмауэр Windows
- Нажмите "Пуск" и выберите "Настройки".
- Откройте «Обновление и безопасность».
- Нажмите "Безопасность Windows".
- Прокрутите вниз и нажмите Брандмауэр и защита сети.
- Нажмите на текущую активную сеть.
- Переключите переключатель, чтобы отключить брандмауэр Windows.
- После отключения запустите Minecraft, чтобы проверить, устранена ли ошибка.
Если ошибка устранена, отключите общий доступ для Java™ Platform SE Binary. Вот как это сделать.
- Нажмите клавишу Windows + R.
- Введите appwiz.cpl и нажмите "ОК".
- В Панели управления выберите Система и безопасность.
- Откройте брандмауэр Защитника Windows.
- На левой панели нажмите ссылку Разрешить приложение или функцию через брандмауэр Защитника Windows.
- Найдите двоичный файл Java™ Platform SE.
- Установите флажок в поле Личное для параметра. Если для платформы Java существует несколько вариантов, отметьте их все как частные.
- Нажмите "ОК", чтобы сохранить изменения.
- Перезагрузите компьютер и попробуйте подключиться к серверу, чтобы проверить, устранена ли ошибка.
2. Изменить расстояние просмотра на стороне сервера
- Остановите сервер, если он запущен.
- Нажмите "Файлы".
- Выберите файлы конфигурации.
- Выберите Настройки сервера.
- Найдите параметр «Расстояние просмотра».
- Измените его на 4.
- Прокрутите вниз и нажмите "Сохранить", чтобы применить изменения.
- Запустите сервер и проверьте наличие улучшений.
Совет эксперта. Некоторые проблемы с ПК трудно решить, особенно когда речь идет о поврежденных репозиториях или отсутствующих файлах Windows. Если у вас возникли проблемы с исправлением ошибки, возможно, ваша система частично сломана. Мы рекомендуем установить Restoro, инструмент, который просканирует вашу машину и определит, в чем проблема.
Нажмите здесь, чтобы загрузить и начать восстановление.
Похоже, уменьшение дальности просмотра сервера сработало для нескольких пользователей. Однако, если проблема не устранена, также может помочь уменьшение расстояния рендеринга проигрывателя до более низких настроек. Вы можете изменить его в настройках видео.
3. Измените свой DNS-адрес IPv4
- Нажмите клавишу Windows + R, чтобы открыть «Выполнить».
- Введите control и нажмите OK.
- В Панели управления выберите Сеть и Интернет.
- Нажмите «Изменить настройки адаптера» на левой панели.
- Нажмите правой кнопкой мыши сетевой адаптер и выберите "Свойства".
- Прокрутите вниз и дважды щелкните Интернет-протокол версии 4 (TCP/IPv4).
- Выберите параметр Использовать следующие адреса DNS-серверов.
- Введите следующие значения в поля "Предпочтительный" и "Альтернативный DNS-сервер" соответственно:
8.8.8.8
8.8.4.4 - Нажмите "ОК", чтобы сохранить изменения.
Помимо адреса DNS-сервера Google, упомянутого выше, вы также можете использовать другой сторонний общедоступный адрес DNS-сервера, если хотите. Попробуйте запустить сервер и проверьте, устранена ли ошибка.
4. Проверьте свою сеть на наличие проблем
Если у вас есть смартфон с сотовой связью, создайте на телефоне точку доступа Wi-Fi, а затем подключите компьютер к сети. Попробуйте подключиться к серверу Minecraft и проверьте, решена ли проблема.
Если вы можете подключиться к серверу Minecraft через точку доступа, проблема в основном связана с вашей домашней сетью.
Перезапустите домашнюю сеть
- Убедитесь, что маршрутизатор или модем включен.
- Отключите питание маршрутизатора, чтобы выключить его.
- Отсоедините кабель Ethernet.
- Оставьте устройство бездействующим на несколько минут.
- Снова подключите кабель Ethernet и включите маршрутизатор.
- Подождите, пока все светодиодные индикаторы на маршрутизаторе перестанут мигать.
- Подключите компьютер к сети и проверьте, устранена ли ошибка.
Если проблема не устранена, попробуйте связаться со своим интернет-провайдером (Internet Service Provider), чтобы узнать, могут ли они помочь с этой проблемой.
5. Переустановите Java
- Нажмите клавишу Windows + R, чтобы открыть «Выполнить».
- Введите control и нажмите OK.
- Нажмите «Удалить программу».
- Выберите Java из списка установленных приложений.
- Нажмите «Удалить».
- После удаления загрузите и установите последнюю версию Java.
- Перезагрузите компьютер и проверьте наличие улучшений.
6. Переустановите Майнкрафт
- Нажмите клавишу Windows + R, чтобы открыть «Выполнить».
- Введите appwiz.cpl и нажмите "ОК".
- Выберите Minecraft из списка установленных приложений.
- Нажмите «Удалить». Нажмите OK, чтобы подтвердить действие.
- После удаления загрузите и переустановите последнюю версию Minecraft.
Существующее соединение было принудительно закрыто удаленным хостом при доступе к серверу Minecraft. Ошибка может возникнуть, если ваш брандмауэр блокирует соединение. В некоторых случаях причиной проблемы могут быть несовместимые версии Java, а также проблемы с домашней сетью.
Выполните все шаги, описанные в статье, один за другим, чтобы исправить ошибку. Сообщите нам, какой метод помог вам решить проблему в комментариях.
По-прежнему возникают проблемы? Исправьте их с помощью этого инструмента:
В этом месяце Restoro скачали 0 читателей.
Часто задаваемые вопросы
Чтобы исправить ошибку, выберите «Пуск» > «Обновление и безопасность» и отключите брандмауэр Windows. Затем добавьте двоичный файл Java™ Platform SE Binary в белый список. Вы также можете проверить домашнюю сеть на наличие проблем.
Эта ошибка возникает, когда клиенту и хосту не удается установить соединение. Согласно Minecraft, ошибка возникает из-за проблем с компьютером пользователя, а не с его серверами.
Java IO IOException обычно указывает на сбой в операции ввода-вывода. В Minecraft ошибка возникает, если компьютеру пользователя не удается подключиться к серверу Minecraft.
Удаленный компьютер заблокировал соединение SSH, которое вы пытались установить или поддерживать. Сообщение «ssh_exchange_identification: read: Connection reset by peer» не является достаточно конкретным, чтобы сразу объяснить, что вызвало ошибку.
Чтобы успешно решить проблему, сначала необходимо определить ее причину. В этой статье представлен подробный анализ вероятных причин и предложены наиболее эффективные решения.
Прочитав это руководство, вы узнаете, как исправить ошибку «ssh_exchange_identification: read: Connection reset by peer».
- Необходимые разрешения для доступа к удаленному серверу
- Учетная запись пользователя с правами root или sudo
Что вызывает ошибку SSH «Соединение сброшено узлом»?
Ошибка «ssh_exchange_identification: read: Connection reset by peer» указывает на то, что удаленный компьютер внезапно закрыл поток протокола управления переходом (TCP). В большинстве случаев быстрая перезагрузка удаленного сервера может решить временный сбой или проблему с подключением.
Примечание. Сетевые брандмауэры или балансировщики нагрузки иногда могут искажать IP-адреса или разрешения безопасности. Эту проблему можно решить, обратившись к поставщику услуг.
- Подключение заблокировано из-за списков управления доступом на основе хоста.
- Программное обеспечение для предотвращения вторжений блокирует ваш IP-адрес, обновляя правила брандмауэра (Fail2ban, DenyHosts и т. д.).
- Изменения в файле конфигурации демона SSH.
Проверьте файлы hosts.deny и hosts.allow
Файлы hosts.deny и hosts.allow являются оболочками TCP. В целях безопасности эти файлы используются для ограничения того, какой IP-адрес или имя хоста может устанавливать соединение с удаленным компьютером.
Примечание. Проверяйте файлы hosts.deny и hosts.allow на удаленном сервере, а не на локальном клиенте.
Как редактировать файл hosts.deny
Зайдите на удаленный сервер и откройте файл hosts.deny с помощью предпочитаемого вами текстового редактора. Если вы используете nano в системе на основе Debian, введите следующую команду:
После внесения необходимых изменений сохраните файл и выйдите. Попытайтесь повторно подключиться через SSH.
Как редактировать файл hosts.allow
В качестве дополнительной меры предосторожности отредактируйте файл hosts.allow. Сначала применяются правила доступа в hosts.allow. Они имеют приоритет над правилами, указанными в файле hosts.deny. Введите следующую команду для доступа к файлу hosts.allow:
Добавление имен хостов и IP-адресов в файл определяет исключения из настроек в файле hosts.deny.
Например, строгая политика безопасности в файле etc/hosts.deny запретит доступ ко всем хостам:
Впоследствии вы можете добавить один IP-адрес, диапазон IP-адресов или имя хоста в файл etc/hosts.allow. Добавив следующую строку, только следующий IP-адрес будет разрешен для установки SSH-соединения с вашим удаленным сервером:
Имейте в виду, что такой ограничивающий параметр безопасности может повлиять на возможности администрирования на ваших удаленных серверах.
Проверьте, не заблокировал ли fail2ban ваш IP-адрес
Если вы пытались подключиться несколько раз, ваш IP-адрес может быть заблокирован программным обеспечением для предотвращения вторжений. Fail2ban – это служба, предназначенная для защиты от атак методом грубой силы, которая может ошибочно интерпретировать ваши попытки аутентификации как атаку.
Fail2ban отслеживает и динамически изменяет правила брандмауэра, чтобы блокировать IP-адреса с подозрительным поведением. Он отслеживает журналы, такие как файлы hosts.deny и hosts.allow, которые мы редактировали ранее.
В нашем примере мы использовали следующую команду, чтобы проверить, отклоняет ли инструмент iptables ваши попытки подключения:
Вывод в окне вашего терминала будет содержать список всех попыток аутентификации. Если вы обнаружите, что брандмауэр действительно блокирует ваше SSH-соединение, вы можете добавить свой IP-адрес в белый список с помощью fail2ban. В противном случае сервис будет постоянно блокировать все будущие попытки. Чтобы получить доступ к файлу конфигурации fail2ban, введите следующую команду:
Отредактируйте файл, раскомментировав строку, содержащую "ignoreip wp-block-image">
Fail2ban теперь сделает исключение и не будет сообщать о подозрительном поведении для рассматриваемого IP-адреса.
Проверьте файл sshd_config
Если вы продолжаете сталкиваться с ошибкой «ssh_exchange_identification: read: Connection reset by peer», проверьте запись в журнале проверки подлинности. По умолчанию демон SSH отправляет информацию журнала в системные журналы. Получите доступ к файлу /var/log/auth.log после неудачной попытки входа в систему. Чтобы просмотреть последние записи журнала, введите:
В выходных данных представлены результаты ваших попыток аутентификации, информация о вашей учетной записи пользователя, ключе аутентификации или пароле.
В журнале содержится информация, которая может помочь найти возможные проблемы в файле конфигурации sshd, sshd_config. Любые изменения, внесенные в файл, могут повлиять на условия, в соответствии с которыми устанавливается соединение ssh, и привести к удаленный сервер для обработки клиента как несовместимого. Чтобы получить доступ к типу файла sshd_config:
Файл конфигурации sshd позволяет изменять основные параметры, такие как TCP-порт по умолчанию или пары ключей SSH для аутентификации, а также более сложные функции, такие как переадресация портов.
Например, переменная MaxStartups определяет, сколько подключений система принимает за заданный период. Если у вас есть система, которая выполняет большое количество подключений за короткий промежуток времени, может потребоваться увеличить значения по умолчанию для этой переменной. В противном случае удаленная система может отклонить дополнительные попытки подключения ssh.
Всякий раз, когда вы редактируете файл sshd_config, перезапустите службу sshd, чтобы изменения вступили в силу:
Редактируйте только те переменные, с которыми вы знакомы. Сервер может стать недоступным из-за неисправного файла конфигурации.
Вы тщательно проверили наиболее распространенные причины ошибки «ssh_exchange_identification: read: Connection reset by peer». Изучив каждую возможность, вы, в свою очередь, успешно решили проблему и теперь знаете, как справляться с подобными проблемами в будущем.
Возможных причин очень много, и устранить их во всех отношениях сложно. В конечном счете, если ошибка повторится, возможно, потребуется связаться с хостом.
Читайте также: