2011-01-31 141 views
1

我正在運行memcached,但無法連接。我應該如何開始調試呢?似乎有東西阻止我連接。無法連接到localhost上的memcached服務器,如何調試?

ps -elf | grep memcached 0 S lee 10744 529 0 80 0 - 30529 ep_pol 03:36 pts/22 00:00:00/usr/bin/memcached -m 512 -p 11211 -u nobody -l 127.0.0.1

( Memcached肯定是在運行)

但是當我嘗試遠程登錄時,我得到一個超時。

的telnet 127.0.0.1 11211 試圖127.0.0.1 ... 的telnet:無法連接到遠程主機:連接超時

任何意見,將不勝感激。

+1

您的防火牆正在運行? – 2014-02-01 22:23:39

回答

2

確保本地環回網絡接口正在運行。這聽起來像你使用的是Unix系統,所以我建議運行/sbin/ifconfig以查看標有lo的IP地址(標記爲inet addr)127.0.0.1是否已啓動並正在運行。如果沒有,運行ifdown lo然後ifup lo,這應該得到它。閱讀/etc/hosts文件以確保localhost或您的計算機名稱綁定到127.0.0.1。如果您的機器使用ipchains或iptables,請確保將這些配置爲讓流量從127.0.0.1通過127.0.0.1

這些事情都是99%的時間都好,但無法連接到本地主機確實很奇怪,所以需要進行完整性檢查。

+1

作爲另一項完整性檢查,確保memcached配置沒有改變。它看起來像11211是默認端口,但也許有人改變了你。但是,這種錯誤配置通常會導致「連接失敗」消息代替「連接超時」消息。 – 2011-07-27 20:49:15

0

確保您沒有啓用防火牆。以我爲例,我發現下面的條目iptables

target  prot opt source    destination 
ACCEPT  tcp -- example.com.internal anywhere    tcp dpt:11211 
ACCEPT  udp -- example.com.internal anywhere    udp dpt:11211 
DROP  tcp -- anywhere    anywhere    tcp dpt:11211 
DROP  udp -- anywhere    anywhere    udp dpt:11211 

他們只允許從example.com.internal連接,並從其他地方,包括localhost否認。爲了解決我爲localhost添加了特定規則:

ACCEPT  tcp -- localhost    anywhere    tcp dpt:11211 
ACCEPT  udp -- localhost    anywhere    udp dpt:11211 
相關問題