从我的本地机器上,我有服务器A 一旦服务器A SSH访问,我通过3306端口连接到MySQL服务器B上的服务器B.隧道连接到MySQL没有SSH访问
mysql -h <B.hostname> -P 3306 -u <username> -p
我没有ssh访问服务器B,无论是从本地机器还是从服务器A.
我想要做的是从本地机器访问服务器B上的mysql。我找到的每个隧道/端口转发链接假设我可以SSH入服务器B.
从我的本地机器上,我有服务器A 一旦服务器A SSH访问,我通过3306端口连接到MySQL服务器B上的服务器B.隧道连接到MySQL没有SSH访问
mysql -h <B.hostname> -P 3306 -u <username> -p
我没有ssh访问服务器B,无论是从本地机器还是从服务器A.
我想要做的是从本地机器访问服务器B上的mysql。我找到的每个隧道/端口转发链接假设我可以SSH入服务器B.
ssh的-L采取本地端口,远程主机名连接从您连接到的ssh服务器,以及远程端口。在这种情况下,你会遇到:
ssh -L 3307:B.hostname:3306 A.hostname
这将使SSH连接到A,当你使用一个本地MySQL客户端(mysql -H localhost -P 3307 -u ...
)后连接到端口3307,A的sshd的将启动一个连接B.hostname:你的3306。
听起来像您必须使用远程端口转发。试试这个本地主机上:
[auto]ssh -R 1111:127.0.0.1:2222 -f -N -4Cp1234 [email protected]
所以,你得到你得到localhost:1111
(当你登录上servername.net)您localhost:2222
(本地机器)应有尽有,交通上servername.net:1234
会通过SSH。
如果您的“服务器A”可以以某种方式访问“服务器B”,并且您可以通过SSH访问“服务器A”,那可能对您有帮助。
非常感谢。出于某种原因,我不得不在第二步中使用127.0.0.1而不是localhost,但它工作正常。 – Dan
这可能有几个原因。例如,localhost可能会解析为IPv4(127.0.0.1)和IPv6地址(:: 1),ssh只能在127.0.0.1:3307上侦听,而mysql可能会尝试连接[:: 1]:3307。 – oh7lzb