Connection closed by foreign host. 誤改BUG


  昨天調試遠程服務器,為了增加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.防火牆或者網絡行為分析組件給強制斷掉了。 這些東東應該在路由的級別。聯系服務商問問吧。

----------------------------------------------------------------------------------------

哎~~~ 寫完本博文以為安然無事了。按照這種計划更改的方法就ok了。誰知道,起始你連用戶都登陸不了。

如果不小心把配置都改成了lunimited,那么恭喜你,起始你連用戶都登陸不了的。明明知道怎么改才行,可是卻登陸不了,無法改配置。

只好進入單用戶模式了。方法:http://hi.baidu.com/uilifele/item/72a71be9712caf364ddcaf84

重啟后進入單用戶模式,在單用戶模式下進行上面修改就ok了。

很恐怖的錯誤修改。不小心機器都開不開了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM