Порт не открыт на брандмауэре, но он доступен

Я использую centos 7 с firewallD на моем сервере.

Я также установил докер на этой машине и добавил его в доверенную зону своего брандмауэра.

У меня есть контейнер, который прослушивает порт 9081 , но этот порт не открыт на брандмауэре, и странно то, что порт доступен с моего домашнего компьютера.

Это результат firewall-cmd --list-all

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 443/tcp 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

У меня две активные зоны: доверенная и общедоступная

вот результат команды firewall-cmd --zone = trust --list-all

trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: docker0
  sources:
  services:
  ports: 4243/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Очевидно, что порт 9081 не открыт ни в одной зоне, но все же я могу получить к нему доступ. Зачем? как его закрыть?

0
задан 14 March 2020 в 20:52
1 ответ

Я понял, что при запуске Docker с firewallD возникают некоторые ошибки.

Простой обходной путь — изменить то, как вы определяете свои порты в докере. в моем случае мне пришлось изменить свой docker-compose на это:

ports:
- "127.0.0.1:9081:8081"

Важной частью является использование 127.0.0.1 перед определением порта хоста.

0
ответ дан 25 August 2020 в 09:53

Теги

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