Я устанавливаю Memcached на сервере Debian, который имеет два интерфейса - eth0 (общедоступный) и eth1 (частный).
Я хочу, чтобы Memcached прослушивал как eth1, так и lo (loopback), чтобы к нему можно было получить доступ, даже если частная сеть не работает, но НЕ eth0 (public).
Со страницы man для memcached я понимаю, что -l
опция может принимать только один IP-адрес. Я думал об использовании UNIX-сокетов для локальных подключений, но на странице руководства написано
-s
Unix путь к сокету для прослушивания ( отключает поддержку сети ).
Единственный известный мне метод - это блокировать соединения через eth0 с помощью IPTables. Есть ли другое решение, которое не использует брандмауэр?
Как указано в принятом ответе, новые версии поддерживают его:
или
Старые версии (поставляемые с CentOS 6.5 или более ранней версии) еще не поддерживают это, они могут прослушивать все интерфейсы, один IP-адрес или сокет.
Не любая комбинация тех.
Единственный способ решить эту проблему - это связать его со всеми интерфейсами и межсетевым экраном с открытым интерфейсом или привязать его только к 127.0.0.1 и перенаправить запросы к eth1: 11211 на lo0: 11211 через iptables.
источник