通过跳板机(也称作跳转服务器或SSH中转服务器)连接MySQL服务器,是一种增强数据库访问安全的方法。这种方式不需要在MySQL服务器上直接开放3306端口给外部网络,而是通过SSH隧道(或端口转发)在跳板机和MySQL服务器之间创建一个加密的通道。以下是基本步骤:
1. 准备工作
- 跳板机:一个可以从外部访问,并且能够访问内网MySQL服务器的中间服务器。
- MySQL服务器:配置好,能够从跳板机访问。
- 客户端机器:需要访问MySQL数据库的本地机器。
2. 在跳板机上创建SSH隧道
在客户端机器上执行SSH命令,创建一个SSH隧道。这个隧道会将本地机器上的一个端口转发到MySQL服务器的3306端口上。假设跳板机的地址是jump.host
,MySQL服务器内网地址是mysql.server.internal
:
ssh -L [本地端口]:mysql.server.internal:3306 [用户]@jump.host -N
[本地端口]
:这是你选择的任意本地机器上的未使用端口,例如13306
。mysql.server.internal:3306
:这是MySQL服务器的内网地址和MySQL服务的默认端口。[用户]@jump.host
:这是你的用户名和跳板机的地址。-N
:表示不执行远程命令,只进行端口转发。
3. 从本地机器连接MySQL服务器
现在,你可以使用本地端口通过SSH隧道连接MySQL服务器。如果你使用的是MySQL客户端命令行工具,命令如下:
mysql -h 127.0.0.1 -P [本地端口] -u [MySQL用户] -p
127.0.0.1
:指的是本地机器。由于SSH隧道已经将连接从本地端口转发到了MySQL服务器,所以这里使用本地地址。[本地端口]
:之前在SSH命令中指定的本地端口。[MySQL用户]
:你的MySQL用户名。
注意事项
- 确保跳板机上的SSH服务已启用,并且你有足够的权限创建SSH隧道。
- 你可能需要在跳板机的SSH配置中启用端口转发(通常默认启用)。
- 这种方法提高了安全性,因为不需要在MySQL服务器上直接开放3306端口,而是利用SSH加密了数据传输。
通过上述步骤,你可以安全地通过跳板机访问MySQL服务器,而不需要直接在MySQL服务器上开放3306端口。