解决Session.connect: java.net.SocketException: Connection reset

本文描述了在使用FinalShell连接虚拟机时遇到的ConnectionReset问题,原因可能是连接超时或Socket异常。解决方法是临时修改网络配置,如虚拟网卡IP,然后通过错误和恢复过程找到问题根源:连接断开后的读写操作。
摘要由CSDN通过智能技术生成

前提要求:① 虚拟机防火墙已关闭,且运行了SSH服务正常运行;
② 之前可以连接,IP地址、端口(默认为22)、用户名和密码都是正确的;
③ 无其他可能影响连接的外部影响,只是FinalShell这种Linux远程连接的工具与虚拟机之间的操作。


问题原因

原本之前就配置好了FinalShell可以正常连接虚拟机,突然修改了某些IP或有一天重新连接却连接不上了,出现Session.connect: java.net.SocketException: Connection reset :连接重置的错误信息。(如下图)

甚至有时出现Session.connect: java.net.SocketException: Connection reset by peer :对等方重置连接的错误信息。

即使再三确定了
① VMware的虚拟网络编辑器中IP配置与电脑网卡的虚拟网卡VMware Virtual Ethernet Adapter for VMnet8配置一致;(如下图)

② FinalShell的配置与虚拟机网络配置配置一致。(如下图)

③ 并且自己ping这些ip也ping得通。(如下图)

有时候改来改去突然又连接上了,最后重复尝试,即使连接上了还特意制造同样情况的错误,终于知道是因为在连接断开后的读和写操作引起的。

1、Connect reset by peer:如果一端的Socket被关闭(或主动关闭,或因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常。(Socket默认连接60秒,60秒之内没有进行心跳交互,即读写数据,就会自动关闭连接。)

2、Connection reset:一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常。


解决办法

就是改动电脑网卡的虚拟网卡VMware Virtual Ethernet Adapter for VMnet8和FinalShell的配置尝试连接后再按原来的改回来。

步骤一

修改电脑网卡的虚拟网卡VMware Virtual Ethernet Adapter for VMnet8的IP,数字随意。(如下图,以Win11为例)(点击网络和Internet后在最下面找到高级网络设置,才进入网络适配器)


 

步骤二

特意改错FinalShell的配置,并尝试连接出现连接超时错误后,再改回正确的IP,即可重新连接。(下图为错误的)

下图为正确的


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoTDB-胖胖的小恐龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值