2011-01-31 140 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 
相关问题