Я только что столкнулся с этой проблемой, и здесь уже поздно, поэтому я больше не могу думать прямо сейчас. Тем не менее, это что-то довольно простое, поэтому я действительно не вижу, что мне не хватает, и просто схожу с ума:
Я настраивал сервер, который использую исключительно для запуска контейнеров докеров. Я начал с контейнера MariaDB, здесь все в порядке, и я решил подключиться к нему, чтобы убедиться, что все работает.
Итак, теперь я хочу подключиться к серверу, на котором работает MariaDB, и, поскольку я за firewalld, я начал с его настройки, добавив новую зону в firewall-cmd, добавив службу и источник:
firewall-cmd --permanent --new-zone=test-from-home
firewall-cmd --reload
firewall-cmd --permanent --zone=test-from-home --add-service=mysql
firewall-cmd --permanent --zone=test-from-home --add-source=XX.XX.XX.XX/32
firewall-cmd --reload
И я отлично подключился, используя mysql -u root -p -h host
Все здорово!
Бег firewall-cmd --get-active-zones
возвращает:
[root@nd01 latest]# firewall-cmd --get-active-zones
test-from-home
sources: XX.XX.XX.XX/32
public
interfaces: eth0
Поэтому просто потому, что иногда я помню, как проводил эти тесты, чтобы убедиться, что все работает, я подключился к другой машине, и я успешно подключился с этого другого IP-адреса.
firewall-cmd --zone=test-from-home --list-all
test-from-home (active)
target: default
icmp-block-inversion: no
interfaces:
sources: XX.XX.XX.XX/32
services: mysql
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Почему я могу подключиться со случайной машины? Что мне не хватает? Спасибо
Хорошо, сегодня я нашел ответ,
Между тем я столкнулся с тем, что FirewallD и Docker не подыгрывают. Согласно документации Docker, способ обойти это, отключив IPTables: - Докер и iptables
Как говорится с самой первой позиции:
В Linux Docker манипулирует
iptables
правила для обеспечения сетевой изоляции. Это деталь реализации, и вам не следует изменять правила, которые Docker вставляет в вашiptables
политики.
Это не было бы моим первым средством, против которого я советуюсь.
Итак, я немного покопался и нашел страницу, которая дала мне ответ, и любой, у кого возникла эта проблема, может извлечь из нее пару идей, это хороший подход, добавив конфигурацию в цепочку DOCKER-USER.