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

查看 62|回复 5
作者:stevenkinwjg   
最近学习 netty ,为了练手写了这个内网穿透工具
https://github.com/wandererex/wormhole
wormhole
功能特性
将内网的端口映射到公网,从而达到内网穿透的目的
项目结构
  • server 运行在公网的服务端,接受内网代理的连接,并把内网的端口映射到公网服务器上,客户端通过访问公网端口来访问内网服务
  • proxy 运行在内网,与公网服务建立连接,发送配置,把来自公网的流量转发到内网服务
  • serialize 提供公网服务与内网代理数据的序列化和反序列化功能

    使用
    [ol]
  • 在公网服务器运行 server
    [/ol]
    java -jar server-1.0.0-SNAPSHOT-jar-with-dependencies.jar --port 8090
  • --port 接受内网代理连接请求的端口

    [ol]
  • 在内网服务器运行 proxy
    [/ol]
    java -jar proxy-1.0.0-SNAPSHOT-jar-with-dependencies.jar --serverHost 127.0.0.1 --serverPort 8090 --configPath ./config.json
  • --serverHost 公网服务的 ip
  • --serverPort 公网服务的端口
  • --configPath 内网服务配置文件

    [ol]
  • 内网服务配置
    [/ol]
    {
      "mysql": {
        "ip": "127.0.0.1",
        "port": "3306",
        "mappingPort": "3307"
      },
      "ssh": {
        "ip": "127.0.0.1",
        "port": "22",
        "mappingPort": "2200"
      }
    }
    运行实例

    公网, 内网, jar

  • lhbc   
    用 Java 来写这个有点……
    stevenkinwjg
    OP
      
    @lhbc 怎么说?
    privil   
    @stevenkinwjg #2 还要装个 jdk 太不环保了,要不你用那个能编译成原生程序的来写
    stevenkinwjg
    OP
      
    @privil 其实这是我学习 netty 的练手项目,会改进的
    stevenkinwjg
    OP
      
    @privil 用 go 重写一下也行
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部