Docker 防火墙配置
配置 Docker 宿主机防火墙
配置 Docker 宿主机防火墙
- 假设使用 Debian/Ubuntu Server
- 专为 Docker 宿主机运行环境设计
安装必要组件
# 安装 UFW 防火墙及相关工具apt-get update && apt-get install -y ufw nmap curl获取内网与外网 IP 地址
# 获取 IP 地址,简洁输出模式:hostname --all-ip-addresses
# 或者使用 ip 工具查看详情:ip addr防火墙 (UFW) 配置 - 示例命令
ufw logging on # on 等同于 low 级别 - 诊断时建议设为 mediumufw logging medium# 首先,默认拒绝所有入站流量ufw default deny incoming
# 必须项:从以下两条默认出站规则中“二选一”:ufw default deny outgoingufw default allow outgoing
# 允许并记录所有新的 SSH 连接ufw allow log proto tcp from any to any port 22## 允许 HTTP 流量(不记录日志)ufw allow out on docker0 53/udp to 172.17.0.1/16ufw allow out on eth0 to any port 53ufw allow out on eth0 from 0.0.0.0/0 to any port 80 proto tcpufw allow out on eth0 from 0.0.0.0/0 to any port 443 proto tcp
# 详细写法:ufw allow proto tcp from any to any port 80ufw allow 80/tcpufw allow 443/tcpufw allow log 22/tcpufw limit ssh # 基础频率限制,用于缓解 SSH 暴力破解
# 设置你的外网 IPexport EXTERNAL_IP=123.123.123.123# 根据实际情况更新 Docker IPexport DOCKER_IP=172.17.42.1# 将 TCP 8080 流量转发至 Docker 容器应用ufw allow proto tcp from $EXTERNAL_IP port 8080 to $DOCKER_IP port 3000启用 / 启动防火墙
注意:操作需谨慎,确保不要把自己锁在 SSH 端口之外(sshd 默认端口为 22)
ufw --force enable
ufw reset测试你的防火墙
注意:请务必从远程 IP 地址或外部位置进行测试
# 验证依赖项apt-get update && apt-get install -y nmap
# 设置扫描目标export TARGET_HOST=123.123.123.123
# 扫描命令示例:# 快速开放端口检查nmap -p 1-10240,27017 -T5 $TARGET_HOST# 深度扫描nmap -p 1-10240,27017 --open -v -APN $TARGET_HOST# 服务探测nmap -p 1-10240,27017 -O --osscan-guess $TARGET_HOST大功告成!现在你应该只能看到你显式配置过的端口。