Ubuntu 22LTS 使用 docker compose 部署的一个服务,端口绑定是 8080:80,nginx 反代到 localhost:8080.
ufw 启用,并 设置默认入栈拒绝sudo ufw default deny incoming
,然后发现通过ip+端口8080也能访问。
通过 命令 iptables-save
查看防火墙,发现docker在防火墙添加了规则,然后就没走到ufw。端口就放了,故此导致ufw无效了。
root@dev:~# iptables-save |grep 8080
-A DOCKER ! -i br-f732b01ca22d -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.18.0.3:80
修改docker
的配置文件/etc/docker/daemon.json
(若没有就新建一个), 添加如下内容:
{ "iptables": false }
重启docker:
systemctl restart docker
此时再启动docker容器, 就不会修改防火墙了.
docker-compose.yml配置中,端口部分
8080:80
修改为:127.0.0.1:8080:80
重启生效
关联文章:
https://www.leftso.com/article/2411191705309263.html