起猛了,消息队列也能拿来内网穿透?

内网穿透这事,大家都不陌生:假如你想在公司里访问家里的电脑,只需要通过内网穿透技术,把家里电脑映射到一个公网电脑上即可:

要实现内网穿透,有好多的软件可以选择,例如大名鼎鼎的FRP。

但是今天要介绍的这个软件就是个奇葩了,它的介绍是:只要两台机器间有任何通讯渠道(如http短连接、websocket、tcp,甚至kafka之类的消息队列),就能让两台机器间任意端口互通!

项目地址:https://github.com/codingmiao/hppt

是的你没看错,kafka也能拿来当通信渠道:

如图所示,A、B两台机器间无法进行通信,但他们都可以访问到机器C上的kafka,我们在kafka中做两个topic供客户端发送/消费数据,使得A能够以C上的kafka作为桥梁访问到B上的SSH端口!

cut-off

操作步骤:

1、确保你的电脑上有jdk21或更高版本,没有的话去官网下载一个

https://jdk.java.net/archive/

和本地jdk版本冲突的话不用配置环境变量也行,运行时敲jdk21/bin目录的绝对路径即可。

2、本项目的releases页面下载最新的包:

https://github.com/codingmiao/hppt/releases

下载完解压是这样的:

修改一下配置文件

ss.yml:

# 通讯协议 客户端与服务端保持一致 type: 'org.wowtools.hppt.addons.kafka.KafkaServerSessionService' # 允许的客户端账号和密码 clients:  - user: user1    password: 12345

sc.yml

type: 'org.wowtools.hppt.addons.kafka.KafkaClientSessionService' # 客户端用户名 clientUser: user1 # 客户端密码 clientPassword: 12345 #这里添加或修改想映射的端口号 forwards:  - localPort: 10022    remoteHost: "127.0.0.1"    remotePort: 22

addons/config-kafka.yml

clientSendTopic: "client-send"

serverSendTopic: "server-send"

tag: xx

properties:

  #kafka配置

  "key.serializer": "org.apache.kafka.common.serialization.StringSerializer"

  "value.serializer": "org.apache.kafka.common.serialization.ByteArraySerializer"

  "key.deserializer": "org.apache.kafka.common.serialization.StringDeserializer"

  "value.deserializer": "org.apache.kafka.common.serialization.ByteArrayDeserializer"

#kafka地址

  "bootstrap.servers": "192.168.1.11:9092"

#kafka没有密码的话下面这三行删掉即可

  "sasl.jaas.config": 'org.apache.kafka.common.security.scram.ScramLoginModule required username="xxx" password="xxx";'

  "security.protocol": "SASL_PLAINTEXT"

  "sasl.mechanism": "SCRAM-SHA-512"

然后,把文件夹分别拷贝到A B两台电脑

B(家里的台式机) 执行

A(公司的笔记本)执行

随后,你就可以在公司用linux连接工具访问localhost的10022端口,来登录家里的台式机了,神奇吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值