通过 SSH 隧道访问 MySQL 数据库

Accessing a MySQL database through SSH tunnels

我有 3 个服务器:serverAserverBserverMySQL

serverMySQL 位于防火墙后面,serverB 无法访问。

serverA 可以通过 SSH 访问 serverBserverMySQL

有什么方法可以设置 SSH 隧道,以便我能够访问位于 serverMySQL 的 MySQL 数据库?

如果 serverB 可以访问 MySQL 服务器(端口 3306 不是 SSH),您必须 运行 在 serverA:

ssh -L 3306:mysqlServer:3306 serverB

然后在serverA中配置MySQL服务器为127.0.0.1:3306

如果 serverB 只能通过 SSH 访问 MySQL 那么你必须在 serverA:运行:

ssh -L 3306:127.0.0.1:12345 serverB

然后在服务器 B 中:

ssh -L 12345:127.0.0.1:3306 serverMySQL

12345 只是任何未使用的端口(超过 1024)