我正在连接到VPN成功,现在我想使用MySQlpipe理员连接到服务器上的MySQL数据库。 我不知道要把什么放在服务器主机地址。
服务器上有一个使用本地主机连接的PHP脚本。 我怎么知道本地主机真的在VPN上?
我可能以一个非常愚蠢的方式提出这个问题 – 对此抱歉。 这是我的知识的边缘。
亚历克斯,本地主机是解决任何机器上的本地环回适配器的名称与连接,它的地址是127.0.0.1 – 所以如果客户端连接到“本地主机”服务这意味着它连接到本地端口机。
服务器还有一个公共地址,分配给“真实的”networking适配器,可以说123.123.123.123 – 你和全世界都可以通过这个地址到达你的服务器,但是只有打开这个适配器的端口。 出于安全原因,默认情况下,mysql端口3306仅向本地回送适配器127.0.0.1打开。
VPN隧道将在您的本地计算机和服务器之间创build一个虚拟但安全的连接。 在这种情况下,您的服务器以及您的本地机器人将具有其他虚拟networking适配器。 假设你的服务器有10.10.10.1,你的本地机器10.10.10.2在隧道的末端。
如果从本地机器ping 10.10.10.1,服务器应该回答。 (在这种情况下,10.10.10.1是主机的地址,它可以回答你的问题)。 但是mysql的端口可能仍然没有在这个接口上监听,因为它只监听127.0.0.1 – 你可以在mysql服务器设置里改变这个,但是确保它不会监听公网IP。
10.10.10.x只是一个例子,但是如何find真正的地址呢?
在你的本地机器和你的服务器上打开一个terminal窗口。 在服务器上键入“ifconfig”,在Windows机器上键入“ipconfig”(第二个字符中的拼写错误),机器会告诉你所有适配器的地址。 您现在可以在两台机器上看到哪一个是附加的VPN适配器(它们具有相似的地址)。
如果你不想改变服务器的设置,你可以“转发”端口,这是一种不同的技术,可以用ssh或putty完成。 您必须从本地计算机到服务器进行ssh或腻子连接,并将IP 127.0.0.1上的端口3306从服务器转发到本地计算机。
如果你正在使用putty转到SSH隧道部分,并添加一个本地端口转发127.0.0.1:3306 – 如果你使用的是SSH,这是命令:
ssh -l remoteusername -L 3306:127.0.0.1:3306 your.servername.com
在ssh或putty连接激活之后,你必须告诉你的mysqlpipe理软件连接到本地主机(所以你把127.0.0.1或localhost作为服务器主机),因为端口被转发,现在在本地机器上出现在127.0 .0.1 – 这是ssh协议可以做的端口转发技术的结果。 一定不要同时在本地机器上运行mysql服务。
你提到你在创build隧道的时候没有连接到你的服务器。 这可能是隧道软件的安全限制。 但是你仍然应该可以通过隧道连接到mysqlpipe理工具。
如果你不知道服务器IP,你怎么知道有一个使用本地主机的PHP脚本? 如果您对服务器有ftp / ssh / web访问权限,请使用相同的IP连接到您用于ftp / ssh / http的IP。
但可能是mysql只是在本地监听,在这种情况下,您将需要使用ssh连接到服务器,并在本地运行mysqladmin(或者您可以使用phpmyadmin之类的东西)