Docker 容器无法在运行 FirewallD 的情况下进行 DNS 查询

Docker 容器无法在运行 FirewallD 的情况下进行 DNS 查询

尽管防火墙D正在运行,所有 DNS 查询均失败并被防火墙阻止。在容器中运行tcpdump -i docker0时运行会显示ping google.com

21:27:02.683342 IP 172.17.0.2.35118 > google-public-dns-a.google.com.domain: 54430+ AAAA? google.com. (28)
21:27:02.683399 IP 172.17.0.1 > 172.17.0.2: ICMP host google-public-dns-a.google.com unreachable - admin prohibited filter, length 64

8.8.8.8例如,Ping或任何其他绝对 IP 都可以正常工作。

如果我明确将docker0或添加172.17.0.0/16trusted区域,请求就会通过。但是,同一发行版 (openSUSE Tumbleweed) 上的另一台机器运行正常。

我仔细检查了我的 FirewallD 配置,没有提到该子网或docker0接口。我真的不知道发生了什么,也不知道该去哪里查看。您可以在下面找到我活动的 FirewallD 规则。

sudo firewall-cmd --get-active-zones
public

sudo firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: wlp4s0
  sources: 
  services: dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

相关内容