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

posted @ 2023-03-15 13:31  李慢慢233  阅读(260)  评论(0编辑  收藏  举报