用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

相关推荐
Biomamba生信基地24 分钟前
两天入门R语言,周末开讲
开发语言·r语言·生信
RAN_PAND26 分钟前
STL介绍1:vector、pair、string、queue、map
开发语言·c++·算法
Bio Coder28 分钟前
R语言安装生物信息数据库包
开发语言·数据库·r语言
Tiger Z29 分钟前
R 语言科研绘图第 27 期 --- 密度图-分组
开发语言·程序人生·r语言·贴图
life_time_3 小时前
C语言(22)
c语言·开发语言
anddddoooo3 小时前
域内证书维权
服务器·网络·网络协议·安全·网络安全·https·ssl
Long._.L3 小时前
OpenSSL实验
网络·密码学
Dyan_csdn3 小时前
【Python项目】基于Python的Web漏洞挖掘系统
网络·python·安全·web安全
Minner-Scrapy3 小时前
DApp 开发入门指南
开发语言·python·web app