写了一个内网穿透工具,大家来看看

338 天前
 stevenkinwjg

最近学习 netty ,为了练手写了这个内网穿透工具 https://github.com/wandererex/wormhole

wormhole

功能特性

将内网的端口映射到公网,从而达到内网穿透的目的

项目结构

使用

  1. 在公网服务器运行 server
java -jar server-1.0.0-SNAPSHOT-jar-with-dependencies.jar --port 8090
  1. 在内网服务器运行 proxy
java -jar proxy-1.0.0-SNAPSHOT-jar-with-dependencies.jar --serverHost 127.0.0.1 --serverPort 8090 --configPath ./config.json
  1. 内网服务配置
{
  "mysql": {
    "ip": "127.0.0.1",
    "port": "3306",
    "mappingPort": "3307"
  },
  "ssh": {
    "ip": "127.0.0.1",
    "port": "22",
    "mappingPort": "2200"
  }
}

运行实例

3741 次点击
所在节点    分享创造
40 条回复
lhbc
338 天前
用 Java 来写这个有点……
stevenkinwjg
338 天前
@lhbc 怎么说?
privil
338 天前
@stevenkinwjg #2 还要装个 jdk 太不环保了,要不你用那个能编译成原生程序的来写
stevenkinwjg
338 天前
@privil 其实这是我学习 netty 的练手项目,会改进的
stevenkinwjg
338 天前
@privil 用 go 重写一下也行
yaott2020
338 天前
只是个内网穿透,java 太重了。。
oldshensheep
338 天前
看了以下开在用 Java8 ,还在用 fastjson 。

不过你这个可以用 GraalVM 编译成 Native 。

用 Vertx 写会好受一些。学 Netty 学一半放弃了,日了狗了一样。
xe2vforesu
338 天前
点赞,对学习 netty 有帮助,能有详细的文档说明就更好了
littlewing
338 天前
看出来是 “为了练手” 了,加油
hotsymbol
337 天前
用 Java 实现。是需要每个人都有一台 4C16G 的云服务器吗
Alias4ck
337 天前
可以学习一下 这个 tunel 工具 https://github.com/ekzhang/bore
npe
337 天前
人家是在学习 Netty ,用 Java 写咋了?那你用 Rust 写一个呗
stevenkinwjg
337 天前
@npe 哈哈,就是
rekulas
337 天前
这不算啥,阿里有个监控都是 java 写的,你安到 1h1g 服务器,监控自己先占个 80%资源 🤣
stevenkinwjg
337 天前
@oldshensheep 确实比较老了,现在流行啥技术?
lizhian
337 天前
作为一个学习项目来说挺好的~
JustSong
336 天前
我也有一个类似的练手项目,不过是 Go 写的,仅单个可执行文件: https://github.com/songquanpeng/go-public
StevenQAQ
335 天前
能看出非常深厚的 Java 功底
ycvk
335 天前
vertx 或者 quarkus 了解下,按楼上说的,用 GraalVM 编译成 Native 更好些
bugfan
333 天前
意思用你这东西,还得先在机器上装个 jvm 啊,,,

话说之前 v2 上也有个哥们用 java 写了一个穿透

但是都没有我的方便哇😄
https://www.i996.me

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/943282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX