Я только что столкнулся с этой проблемой, и уже поздно, поэтому я больше не могу думать прямо сейчас. Тем не менее, это что-то довольно простое, поэтому я не совсем понимаю, чего мне не хватает, и просто схожу с ума:
Я настраивал сервер, который использую исключительно для запуска контейнеров докеров. Я начал с контейнера 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-zone
возвращает:
[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: - Docker и iptables
Как говорится с самого начала:
В Linux Docker манипулирует правилами
iptables
, чтобы обеспечить изоляцию сети. Это деталь реализации, и вам не следует изменять правила, которые Docker вставляет в ваши политикиiptables
.
Это не будет моим первым средством, от которого я рекомендую.
Так что я сделал немного больше. покопавшись, я нашел страницу, которая дала мне ответ, и любой, у кого возникла эта проблема, может извлечь из нее пару идей, это хороший подход, добавив конфигурацию в цепочку DOCKER-USER.