昨天调试远程服务器,为了增加socket链接数,理所当然的进行了limits.conf配置,之后悲剧发生了。
利用xshell再度远程时,被强制T了。链接瞬间即断,如果幸运,会弹出 ”Connection closed by foreign host“ 提示。
开始以为是防火墙或网络行为的原因,沟通了服务运营商,但是结论是没有那些东东的干扰。
好吧,自己回忆一下我是怎么改的吧。
vim /etc/security/limits.conf #以下都是在limits.conf中编辑的 #无关属性略 * hard nofile unlimited * soft nofile unlimited
随便找了一台机器复现了一下,果真这么改远程无法正常连接。修改方法很简单,如下:
vim /etc/security/limits.conf #以下都是在limits.conf中编辑的 #无关属性略 * hard nofile 10240 * soft nofile 10240 #只要将unlimited全部改成数字的就行,而且soft <= hard .并且hard <= /proc/sys/fs/nr_open内的值即可
到此因为误改而导致的错误已然修改完成,知识扩展:http://blog.csdn.net/superchanon/article/details/13303705
当时本人还有不理解的地方,我在这个机器上有另一种协议服务,通过socket链接。按照原理,如果改这种连接数有误,我的socket本不应该能正常连接上的。但是这种通过socket自定的协议却可以正常工作。很意外。
当然会报”Connection closed by foreign host“这种错误的因素不只是这一种,
1.网络上有说网络延迟的(这种状况很少见)。
2.端口未开放,这种说法本身就有问题,如果端口未开放根本不会有被T的状态,应该根本连不上
3.文件数量达到最大了,这种跟本文很类似,可能limits.conf 配置的数字太小了。要么就是机器资源有限。
4.最大连接数,一台机器允许外链的最大连接数,这个真心不清楚如何改。也没见过。
5.防火墙或者网络行为分析组件给强制断掉了。 这些东东应该在路由的级别。联系服务商问问吧。
Connection closed by foreign host. 误改BUG,布布扣,bubuko.com
Connection closed by foreign host. 误改BUG
原文:http://www.cnblogs.com/outo/p/3779478.html