我正在尝试从运行我的应用程序的vlan中的计算机连接到外部mysql服务器。远程服务器不是vlan的成员。以下是我到目前为止所尝试的内容。
从我的vlan服务器转发Mysql端口
ssh -L 3306:my-vlan-server-ip:3306 user-at-external-server@external-server-ip
在这种情况下,我收到一条ssh超时消息。 试图直接从我的php mysql_connect做到这一点我得到mysql错误#111但我已经编辑了 my.cnf :
#skip-networking
bind-address =my-vlan-server-ip
我的php db连接脚本
<?php
$conn=mysql_connect("external-server-ip","user","pass");
if($conn)
{
echo "success";
}
else
{
echo "fail";
}
?>
请有人帮忙。让我知道我哪里出错了。感谢。
答案 0 :(得分:1)
如果我理解正确,你在vlan服务器上运行ssh客户端(= my-vlan-server-ip)?
本地隧道(-L)基本上将第一个端口转发到给定地址上的给定端口,即-L 80:someserver:8080将本地计算机上的端口80转发到某个服务器上的端口8080 ...所以如果你想要通过ssh连接到远程服务器上的3306:
ssh -L 3306:external-server-ip:3306 user-at-external-server @ external-server-ip (或只是-L 3306:localhost:3306,localhost将引用您要连接的服务器,即external-server-ip)
localhost:3306然后转发到external-server-ip:3306
在my-vlan-server-ip上运行的php脚本中,然后连接到localhost:3306,然后通过ssh转发到external-server-ip ...