💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 失效原因 默认情况下, docker启动后参数中如果加了端口映射, 就会自动将端口开放给所有网络设备访问, 并且这种情况下即使在本机的系统防火墙中加规则也无效, 因为docker会自动添加一个优先级最高的针对这个映射端口全开放规则, 这样就需要在docker启动时添加参数来禁止docker对本机防火墙的操作. ## 服务器环境 | 对象 | 版本 | | --- | --- | | CentOS | 7.6.1810 | | Docker-CE | 17.12.1-ce | ## 添加对应服务和端口的允许访问规则 ~~~ firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset=whitelist-app service name="http" accept' firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset=whitelist-app service name="https" accept' firewall-cmd --permanent --add-rich-rule='rule source ipset=whitelist-app port port=2266 protocol=tcp accept' firewall-cmd --permanent --add-rich-rule='rule source ipset=whitelist-app port port=3888-4500 protocol=tcp accept' ~~~ > 注意添加`--permanent`否则重启防火墙后规则失效 ## (重点)禁止docker去操作防火墙 ~~~ # 给docker的启动服务添加"--iptables=false"参数, 禁止docker去操作防火墙 sed -i 's:^ExecStart=/usr/bin/dockerd.*:ExecStart=/usr/bin/dockerd --iptables=false:g' /lib/systemd/system/docker.service systemctl daemon-reload systemctl restart docker ~~~ > 注意:重启docker后需要重启容器镜像