我正在运行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:无法连接到远程主机:连接超时
任何建议都将受到赞赏。
答案 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