无法连接到localhost上的memcached服务器,如何调试?

时间:2011-01-31 04:14:51

标签: memcached telnet

我正在运行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时,我会暂停。

telnet 127.0.0.1 11211 试试127.0.0.1 ...... telnet:无法连接到远程主机:连接超时

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分: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%的情况下这些都很好,但是无法连接到localhost确实很奇怪,所以要进行健全检查。

答案 1 :(得分: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