踩新坑,Docker 暴露端口,防火墙给放行了

主机上用Docker跑了一个MySQL,大致的配置是:

docker run -d \
--name mysql \
--restart always \
--publish 3306:3306 \
--volume /srv/mysql8/data:/var/lib/mysql \
--volume /srv/mysql8/conf.d:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456\
-d mysql:8.0.21 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--default-authentication-plugin=mysql_native_password

然后就很愉快的使用了,直到昨天使用nnmap做了一下端口扫描,发现3306赫然在列,但是ufw防火墙中并没有相关内容,此时估计是新坑来了。

顺便telnet一下,好家伙,果然可以。

root@work-vm:~ # telnet hk01.node.loveyu.info 3306
Trying 103.200.114.34...
Connected to hk01.node.loveyu.info.
Escape character is '^]'.
J
8.0.21  {ssj-▒▒K
                tze8!X&CJmysql_native_password^CConnection closed by foreign host.

于是, Google: docker firewall not working, 果然,然后看了一众解决方案,于是默默调整配置,只开启本机和内网访问。

docker run -d \
--name mysql \
--restart always \
--publish 127.0.0.1:3306:3306 \
--publish 192.168.11.1:3306:3306 \
--volume /srv/mysql8/data:/var/lib/mysql \
--volume /srv/mysql8/conf.d:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456\
-d mysql:8.0.21 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--default-authentication-plugin=mysql_native_password

当前还没有任何评论

写下你最简单的想法