用Go基于Tcp协议实现内网穿透工具——Shermie-Nat-Transversal

前言#

之前看到有一篇博客是介绍内网穿透的,有评论在问怎么实现,内网穿透的工具太多了,看看源码就会,比较简单,原理一句话概括就是协议转发,这里就用 Go 简单实现一下吧

涉及的知识#

  • 自定义 tcp 协议
  • 协议转发 (核心)

特点#

可以代理多个应用,每新增一个应用本地就需要和服务器创建一个 tcp 连接,每个客户端都有一个唯一的标识,只需要在公网域名加上客户端标识即可,比如:

  • your.domain.com?unique-id=1 代表本地的用户服务
  • your.domain.com?unique-id=2 代表本地的支付服务

    效果#

    访问公网地址,请求会到我本地的 http 服务,然后将数据返回给浏览器

仓库#

地址:github.com/kxg3030/shermie-nat-tra..., 喜欢的话请用你发财的小手点个 star

本作品采用《CC 协议》,转载必须注明作者和本文链接
失色天空