在我的DigitalOcean(DO)droplet上,我安装了这个镜像:Ubuntu Docker 17.12.0~ce on 16.04(可以在**DO网站 > droplet > 销毁 > 重建droplet**上找到),在ssh中(在用户配置后),我运行
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose
并获得:
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),但仍然遇到了同样的问题。
结论:在Ubuntu中,ufw防火墙根本不起作用。
问题:如何配置ufw/Ubuntu以解决这个问题?