gpt4 book ai didi

mysql - 不小心暴露了端口?

转载 作者:行者123 更新时间:2023-11-29 05:48:50 24 4
gpt4 key购买 nike

我是 dockermysql 的初学者,我使用下面的命令来运行一个 mysql 容器

docker container run --publish 3306:3306 --name mysqlDB -d --env MYSQL_RANDOM_ROOT_PASSWORD=yes mysql

现在它运行成功,为了获取生成的密码,我运行下面的命令

docker container logs [containerID]

在日志中我可以找到我的GENERATED ROOT PASSWORD,但是当我尝试阅读日志时我注意到下面的日志

[System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060

请问这是什么意思?我有机会打开端口 33060 吗?我如何验证它?

最佳答案

这似乎是一个 MySQL 插件,它为 MySQL 添加了面向文档的 API。您可以在这里找到更多信息:https://www.percona.com/blog/2019/01/07/understanding-mysql-x-all-flavors/

该端口号似乎与您的绑定(bind)无关,那只是该插件的默认端口号。

另外,那个端口号没有暴露,所以,不用担心,攻击面还是一样的。

如果你想禁用那个东西,这里是说明:https://dev.mysql.com/doc/refman/8.0/en/x-plugin-disabling.html (命令行选项可能是您最好的选择——考虑到 docker 环境)。

为确保端口未暴露,您可以运行容器并执行 docker ps,您将看到如下内容:

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43dd96119ded lb_geo-api "/bin/sh -c 'exec sh…" 6 months ago Up 7 days 80/tcp, 0.0.0.0:4203->8080/tcp lb_geo-api_1_a86ebad528fc

最后一列 - “PORTS” - 是端口列表及其在主机上的绑定(bind):

  • 80/tcp -- 端口 80 可以从容器内部公开,但未映射到主机端口,因此,外部的任何人都无法连接到那里
  • 0.0.0.0:4203->8080/tcp -- 端口 8080 公开并且映射到所有网络适配器上的端口 4203,它可以从外面

因此,如果您的输出中没有端口 33060,或者它存在但未映射 - 您是安全的。在任何情况下,只有您可以在启动容器时映射它,因此,如果您没有这样做,那么它就不会被映射。

关于mysql - 不小心暴露了端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com