Назад | Перейти на главную страницу

memcached и iptables

$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, уже некоторое время уже есть базовый брандмауэр. Но даже базовый брандмауэр обычно разрешает все соединения с 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 -v и ваш netstat -an результаты, как предлагают другие, так что мы можем взглянуть.

Это зависит от вашей установки / дистрибутива. Базовая установка почти всего должна быть открыта. Как указал Дфранке, вы можете перечислить записи iptables с помощью 'iptables -L'. Я могу вам сказать, что с базовой установкой Ubuntu, Debian и CentOS мне не пришлось ничего делать, кроме как просто установить memcached, чтобы он работал и был открыт.