![如何从互联网访问本地 mysql 服务器](https://linux22.com/image/1379586/%E5%A6%82%E4%BD%95%E4%BB%8E%E4%BA%92%E8%81%94%E7%BD%91%E8%AE%BF%E9%97%AE%E6%9C%AC%E5%9C%B0%20mysql%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我配置了路由器 R1 作为中继器,并将 ISP 的互联网路由器 R2 连接到它 (R1)。ISP 为互联网路由器 R2 分配了一个静态 IP (41.58.163.84)。
我运行一个从 R1 连接到的内部网应用程序,我为作为内部网应用程序服务器的主机(PC)分配了一个静态 IP(192.168.1.5),以便 R1 网络上的其他 PC 可以使用静态 IP 访问它。
现在,我希望能够从互联网访问内联网应用程序。我在互联网路由器 R2 上配置了端口转发,并将充当internal host
内联网应用程序服务器的 PC 的 IP 设置为静态 IP。
当我尝试使用 ISP 的静态 IP(41.58.163.84)作为主机从互联网连接到 MySQL 时,出现错误
cannot connect to MySQL server at '41.58.163.84' (10061)
我做错了什么,以及如何连接 MySQL 服务器?
答案1
您可以检查以下几件事:
- 您能从自己的 LAN 内连接到 R1 上的“服务器”吗?(从连接到 R1 的其他计算机或直接连接到 R2 的计算机)
- 尝试 Thomas 的建议并暂时关闭服务器上的防火墙,然后再次尝试 #1。
- 设置从 R1 到服务器 IP:端口的端口转发 - 你确实提到过你已经完成了,但只是为了完整
- 从 LAN 内部:您可以使用外部 IP 地址连接到 MySQL 服务器(因此,从连接到 R1 或 R2 的 PC,使用地址 41.58.163.84:port 连接到 MySQL)并查看是否有效)
- 从 LAN 外部:按照 #4 操作
- 你的 MySQL 是否只允许从特定 IP 地址访问?(MySQL 可以有自己的规则,允许特定用户从特定 IP 地址/范围进行连接)
另外,由于您没有提到 R1 和 R2 的设置/ IP 范围(是的,您确实提到它只是重复,但您的想法和它实际做的事情可能不同)。
让我们假设一些 IP 号码 - R1 和 R2 位于同一子网 (192.168.1.x/255.255.255.0):
R1 - 192.168.1.2
R2 - 192.168.1.1 - 充当互联网
服务器的网关 - 192.168.1.5(在端口 3306 上运行 MySQL)
在 R2 上进行简单的端口转发至 192.168.1.5:port 即可(这与我自己的家庭设置类似,但我有一个 NAS 服务器)
如果您的 R1 和 R2 位于不同的子网,例如
R1 在 192.168.1.x 上,
R2 在 192.168.2.x 上
,则需要双路由器端口转发。您需要设置双端口转发。一个从 R2 到 R1。然后另一个从 R1 到服务器。完整说明在此处讨论:
http://portforward.com/help/doublerouterportforwarding.htm
...如果我能想到任何其他需要检查的事情,我会添加编辑..但现在,尝试一下这些并希望它有所帮助。
答案2
防火墙?我首先想到的就是这个。另外,你的调制解调器/路由器可能阻碍了连接。