开发者社区 > 数据库 > 关系型数据库 > 正文

阿里云只开放22端口,如何通过java代码远程连接mysql数据库

已解决

阿里云只开放了22端口(SSH),在代码中如何使用SSH隧道来进行连接。请问步骤如何实现

展开
收起
游客kgasqsf4upivw 2023-08-21 08:51:05 354 0
1 条回答
写回答
取消 提交回答
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。
    推荐回答

    Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。

    在阿里云远程Linux的服务器只开通了22端口还不能开别的端口,

    阿里云服务器 ssh隧道_如何使用SSH隧道访问受限服务器,你可以参考一下网友的翻译文章:

    https://www.javacodegeeks.com/2014/11/how-to-use-ssh-tunneling-to-get-to-your-restricted-servers.html

    有网友在Linux开个7001的接口服务后,在本地windows系统能够通过22端口访问到这个7001接口服务。相当于访问了windows的7001端口,然后moba给转到了ssh server上,并且ssh server其实就是跳板机,能访问到7001,直接就建立起windows到ssh server的7001连接了。

    MySQL的端口3306被阿里云列为不安全端口,同时FTP的端口21也被阿里云列为不安全端口,所以为了安全起见应该关闭3306和21端口。

    解决方法参考:

    gnucash 客户端透过SSH Tunnel / SSH 安全隧道端口22连接到服务器上的MySQL;

    步骤:a. 先建立工作电脑和服务器之间SSH Tunnel / SSH 安全隧道;

    b. 然后在应用程序的客户端gnucash做相应设置。

    a. 建立SSH Tunnel / SSH 安全隧道有很多种方法(Putty, Xshell,plink等),

    在Source port后面填 3307 ->工作电脑上的端口为3307,(注意这个端口,这是可以根据需要变更的);

    Destination后面填 localhost:3306, 这是指服务器上的设置,然后点击 Add。

    然后进入Session界面,在Host Name下面填你的服务器域名或IP地址,如果这时使用Saved Sessions来存储的话会更方便,但不是必须的;

    然后点击 Open就进入下面的界面,当然你得在服务器上事先设置好相应的系统用户(不是数据库用户),这时就可以用用户名和密码来建立SSH Tunnel / SSH 安全隧道,只要正常登录就建好SSH 安全隧道了。

    在Win10上查看端口有好多张图,如果可以看到3307端口打开,就说明SSH Tunnel / SSH 安全隧道建好了,如果没有3307就得查看哪里出错了,按上面的步骤再来一遍。

    从这个上面的步骤可以看出,FTP端口21也可以这么来操作。原理是一样的。

    以上仅供参考,来源于网络。

    2023-08-21 10:28:30
    赞同 1 展开评论 打赏

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

相关产品

  • 云数据库 RDS MySQL 版
  • 相关电子书

    更多
    Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
    The Reactive Cloud Native Arch 立即下载
    JAVA开发手册1.5.0 立即下载

    相关镜像