基于TCP,使用golang开发的内网转发工具(反向代理)
如题:开发了一个不完善的内网转发工具,
可以将运行本程序的设备某个端口发送到指定IP地址的指定端口。
该数据在传输的时候使用TCP。并且数据不加密。
由于项目只有我自己在使用,所以肯定有BUG。
简述一下设计思路,供后面的人开发查询:
1、获取传入参数
if len(os.Args) != 4 {
fmt.Println("go run main.go (本地端口) (远程IP) (远程端口)")
return
}
localPort = os.Args[1]
remoteAddr = os.Args[2]
remotePort = os.Args[3]
2、创建一个死循环(用于在链接失败、报错等情况下能自动重连)
for {
//开始链接
}
3、创建两个主动的TCP请求
conn1, err := createTcpConn(remoteAddr + ":" + remotePort)
4、创建转发数据,并使用协程进行转发
go forward(conn1, conn2) //将conn1的数据转发到conn2 conn1是远程的
go forward(conn2, conn1) //将conn2的数据转发到conn1 conn2是本地的
如果需要编译好的文件
可以加群“599032459”
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!