Я новичок в Fedora и backend. И недавно у меня появилась работа по созданию игрового сервера через линод. Текущая установка - 2 линода + 1 узел балансировки, у меня есть сервер memcached на каждом линоде, и у меня есть установка memAdmin для контроля memcached.
Мой вопрос: как создать правила брандмауэра, разрешающие S1 (memAdmin) подключаться к telnet S2 11211? Поскольку мой memAdmin находится в S1, и ему нужно разрешение на доступ к S2 memcached. Я попробовал несколько правил, например:
iptables -P INPUT DROP
iptables -A INPUT -p tcp -s (S1's ip) --dport 23 -j ACCEPT
iptables -A INPUT -p tcp -s (S1's ip) --dport 11211 -j ACCEPT
Я даже пробовал использовать IP-адрес интрасети, например 192.168.0.0/24 для -s, но он все равно не работает. Я установил OPTION в / etc / sysconfig / memcached на "-l 0.0.0.0", служба memcached прослушивает IP 0.0.0.0, но я все еще не могу telnet S2 11211 из S1.
Я пытался остановить службу iptables. И я могу подключиться по telnet к S2 через мой компьютер, но я все еще не могу подключиться по telnet с S1 на S2.
Я новичок, помогите пожалуйста.
Вывод iptables -L INPUT -vn:
Chain INPUT (policy DROP 225 packets, 13464 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * S1's IP 0.0.0.0/0 tcp dpt:23 7 420 ACCEPT tcp -- * * S1's IP 0.0.0.0/0 tcp dpt:11211 24 1314 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
Наконец я нашел решение. Мне не хватало правил для S1 и S2: iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Добавление этого правила в конец цепочки INPUT у меня работает. Еще раз спасибо за все ваши ответы.
Сервер и клиент находятся в одной подсети или нет? Сначала проверьте, прослушивает ли ваш memcached все IP: netstat -pntle | grep 11211
. В 4-м столбце вы увидите «0.0.0.0:11211». Если нет, проверьте свою конфигурацию, перезапустите сервер. Добавьте строку iptables -A INPUT -j LOG
иметь журнал отклоненных подключений.