我使用的网络不允许端口3306,所以我无法连接到。如何设置一个代理服务器(在允许3306的不同网络上),我可以通过SSH与GCS通过Navicat/MySQL直接连接?
发布于 2015-10-01 14:50:17
为了进一步了解Dan的回答,请提供一些详细的信息:
如果您有此选项,请在家中安装一个小型Linux服务器。您可能必须修改sshdconfig,以便根据您的发行版设置SSH隧道。您还可能需要修改防火墙配置,以允许端口22连接,尽管大多数发行版在安装openssh时都会自动完成此操作。
您可以使用动态DNS服务,以防您的家庭IP地址发生变化,并且仍然可以远程访问。为此,我实际上更喜欢使用freedns.afraid.org,并在它们宿主的公共可用域之外设置子域。然后在我的Linux服务器上添加一个cron作业,每小时运行一次,并按下一个特殊的链接,使该子域的IP保持更新。许多家庭WiFi路由器实际上在配置中直接支持一个或多个动态DNS服务。
您还需要在您的家庭路由器上设置一个转发端口。在端口22上设置转发到Linux服务器IP地址的外部连接端口。这样做的具体细节在很大程度上取决于您正在使用的路由器。
重要的是,无论您做什么,不要设置端口向前暴露端口22外部。黑客/脚本-孩子不断扫描端口22。当他们找到它的时候,他们就会开始破解root的密码。如果您查看/var/log/secure并看到文件很大,您就会注意到这种情况。我做了一次,在短短几个小时内,我就看到连接和黑客攻击已经发生。
因此,使用一个非标准端口(比如5828或其他类似随机的端口)。只要保持在1024以上低于32767。
在Windows上,一个非常好的SSH客户端是PuTTY (www.chiark.greenend.org.uk/~sgtatham/putty)。在连接设置中,放置您的internet主机名(从您选择的动态DNS服务或通过我提到的freedns服务)。将您的端口设置为您在端口中选择的端口。
然后去SSH/隧道区。在该屏幕上,保留前两个复选框未选中(不需要允许远程连接)。输入一个源端口(如果客户端计算机上没有安装MySQL,则可以使用3306)。对于目标输入“gcs-主机:3306”。"gcs-host“的意思是主机名。然后对于下面的两个单选按钮选项,。
保存连接信息并连接。
现在您应该能够启动MySQL工作台并使用"localhost:3306“作为服务器名。
发布于 2015-10-01 10:55:53
在命令行中,它将类似于:
ssh -L 3306:GCS-host:3306 proxy-host这依赖于您对代理主机的SSH访问,并且只需在3306的本地机器上打开一个侦听端口,这样您就可以告诉Navicat连接到localhost:3306。
如果本地MySQL服务器已经在3306上运行,您可能会遇到麻烦,在本例中,只需为命令中的第一个数字选择一个空闲端口,并调整您的Navicat配置即可。
https://dba.stackexchange.com/questions/116697
复制相似问题