基于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”