在我的 DigitalOcean (DO) Droplet 中,我安装了以下图像:Ubuntu Docker 17.12.0~ce 于 16.04(可在 ** DO 网站 > Droplet> destroy>重建 Droplet** 上找到),在 ssh 中(用户配置后),我运行
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose
and get:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip
To Action From
-- ------ ----
22 LIMIT IN Anywhere
2375/tcp ALLOW IN Anywhere
2376/tcp ALLOW IN Anywhere
22 (v6) LIMIT IN Anywhere (v6)
2375/tcp (v6) ALLOW IN Anywhere (v6)
2376/tcp (v6) ALLOW IN Anywhere (v6)
如您所见,我不允许端口 80 (http) 上的任何连接。好的,为了测试防火墙是否真的有效,我运行以下 docker:
sudo docker run -d -p 80:80 -e ENABLE_IPV6=true -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy:alpine
但是当我转到 chrome 并输入我的 Droplet IP 时,我看到 nginx 响应(!!!)
我也尝试了 Ubuntu 17 映像(手动安装 docker),但仍然遇到同样的问题。
结论: ufw 防火墙在 Ubuntu 中根本不起作用
Question: 如何配置 ufw/Ubuntu 来解决这个问题?