我有一台运行 Redis、Mongo 和 MySQL 服务器的本地服务器。我可以使用其 LAN IP 地址 (192.168.*. *) 访问它,但无法通过其 CNAME 访问它。我已将服务器设置在本地路由器的 DMZ 中。如果我在端口 3000 上运行 Rails 服务器,我可以在 CNAME (cname.domain.com:3000) 上看到它。对于 mysql 服务器,当我尝试使用 CNAME 登录时,我收到错误:
ERROR 1130 (HY000): Host '**************.rr.com' is not allowed to connect to this MySQL server
我正在运行 Ubuntu,并配置了 ufw(IP 表前端)以允许所有192.168.0.0/24
我是否需要确保路由器上的每个端口都进行了端口转发?
答案1
这听起来不像是防火墙问题,因为您已经从 MySQL 中收到错误。
更可能的是,由于您现在通过 CNAME 访问 MySQL 服务器,因此您不再来自允许的 IP,而是来自网关 IP(或类似 IP,如果不知道您的网络布局,很难说)。
检查 MySQL 权限。
答案2
查找主机名的记录,它可能指向公共 IP 地址,在这种情况下,您可能会被路由出 LAN 的公共接口而不是内部路由,在这种情况下,您需要更新 mysql.user 表以允许从您的公共 IP 访问用户。