$m = new Memcached(); $m->addServer('localhost', 11211);
请问端口11211需要在IPTables打开才能正常工作,还是考虑到它是localhost ?
sudo iptables -L -n -v输出
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1155K 95M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 8817K 1451M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 183 10452 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6685 574K 30M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 122 7232 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 2649 154K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 8343K packets, 12G bytes) pkts bytes target prot opt in out source destination 6 2524 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:20
其他人已经注意到有关默认安装是相当真实的,虽然大多数,例如CentOS系统现在已经运行一个基本的防火墙。 但即使是一个基本的防火墙,通常也会允许从本地主机到本地主机的所有连接,因为禁止这些连接是非常不明智的。 最奇怪的事情可以开始发生。 如果在INPUT链的顶部附近有一条线(或者INPUT委托其大部分工作的任何链)
iptables -A INPUT -i lo -j ACCEPT
或者在iptables -L -n -v格式中,
840 97979 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
(不要介意前两个字段,它们是数据包和字节数,而你的数据当然是不同的),那么你也许可以。 另一个好的testing是做
telnet localhost 11211
如果你得到
Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1).
那么你就知道你的监听器正在运行,防火墙不会阻塞它。 如果没有,请给我们你的iptables -L -n -v和你的netstat -an输出,就像别人所说的那样,所以我们可以看看。
这取决于你的安装/发行版。 几乎所有的基本安装应该是开放的。 正如dfranke指出的,你可以用iptables -L列出iptables条目。 我可以告诉你,使用Ubuntu,Debian和CentOS的基本安装,除了安装memcached以使其运行并打开之外,我不需要进行任何其他操作。