debian12系统安装了ufw
但是docker容器端口不需要ufw放行就能连通
按照claude教的,尝试修改了/etc/docker/daemon.json,添加"iptables": false,还安装了ufw-docker,都没有效果
想请教下有什么办法解决?只能通过ufw放行
6 Likes
network_mode:host了么?
3 Likes
没有呀,我只是按照claude教的弄了上面两个
1 Like
只找到这个, 试试?
1 Like
我没试过, 毕竟云机还有个安全组…
我docker暴露的是127.0.0.1:port
迈向全面容器化→UFW 管不了 Docker 的解决方案
2 Likes
GitHub:chaifeng/ufw-docker
按照这个大佬的方案改就行。对于有对外通信需求的容器,ufw添加route规则到指定容器或端口。
1 Like
确认ufw enable了吗?
嘿嘿
1 Like
我一般用iptables,如果是普通的服务,限制访问ip直接iptables -A INPUT就行。但如果是docker搭建的服务,可能会失效,必须加一条iptables -I DOCKER-USER才行
/etc/docker/daemon.json
和
~/.docker/config.json
应该有区别,不太了解你要用哪个
前一个用于docker pull
配置的127.0.01:端口
后者用于docker run
配置的是容器网关地址:端口,一般是172.17.0.1:端口
1 Like
哇,原来大佬也在这耍。
暴露端口前加127.0.0.1,其它不需要改任何东西
1 Like
我现在是在用127.0.0.1了
感谢,没了解过iptables,我现在docker搭建服务都用127.0.0.1,其他用ufw
根本原因在于:docker会直接修改iptables,使ufw防火墙失效。gpt给的其他解决方式就比较复杂了……
23333万年老坑了
cat << EOF >> /etc/docker/daemon.json
{
"iptables": false
}
EOF
echo "DOCKER_OPTS=\"--iptables=false\"" >> /etc/default/docker
service docker restart