用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

相关推荐
老前端的功夫17 小时前
Web应用的永生之术:PWA落地与实践深度指南
java·开发语言·前端·javascript·css·node.js
程序员爱钓鱼17 小时前
Python编程实战:面向对象与进阶语法——类型注解与代码规范(PEP 8)
后端·python·ipython
程序员爱钓鱼17 小时前
Python实战:用高德地图API批量获取地址所属街道并写回Excel
后端·python·ipython
Yeats_Liao17 小时前
时序数据库系列(三):InfluxDB数据写入Line Protocol详解
数据库·后端·时序数据库
王元_SmallA18 小时前
Redis Desktop Manager(Redis可视化工具)安装
java·后端
ᐇ95918 小时前
Java HashMap深度解析:数据结构、原理与实战指南
java·开发语言·数据结构
好好研究18 小时前
Spring框架 - 开发方式
java·后端·spring
wearegogog12318 小时前
基于混合蛙跳算法和漏桶算法的无线传感器网络拥塞控制与分簇新方法
网络·算法
QT 小鲜肉18 小时前
【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
linux·开发语言·笔记·单片机·压力测试
程序员龙一18 小时前
C++之static_cast关键字
开发语言·c++·static_cast