問題描述:
有一台server(稱為A)作為memcache伺服器開放了11211端口,但是另一台server(稱為B)無法調用A的memcache,顯示無法連接配接。
排查:
先在B上用telnet 嘗試連接配接連接配接A的11211端口,逾時。
換用另外的機器來telnet A 的11211端口,正常。
用B去telnet另一台機器的開放端口,也正常。
用B telnet A的其他端口,例如 22,也不正常。
用A telnet B的開放端口,也正常。
是以,看來問題成了隻有B telnet A的時候有問題。
後來想到在A上抓包看看,分别用B telnet A 和 用另一台能telnet通A的機器telnet A,觀察兩者在A上抓包的結果,發現結果果然不一樣
B telnet A 時:
<a href="http://s3.51cto.com/wyfs02/M00/6E/E2/wKiom1WKfxLB1HZdAAGDRkCDRgo056.jpg" target="_blank"></a>
其他機器telnet A時:
<a href="http://s3.51cto.com/wyfs02/M02/6E/E2/wKiom1WKf6biTALkAAEpE7Tmw6Q942.jpg" target="_blank"></a>
可以看到B的telnet請求已經到達了A,但是A沒有像正常情況下給予B相應,是以B就會顯示逾時。
雖然知道了問題出在哪,可是還是沒思路,最後懷疑到核心的網絡相關配置,即 /etc/sysctl.conf 的先關配置,對比了一下B和其他機子的該檔案,發現B的配置裡少了幾行配置
<a href="http://s3.51cto.com/wyfs02/M01/6E/E2/wKiom1WKgLSy_9PDAAZSNFXr6EI537.jpg" target="_blank"></a>
然後在B的/etc/sysctl.conf裡加上了這些配置,sysctl -p使生效,再嘗試telnet A,竟然成功了。
說了這麼多,雖然問題解決了,但是以本人目前的技能水準,還是不能精确的知道是哪個配置項起到了關鍵的作用,故而還是有點小郁悶。
還得博學啊!
本文轉自kai404 51CTO部落格,原文連結:http://blog.51cto.com/kaifly/1665186,如需轉載請自行聯系原作者