用golang简单做一个内网穿透小工具!

一个个人需求,需要简单的穿透一下 家里的电脑,也不需要多稳定,也没有并发。然后 通过http可以访问到内网的 一个网站,

因为服务端 是linux 系统 ,内网是 windows10服务器

所以 就采用 用golang这个语言来实现,他的跨平台编译 还是很方便的。

原理:nginx 作为 web服务,通过nginx 反向代理 把请求 转发给 golang写的 一个端口,golang 是一个服务端 和一个内网 端,golang 的软件 启动后 服务端 和内网 会建立一个隧道,把 nginx转发的数据 发送给内网服务器 从而做到内网穿透。

觉得这个小工具挺有意思的,这里简单的分享给大家。有想玩一玩的小伙伴 可以看看。

go 版本:1.23.3

项目结构 :

服务端:

客户端:

配置文件:

代码实现较为简单,安全方面只做了 简单的 token验证。
如果有需要 只建议大家 参考

效果:

这里 nginx 怎么做反向代理 就不总结了。大家可以百度。

go windows 下编译 linux 和 exe 可执行文件

查看全局变量

bash 复制代码
go env 

如果 goos =windows 可编译 exe 执行文件。

cmd执行以下命令:

64位 linux

bash 复制代码
set GOARCH=amd64
set GOOS=linux

切换 64位 windows

bash 复制代码
set GOARCH=amd64
set GOOS=windows

需要编译哪个系统的可执行文件 就执行上面哪个命令 执行后 开始编译。

在 项目根目录下执行:

windows exe 编译命令:

bash 复制代码
go build -o myapp.exe main.go

linux 执行文件命令

bash 复制代码
go build -o myapp main.go

编译命令 只是举例 大家根据实际需求更改文件名

linux下后台执行命令 :

bash 复制代码
nohup ./myapp > output.log 2>&1 &

源码已经准备好了。需要的小伙伴,可以去下载,参考一下~

https://wwwoop.com/home/Index/projectInfo?goodsId=37&typeParam=2

相关推荐
机器之心3 分钟前
质量超越o1,成本仅4%,UCSD张怡颖教授团队开源生成式AI工作流自动优化器
人工智能·后端
人才程序员6 分钟前
详解QtPDF之 QPdfLink
开发语言·c++·qt·pdf·软件工程·界面·c语音
梦.清..11 分钟前
C语言——指针基础
c语言·开发语言
paopaokaka_luck16 分钟前
[384]基于springboot的药品管理系统
java·spring boot·后端
DreamByter22 分钟前
Day4:生信新手笔记 — R语言简单命令与Rstudio配置
开发语言·笔记·r语言
梅洪35 分钟前
008静态路由-特定主机路由
网络·网络协议·tcp/ip
名字不要太长 像我这样就好37 分钟前
【iOS】《Effective Objective-C 2.0》阅读笔记(一)
开发语言·笔记·学习·macos·ios·objective-c
九转成圣1 小时前
详解日志格式配置:XML 与 Spring Boot 配置文件格式
xml·spring boot·后端
Allen Bright1 小时前
使用 Apache Commons IO 实现文件读写
java·开发语言·apache