XShell提示Connection closed by foreign host的问题 和 路由器分配IP的规则

简介:

一.出现此问题的大体情况和前期调查

VMware中有三个Linux机器分别是crxy99(192.168.1.99),crxy100(192.168.1.100),crxy101(192.168.1.101),crxy101是通过crxy100克隆复制出来的.

通过SecureCRT或者XShell远程SSH登录到这三台机器.

但是crxy100和crxy101总是掉线,但是有时候相当长一些时间是可以正常连接的.

XShell提示如下:

 经过一番调查发现:crxy100和crxy101的网卡UUID在/etc/sysconfig/network-scripts/ifcfg-eth0文件中对应的是一样的.(最终调查发现其实和这个没有关系....)

二.在网上调查到的此问题的解决方法(每个人的情况可能不同,有可能会解决你的问题)

上网调查发现出现这个问题(提示Connection closed by foreign host)的情况的原因有如下:

1.两个人都是都要登录此虚拟机.

  相关文章:http://blog.sina.com.cn/s/blog_6ccfa4f30100spvg.html

2.没有设置超时时间等.

  相关文章:http://blog.csdn.net/zgl07/article/details/40424637

    解决方案是:

    sudo vim /etc/ssh/sshd_config

    添加两行:    

    ClientAliveInterval 60
ClientAliveCountMax 3

    然后

    sudo /etc/init.d/sshd restart

我以第二种方式进行处理,但是仍不解决问题.

三.调查到出现在我机器出现这个问题的具体原因 (IP地址冲突导致!)

调查才发现这个原因是因为IP地址冲突造成的.

我给crxy100和crxy101设置的是静态IP,而IP地址是192.168.1.100和192.168.1.101    (我所在的网络环境是用的无线路由,屋里的邻居都连接这个路由器.)

 (一)路由器的分配IP的规则

先看一张无线路由器的设置界面:(不同的路由器设置界面不同,但是DHCP服务设置大同小异.)

关于DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址.

页面中的DHCP的设置项中有两个设置:①租约 ②起始IP和终止IP

1.起始IP和终止IP:

默认是从2至254自动分配,1一般是默认给路由器使用,255是保留地址,不能分配的,192.168.1.0是网络号,192.168.1.1是路由器地址(登陆这个可以针对路由器设置).192.168.1.255是广播地址.这几个地址是不会动态分配的.

至于随机分配还是顺序分配,从查看到的实际记录来看,是顺序分配的,即从低到高一个一个分配,先到先得分配后把IP跟MAC地址关联,下次分配则按关联来分配,一般情况是这样,只能是大概,具体却又不是每一次都绝对这样分配.

但是动态分配的IP一般是从100(192.168.1.100)开始的.

所以问题就在这里.屋里的人都使用这个路由器,有很多的设备,而且这些设备是从192.168.1.100开始分配的.而我设置的Linux虚拟机的IP地址也是这个.

这样就造成了IP地址冲突的问题. 这样就解释了XShell远程连接Linux经常会出现断开,并且提示"Connection closed by foreign host"的原因.

2.租约:

  1. 路由器中DHCP服务的租借周期是IP地址的租用时间,这个时间一到必须释放,然后重新租用。

  2. DHCP服务的租用过程是这样的:电脑等客户端发送DHCP请求信息,DHCP服务器相应客户端的请求,最后DHCP客户端确认。

  3. 在租用周期过一半的时候客户端必须重新发出租用原来的IP地址请求,如果可以就继续使用原来的IP地址,否则在期满后必须放弃该IP地址。

  4. 宽带路由器的DHCP租用周期最小是1分钟,最大是2880分钟(两天),默认值为120分钟。

所以在屋内另外一台设备(占用1.100)租约期间内只要它连接到了该无线局域网中就永远占用同一个IP192.168.1.100(这个IP地址的占用是和设备的连入局域网的顺序是没有必然的关系的)

除非屋内的这台设备没有连接到该无线局域网中,我的Linux(1.100)才能正常的通过XShell远程连接 .

 

只有启用DHCP服务才会涉及到“地址租期”。因为DHCP为客户机分配ip地址是随机而且有期限的,期限到了就会收回再重新分配一个新的给你,这个时间就是“地址租期”了。内部通过路由器上网,计算机不算多,所以ip地址不紧张,租期可以相对设置的长一些.

四.总结

解决这个问题最好的方法就是我要修改自己Linux系统的静态IP地址.       在静态设置IP地址之前最好要ping一下该IP地址是否被占用!

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5494971.html,如需转载请自行联系原作者
相关文章
链接远程服务器出现 Connection closed by foreign host
链接远程服务器出现 Connection closed by foreign host
|
安全 Linux 网络安全
【超详细】Linux系统修改SSH端口教程
在linux中,默认的SSH端口号为22,由于这是咱们都知道的端口号,一旦有入侵者进行端口扫描的时候扫描出22端口,就立马知道这是进行SSH登录的端口号,因而咱们需要修改默认的端口号。
13947 2
【超详细】Linux系统修改SSH端口教程
|
Ubuntu 网络安全 开发工具
Xshell通过SSH连接阿里云报错“服务器发送了一个意外的数据包” xshell连接ubuntu
Xshell通过SSH连接阿里云报错“服务器发送了一个意外的数据包” xshell连接ubuntu
Xshell通过SSH连接阿里云报错“服务器发送了一个意外的数据包” xshell连接ubuntu
|
弹性计算 Java Maven
从代码到容器:Cloud Native Buildpacks技术解析
Cloud Native Buildpacks(CNB)是一种标准化、云原生的容器镜像构建系统,旨在消除手动编写Dockerfile,提供可重复、安全且高效的构建流程。它通过分层策略生成符合OCI标准的镜像,实现应用与基础镜像解耦,并自动化依赖管理和更新。阿里云应用管理支持通过CNB技术一键部署应用至ECS,简化构建和运行流程。
|
运维 数据安全/隐私保护
Finalshell 私钥连接服务器
Finalshell 私钥连接服务器
1688 0
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
650 0
|
Shell 网络安全 UED
|
弹性计算 安全 Java
阿里云服务器配置、(xshell)远程连接、搭建环境、设置安全组、域名备案、申请ssl证书
以下是内容的摘要: 在阿里云购买服务器并进行基本配置的步骤如下: 1. **准备工作**: - 注册阿里云账号:访问阿里云官网并注册新账号,输入用户名、手机号和验证码。 - 实名认证:在个人中心进行实名认证,建议选择企业实名,因为个人实名可能无法索取企业发票。
|
存储 Kubernetes 监控
K8S集群上安装KubeSphere的详细过程
K8S集群上安装KubeSphere的详细过程
613 0
|
安全 Linux Shell
linux篇-xshell连接突然报Connection closed by foreign host.
linux篇-xshell连接突然报Connection closed by foreign host.
1812 0
linux篇-xshell连接突然报Connection closed by foreign host.