未曾想到,Ubuntu的防火墙UFW上的设置,会被Docker绕过。
情况是这样的,我开了一个docker服务,做了端口映射,然后我用nginx将入口反向代理到一个域名URL下。可以访问。
这时我想禁止通过服务器ip访问,结果居然失败了!一开始以为是UFW设置问题,结果一通操作,反而用域名访问不了,而IP可以。
于是搜索了下,居然是UFW和Docker有冲突。Docker会自己配置IPTABLES,而UFW低于IPTABLES于是就失效了。
真正的解决方法比较麻烦,需要修改Docker和UFW的配置,我这里用了一个Workaround,重新部署docker,但是在端口映射加上127.0.0.1:端口,这样对外这个接口不开放,只能通过nginx。
不过这个ufw一开,我连正常的访问也被中断了,很奇怪。还得再琢磨琢磨。
发表回复