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

2023-05-26 19:20:49 +08:00
 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"
  }
}

运行实例

4194 次点击
所在节点    分享创造
40 条回复
lhbc
2023-05-26 19:32:52 +08:00
用 Java 来写这个有点……
stevenkinwjg
2023-05-26 19:38:04 +08:00
@lhbc 怎么说?
privil
2023-05-26 19:40:30 +08:00
@stevenkinwjg #2 还要装个 jdk 太不环保了,要不你用那个能编译成原生程序的来写
stevenkinwjg
2023-05-26 19:41:20 +08:00
@privil 其实这是我学习 netty 的练手项目,会改进的
stevenkinwjg
2023-05-26 19:42:00 +08:00
@privil 用 go 重写一下也行
yaott2020
2023-05-26 20:05:15 +08:00
只是个内网穿透,java 太重了。。
oldshensheep
2023-05-26 20:20:13 +08:00
看了以下开在用 Java8 ,还在用 fastjson 。

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

用 Vertx 写会好受一些。学 Netty 学一半放弃了,日了狗了一样。
xe2vforesu
2023-05-26 23:47:13 +08:00
点赞,对学习 netty 有帮助,能有详细的文档说明就更好了
littlewing
2023-05-27 00:32:26 +08:00
看出来是 “为了练手” 了,加油
hotsymbol
2023-05-27 11:14:49 +08:00
用 Java 实现。是需要每个人都有一台 4C16G 的云服务器吗
Alias4ck
2023-05-27 11:46:32 +08:00
可以学习一下 这个 tunel 工具 https://github.com/ekzhang/bore
npe
2023-05-27 11:58:51 +08:00
人家是在学习 Netty ,用 Java 写咋了?那你用 Rust 写一个呗
stevenkinwjg
2023-05-27 12:06:14 +08:00
@npe 哈哈,就是
rekulas
2023-05-27 13:59:29 +08:00
这不算啥,阿里有个监控都是 java 写的,你安到 1h1g 服务器,监控自己先占个 80%资源 🤣
stevenkinwjg
2023-05-27 16:19:07 +08:00
@oldshensheep 确实比较老了,现在流行啥技术?
lizhian
2023-05-27 17:46:42 +08:00
作为一个学习项目来说挺好的~
JustSong
2023-05-28 09:42:15 +08:00
我也有一个类似的练手项目,不过是 Go 写的,仅单个可执行文件: https://github.com/songquanpeng/go-public
StevenQAQ
2023-05-29 09:48:33 +08:00
能看出非常深厚的 Java 功底
ycvk
2023-05-29 12:43:32 +08:00
vertx 或者 quarkus 了解下,按楼上说的,用 GraalVM 编译成 Native 更好些
bugfan
2023-05-31 09:10:39 +08:00
意思用你这东西,还得先在机器上装个 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