合作部门提供的 redis 集群,kafka 集群,限制条件:无 vpn,仅能通过特定跳板机(无 root 权限)连接调试开发。


想要实现:本地开发连接其 redis 集群,kafka 集群进行开发调试等,否则就只能改一次代码打一次包上传了,众所周知 “Java 码农离开 ide(a) 就不会写代码了”。


项目配置文件中可仅填写一部分 redis 集群的节点,其他节点会自动发现,但是对于跑起来的项目来说,实际还是要连接上其他节点的,所以这就要求本地确实能够连接上所有节点(程序自动发现的 ip:port 即为其提供的不可直接访问的 ip:port)。

先考虑所有的 ip:port 组合都是不同的,即不会出现 192.168.1.2:6379, 192.168.1.3:6379 这种 ip 不同 port 相同的情况。


假设跳板机为 dev@192.168.1.2:2222
redis cluster:
192.168.9.1:6379
192.168.9.1:6380
192.168.9.1:6381
192.168.9.2:6479
192.168.9.2:6480
192.168.9.2:6481


任务拆解:
1. 给本机(或者其他可控主机)配置所有的的 redis 绑定的 ip,kafka 同理;
2. 所有的 port 映射到对应的 redis 监听的 port,kafka 同理。


具体操作:
1. cmd -> ipconfig /ALL 记录本机现在的 ip 地址、子网掩码、默认网关、DNS 服务器等信息。



记录红线的内容填入下方的 "使用下面的 IP 地址"


配置多 ip



按照箭头一路填写把 redis 集群的 ip 都添加上即可


此时查看 cmd ipconfig /all



多出了 redis 集群相应的 ip ,且能 ping 通


这样 ip 就配置成功了


2. 端口的映射


ssh -L 192.168.9.1:6179:192.168.9.1:6179 \
    -L 192.168.9.1:6180:192.168.9.1:6180 \
    -L 192.168.9.1:6181:192.168.9.1:6181 \
    -L 192.168.9.2:6279:192.168.9.2:6279 \
    -L 192.168.9.2:6280:192.168.9.2:6280 \
    -L 192.168.9.2:6281:192.168.9.2:6281 \
-Nf dev@192.168.1.2 -p 2222


不用担心这是 *unix 命令怎么在 windows 上执行的问题,使用 git bash 就可以了。

使用 man ssh 查看下是干了点儿啥



-L 绑定地址端口 本地ip:本地port:目的ip:目的port



-N 不要执行远程命令,仅作端口转发



-f 后台执行


完工,现在访问 192.168.9.1 和 192.168.9.2 就会通过 跳板机(192.168.1.2) 连接上远端的 192.168.9.1 和 192.168.9.2。


最后,如果有存在 192.168.9.1:6379 和 192.168.9.2:6379 这样 ip 不同,端口相同的情况,可以考虑起虚拟机给虚拟机按照上面配置,当然虚拟机是用 windows 还是 *unix 就看熟悉哪个了。

SSH隧道的使用的更多相关文章

  1. SSH隧道应用, 突破网络限制

    文/怡文圣美 这篇文章可以帮你解决下面三个问题: 不能直连服务器, 要先登陆跳板机, 造成客户端工具无法连接服务器. 服务器没有公网IP, 且只允许公司IP访问, 要在家里操作要先远程桌面到工作机再登 ...

  2. ssh隧道(端口转发)

    本地转发: ssh -Nf -L [bind_address:]port:host:hostport sshServer -Nf 后台运行 -L 本地转发 [bind_address] 绑定本地地址, ...

  3. 通过 SSH 隧道方式图形化连接 AIX 服务器

    跳转到主要内容 登录 (或注册) 中文 [userid] IBM ID: 密码: 保持登录. 单击提交则表示您同意developerWorks 的条款和条件. 查看条款和条件. 需要一个 IBM ID ...

  4. ssh隧道技术

    大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得. SSH ...

  5. 【转】三种不同类型的ssh隧道

    转自:http://blog.creke.net/722.html 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的 ...

  6. SSH隧道技术----端口转发,socket代理

    原文的原始出处不详,本文也是在复制引用了某篇转载,并做了必要的整理与编辑. 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写 ...

  7. 公司内网Debian Server上的openvpnserver搭建并通过SSH隧道转发到广域网

    因为戴维营公司在长沙的学员,研发人员和北京的研发人员须要协同研发,故须要让北京的兄弟们增加到长沙办公室的内网,訪问版本号 管理server,于是採用在内网server上搭建一个OpenVPN服务,并把 ...

  8. ssh隧道

    最近有需求使用ssh隧道,顺便研究了下,以下记录一下大概说明 ssh隧道顾名思义在可以通过ssh连接的server之间建立加密隧道,常用于突破网络限制 常用三种端口转发模式:本地端口转发,远程端口转发 ...

  9. 配置SSH隧道访问Ubuntu服务器上的MongoDB

    为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身).但是这样就会在开发的过程查看数据时带来麻烦 ...

  10. 调试利器:SSH隧道

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文作者:ivweb 吴浩麟 原文出处:IVWEB社区 未经同意,禁止转载 在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需 ...

随机推荐

  1. vmware上安装centos7虚拟机

    1.1 Linux 的安装 安 装 采 用 在 虚 拟 机 中 安 装 , 以 方 便 不 同 班 级 授 课 时 , 需 要 重 复 安装的情况. 1.1.1 配置虚拟机 1. 在 VMware W ...

  2. 判断日期是否为法定节假日的API接口与示例函数

    需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的.可惜的是,这样的接口并不多,在此汇总三个: http://tool.bitefu.net/jiari/ http ...

  3. 第一篇:php开发环境

    Window: 1.XAMPPhttps://www.apachefriends.org/index.html 2.WampServerhttp://www.wampserver.com/ Linux ...

  4. vue-cli 脚手架安装

    1.安装node;选择适合自己系统的文件,下载一路next , a安装成功后,打开运行输入cmd 进入命令行: 在命令行工具中输入 npm -v  检查版本号 如果出现 则安装成功:(npm为node ...

  5. 你所不知道的TIME_WAIT和CLOSE_WAIT

    你遇到过TIME_WAIT的问题吗? 我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下.哎呀妈呀,几 ...

  6. Java 2019 生态圈使用报告,这结果你赞同吗?

    这是国外一机构调查了 7000 名开发者得出来的 Java 2019 年生态圈工具使用报告,主要调查了 Java 版本.开发框架.web 服务器等使用情况.虽然只有 7000 名开发者参与调查,这数目 ...

  7. 深入研究BufferedReader底层源码

    目录 1 概述 2 BufferedReader源码分析 3 意外发现 1 概述 最近研究JDK IO流这一块源码,发现真的比较简单,而且还有很多意外发现,如果大家对JDK源码感兴趣,不妨从IO流这一 ...

  8. vue-cli脚手架项目本地阅览和在线阅览

    一.需求 开发环境:当然啦,前提是你要完整检测整个项目无错误的运行:npm run dev 后项目在本地预览问题没有问题 二.服务器本地阅览 生产环境:项目制作完成后需执行npm run build操 ...

  9. 《java编程思想》P160-P180(第八章部分+第九章部分)

    1.什么是多态? 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 现实中,关于多态的例子不胜枚举.比方说按下 F1 ...

  10. 使用java语言实现一个动态数组(详解)(数据结构)

    废话不多说,上代码 1.从类名开始(我真是太贴心了) public class Array<E> 首先数组类需要带有泛型,这个不多说.需要注意的是在java中,数组只能存放同一个类型的. ...