• 欢迎访问举个栗子网站
  • 小说APP下载 xsz.tw 不带广告的小说站

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

软件 举个栗子 1个月前 (12-26) 68次浏览 0个评论 扫描二维码
文章目录[隐藏]

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

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 提示如下:

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

经过一番调查发现: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服务设置大同小异.)

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

关于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 地址是否被占用!


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:XShell 提示 Connection closed by foreign host 的问题 和 路由器分配 IP 的规则
喜欢 (0)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址