memcached 和 iptables

memcached 和 iptables
$m = new Memcached();
$m->addServer('localhost', 11211);

IPTables为了实现此功能,是否需要打开端口 11211 ,或者考虑到它是被绕过的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 

答案1

其他人所注意到的关于默认安装的情况是相当正确的,尽管大多数系统(例如 CentOS)在出厂时就已经运行了基本的防火墙。 即使是基本的防火墙通常也会允许从 localhost 到 localhost 的所有连接,因为禁止这些连接是极其不明智的;最奇怪的事情可能会开始发生。如果在 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           

(不要介意前两个字段,它们是数据包和字节数,你的当然会有所不同)那么你可能没问题。另一个好的测试是

telnet localhost 11211

如果你得到

Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).

那么你就知道你的监听器正在运行,防火墙没有阻止它。如果做不到这一点,请按照其他人的建议,向我们提供你的信息iptables -L -n -vnetstat -an输出,以便我们查看。

答案2

这取决于您的安装/发行版。几乎所有东西的基本安装都应该是开放的。正如 dfranke 指出的那样,您可以使用“iptables -L”列出 iptables 条目。我可以告诉您,在 Ubuntu、Debian 和 CentOS 的基本安装中,我不需要做任何事情,只需安装 memcached 即可运行并打开它。

相关内容