理想的彼岸
分类标签留言板友链关于

本站由 KevinYouu 使用 Next.js 构建。

访问量: 0 访客数: 0 | 总访问量: 0 总访客数: 0

运行时间: 0 年 0 月 0 日 0 时 0 分 0 秒

解决 UFW 和 Docker 的问题

解决 UFW 和 Docker 的问题

Docker
Docker
其他语言: English
创建时间:2024-11-03
更新时间:2024-11-03
字数:388
阅读时间:1.94分钟

解决使用 Docker,UFW 无法管理 Docker 容器端口的问题

在使用 Docker 时,您可能会发现 UFW(Uncomplicated Firewall)防火墙的规则对 Docker 容器的网络流量不起作用。这是因为 Docker 默认直接修改 iptables 规则,绕过了 UFW 的控制。

那么我们应该如何解决这个问题呢?

这里以开放 22、80 和 443 以及8443 的 UDP 端口为示例:

1. 安装并启用 UFW

首先,确保您的系统已安装 UFW,并将其启用:

bash
sudo apt update sudo apt install ufw sudo ufw enable

2. 开放必要的端口

使用以下命令开放 SSH(22)、HTTP(80)和 HTTPS(443)端口:

bash
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 8443/udp

3. 安装 ufw-docker 工具

ufw-docker 是一个用于解决 Docker 与 UFW 防火墙规则冲突的工具。 安装步骤如下:

bash
sudo wget -O /usr/local/bin/ufw-docker https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker sudo chmod +x /usr/local/bin/ufw-docker

4. 配置 ufw-docker

运行以下命令以安装 ufw-docker:

bash
sudo ufw-docker install

该命令会修改 UFW 的配置文件,使其与 Docker 的网络规则兼容。

5. 重启服务器

可能由于某些未知原因,重启 UFW 之后规则也无法生效,重启服务器后即可生效。

bash
sudo reboot

6. 验证配置

使用以下命令查看 UFW 的状态,确保所需端口已开放:

bash
sudo ufw status

输出应显示 22、80 和 443 端口已被允许。

7. 删除规则

首先,使用以下命令列出所有规则编号:

bash
sudo ufw status numbered

删除指定编号的规则,例如删除编号 3 和 4 的规则:

bash
sudo ufw delete 3 sudo ufw delete 4

8. 参考

ufw-docker


目录
1. 安装并启用 UFW
2. 开放必要的端口
3. 安装 ufw-docker 工具
4. 配置 ufw-docker
5. 重启服务器
6. 验证配置
7. 删除规则
8. 参考