防火墙限制docker了

avatar
作者
筋斗云
阅读量:0

今天有个安全方面的需求,演示环境禁止将3306等高危端口暴露到外网。

于是同事开启了防火墙,仅将应用端口暴露。结果导致演示环境无法使用。

由于公司的应用是基于docker部署的。结果他问我为什么同一台机器,应用无法访问mysql。

docker对于宿主机来说,其实是一个独立的环境,有自己独立的网卡,可以将其看做外部机器。所以防火墙会拦截docker容器的请求。

解决方案:

  1. 将应用部署到其他机器上,其他机器在内网部署。
  2. 不使用docker,采用宿主机直接部署应用
  3. 将docker网卡添加到trusted域

1被否,公司没有那么多台服务器
2工程量大,而且以后无法使用k8s进行调度

firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd --reload 

自此自己的系统可以正常访问了。
问题解决了一半,过段时间,有人反应其他系统无法使用。
登录nacos查看下服务

在这里插入图片描述
在这里插入图片描述
第一张图是我们系统的,第二张图是别人系统的,2者ip网段不同,于是怀疑是有2个网卡

ifconfig
在这里插入图片描述

2者网段不同,于是将他们的网卡也加进去

firewall-cmd --permanent --zone=trusted --change-interface=br-1f2dcac8086b firewall-cmd --reload 

自此问题解决

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!