Каковы отношения между зоной и сетевым интерфейсом на firewall-cmd?

У меня есть удаленный хост, работающий на centos 7 с общедоступным IP-адресом 147.38.9.162 и локальным IP-адресом 10.5.96.4, соответственно подключенным к eth0 и eth1, я использовал firewall-cmd для настройки сети, как показано ниже:

[root@koala order]# firewall-cmd --get-zone-of-interface=eth0
public
[root@koala order]# firewall-cmd --get-zone-of-interface=eth1
home
[root@koala order]#  ifconfig eth1|grep inet
    inet 10.5.96.4  netmask 255.255.0.0  broadcast 10.5.255.255
[root@koala order]#  ifconfig eth0|grep inet 
    inet 147.38.9.162  netmask 255.255.254.0  broadcast 147.38.9.255
[root@koala order]#      firewall-cmd --list-ports --zone=public
8848/tcp 
[root@koala order]#      firewall-cmd --list-ports --zone=home
8848/tcp 3306/tcp

У меня есть докер-контейнер, в котором запускается java-программа, прослушивающая 8848, и другой докер-контейнер, в котором запускается mysql-программа, слушающая порт 3306. Я надеюсь открыть порт 3306 для java-программы, но не снаружи Мир, так что Java-программа может telnet 10.5.96.4:3306, но не 147.38.9.162:3306, поэтому я выполнил следующие команды:

firewall-cmd --zone=home --add-port=3306/tcp --permanent
firewall-cmd --reload

, но я не могу telnet mysql из Java-программы. затем я запустил следующее, чтобы открыть порт 3306 в публичной зоне

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

, теперь я могу telnet mysql из java-программы. Мне кажется странным, потому что я думаю, что зона - это взаимно-однозначное сопоставление с интерфейсом (eth0 или eth1), но это не так, что не так?

0
задан 8 January 2020 в 05:20
0 ответов

Теги

Похожие вопросы