Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无SSH访问的Mysql隧道连接_Mysql_Ssh_Portforwarding_Tunnel - Fatal编程技术网

无SSH访问的Mysql隧道连接

无SSH访问的Mysql隧道连接,mysql,ssh,portforwarding,tunnel,Mysql,Ssh,Portforwarding,Tunnel,从我的本地计算机,我可以通过SSH访问服务器A。 在服务器A上之后,我通过服务器B上的端口3306连接到服务器B上的mysql mysql -h <B.hostname> -P 3306 -u <username> -p mysql-h-p3306-u-P 我没有从本地计算机或服务器A对服务器B的ssh访问权限 我想做的是从本地机器访问服务器B上的mysql。我找到的每个隧道/端口转发链接都假设我可以通过ssh连接到服务器B。听起来您必须使用远程端口转发。在本地主机

从我的本地计算机,我可以通过SSH访问服务器A。 在服务器A上之后,我通过服务器B上的端口3306连接到服务器B上的mysql

mysql -h <B.hostname>  -P 3306 -u <username> -p
mysql-h-p3306-u-P
我没有从本地计算机或服务器A对服务器B的ssh访问权限


我想做的是从本地机器访问服务器B上的mysql。我找到的每个隧道/端口转发链接都假设我可以通过ssh连接到服务器B。

听起来您必须使用远程端口转发。在本地主机上尝试以下操作:

[auto]ssh -R 1111:127.0.0.1:2222 -f -N -4Cp1234 username@servername.net
因此,您可以在
localhost:2222
(本地计算机)上获得
localhost:1111
(当您登录到servername.net时)上的所有内容,通过SSH在
servername.net:1234
上传输流量


如果您的“服务器A”可以通过某种方式访问“服务器B”,并且您可以通过SSH访问“服务器A”,这可能会对您有所帮助。

SSH的-L使用本地端口、从您连接到的SSH服务器连接的远程主机名以及远程端口。在本例中,您将运行:

ssh-l3307:B.hostname:3306a.hostname


这将使ssh连接到A,当您稍后使用本地mysql客户端(
mysql-H localhost-p 3307-u…
)连接到端口3307时,A的sshd将为您启动到B.hostname:3306的连接。

非常感谢。出于某种原因,我不得不在第二步中使用127.0.0.1而不是localhost,但它起了作用。例如,localhost可能解析为IPv4(127.0.0.1)和IPv6地址(::1),ssh只能侦听127.0.0.1:3307,mysql可能尝试连接[::1]:3307。