本地主机访问服务器的Redis -- 配置 ssh 端口转发

前言

在进行Java开发时,高度的依赖 Windows 上的开发软件 idea ,那么我们想访问位于服务器上的 redis 怎么办呢?在平时我们想访问位于服务器上的程序,只需要开放它的端口即可,比如我们创建的网站,比如 tomcat 的8080 端口,但 reids 的 6379 端口我们能开放吗?答案是不能,因为 redis 的端口一旦开放,就非常容易被黑客攻击。

那么我们要如何在不开放 redis 端口的情况下,也能在本地主机访问服务器上的 redis 程序呢?方法有两个:

(1).直接让 Java 程序也在 Linux 服务器上运行

我们将 Java 程序打成 jar 包,然后把 jar 包拷贝到 Linux 服务器上运行,此时 Java 程序和 redis 位于同一个主机,就可以很方便的进行访问了。但这要我们每次调试都打 jar 包然后拷贝到 Linux 服务器上运行,非常的麻烦,所以不推荐

(2).配置 ssh 端口转发,把服务器的 redis 端口映射到本地主机

我们可以通过 ssh 将服务器上 redis 的 6397 端口映射到本地主机的 8888 端口,当我们在本地主机构造请求发送给 8888 端口时,ssh 会帮我们把请求转发给服务器的 6379 端口,也就是redis

ssh 协议

ssh 的全称是 Secure Shell ,它是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH 通过在网络中创建安全、加密的连接(也叫做"隧道")来工作。

ssh 协议默认在 22 端口,它的功能非常强大,其中一个很重要的功能就是支持端口转发,相当于可以通过 ssh 的 22 端口来转发其他端口的数据

我们通过简单的配置,让 ssh 明确本地主机上 8888 端口和云服务器 6379 端口之间的映射关系,当我们将请求发送给本地主机上的 8888 端口时,这个请求会由隧道转发给服务器上 ssh 的 22 端口,服务器上的 ssh 服务器程序会将该请求交给 6379 端口,也就是 redis。(ssh 可以帮多个端口转发信息,可以设置多个映射关系)

简单配置

软件:xshell

1.选中会话,右键,点击属性

2.在 ssh 目录下选择隧道

3.点击添加(添加映射关系)

4.设置转换规则(映射关系)

5.点击连接

6.检验连接情况

我们可以查看本地主机的 8888 端口的网络连接情况来判断是否连接成功

java 复制代码
netstat -ano|findstr 8888

如图代表已经连接成功

当我们把连接的 xshell 窗口关闭以后,连接便中断

连接成功以后,后续我们在 Java 代码中通过 127.0.0.1:8888 便能操作服务器的 redis 了,并且其他的客户端无法访问我们服务器的 redis

相关推荐
乘云数字DATABUFF19 小时前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜3 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB4 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
zzzzzz3106 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220706 天前
如何搭建本地yum源(上)
运维
大树889 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠9 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql