精易论坛

标题: 使用GO语言搭建中转服务器,让家庭电脑秒变云服务器 [打印本页]

作者: 诺离    时间: 2024-11-5 17:53
标题: 使用GO语言搭建中转服务器,让家庭电脑秒变云服务器
本帖最后由 诺离 于 2024-11-5 21:17 编辑

最近在研究AI模型,搭建好的AI想分享给其它小伙伴调用,但是由于家庭网络不是公网IP,租用服务器成本太高。
使用GO语言(GPT教的)搭建了一个中间件,让家庭电脑秒变服务器,支持任何TCP端口类型

以前发布过一个易语言版本的,但是效率太慢而且经常崩溃,专门设计了GO语言款。

演示视频:https://www.bilibili.com/video/BV1GfD8YkERL/?spm_id_from=333.999.0.0
项目地址:https://github.com/cih1996/go-tcnat

无墙下载: go-tcnat.zip (6.61 KB, 下载次数: 133)
(由于发布文件整体压缩后大于3M,仅源码)

补充,原理解释:
服务器端开放8080和7077端口,主要作为2个作用。

8080端口:主要接收家庭电脑的控制通道,每当家庭电脑需要转发端口,那么就会走8080的端口,通知服务器监听新端口。
7077端口:主要是接收家庭电脑的中转通道,假设你部署好了一个业务,对外端口是2007,当用户访问 http://公网IP:2007,那么8080端口就会通知家庭电脑,让家庭电脑发起1个连接到该7077,随后就会把客户和这一次的连接进行对应,达到交互效果。

因为家庭电脑是不能接受连接的,只能主动去连接,所以每次有客户连接到云服务器,云服务器不会直接把客户的数据转发给家庭电脑,而是先通过8080让家庭电脑发起一个连接到7077端口,随后在进行关联转发,这样的好处是可以支持多线程高并发,否则当有几十个用户同时接入的话,全部用户都只能走1条TCP通道(早期的版本)


作者: wesjun07    时间: 2024-11-5 18:00
来看看啦我~
作者: 诺离    时间: 2024-11-5 18:09
wesjun07 发表于 2024-11-5 18:00
来看看啦我~

瞧一瞧看一看啦
作者: a16633    时间: 2024-11-5 18:10

作者: 一粒红尘    时间: 2024-11-5 18:31
sunny不就是 go写的么
作者: 吴磊磊    时间: 2024-11-5 18:33

那么有个问题,中转的服务器带宽如果很小,不会影响吗?比如本地电脑放个文件去下载,到底走的是中转服务器的流量还是本地电脑的流量
作者: mood1000    时间: 2024-11-5 18:35
正好学习了,感谢分享
作者: cqcc    时间: 2024-11-5 18:42
易语言版在哪里?
作者: 外星人群控    时间: 2024-11-5 19:03
我没理解视频里面说2007的服务器端口,在宝塔添加的其他项目访问端口只有7077和8080,这个2007是可以在家用电脑随意改吗?
作者: ctry78985    时间: 2024-11-5 19:30
感谢分享
作者: 洋滨    时间: 2024-11-5 19:38
吴磊磊 发表于 2024-11-5 18:33
那么有个问题,中转的服务器带宽如果很小,不会影响吗?比如本地电脑放个文件去下载,到底走的是中转服务器的 ...

两边都走
用户---->服务器---->性能好的电脑
用户<----服务器<----性能好的电脑

作者: hezeyu    时间: 2024-11-5 19:41
这个好像还不错!
作者: 吴磊磊    时间: 2024-11-5 19:43
洋滨 发表于 2024-11-5 19:38
两边都走
用户---->服务器---->性能好的电脑
用户

那就有影响了,本地的带宽不管多好都会受到服务器的带宽影响了
作者: wuqingg    时间: 2024-11-5 20:09

作者: 诺离    时间: 2024-11-5 21:04
本帖最后由 诺离 于 2024-11-5 21:09 编辑
外星人qun控 发表于 2024-11-5 19:03
我没理解视频里面说2007的服务器端口,在宝塔添加的其他项目访问端口只有7077和8080,这个2007是可以在家用 ...

2007是服务器监听的端口,是可以自定义的,但是开了防火墙记得提前放通, 假设你本地搭建了一个web服务器,端口是80

那么当用户连接到服务器的2007端口,2007端口里的数据会转发到你本地家庭电脑的127.0.0.1:80
作者: 诺离    时间: 2024-11-5 21:06
吴磊磊 发表于 2024-11-5 18:33
那么有个问题,中转的服务器带宽如果很小,不会影响吗?比如本地电脑放个文件去下载,到底走的是中转服务器的 ...

可以用按流量计费的带宽(如果对流量要求不高的话),对流量要求高,就只能按月的,但是也省了一笔CPU,内存,硬盘的配置费用。
作者: qq184252904    时间: 2024-11-5 21:06
能不能把易语言版的发布一下呢?这个GO语言的看不懂呢
作者: 诺离    时间: 2024-11-5 21:09
qq184252904 发表于 2024-11-5 21:06
能不能把易语言版的发布一下呢?这个GO语言的看不懂呢

可以直接用编译好的
作者: 亿万    时间: 2024-11-5 21:10

感谢分享
作者: xiaojiancccc    时间: 2024-11-5 21:11
新技能已get√
作者: 杰西卡技术传媒    时间: 2024-11-5 21:17
新技能已get√
作者: opq123    时间: 2024-11-5 21:24
感谢分享,很给力!~
作者: ZHuanR    时间: 2024-11-5 22:05
新技能已get√
作者: 吴磊磊    时间: 2024-11-5 22:36
诺离 发表于 2024-11-5 21:06
可以用按流量计费的带宽(如果对流量要求不高的话),对流量要求高,就只能按月的,但是也省了一笔CPU, ...

不考虑速度嘛?不是流量多少的问题
作者: 诺离    时间: 2024-11-5 23:15
吴磊磊 发表于 2024-11-5 22:36
不考虑速度嘛?不是流量多少的问题

主要消耗CPU性能和带宽,内存不用很大,这个可以做个压力测试观察下CPU变化,之所以选择GO就是GO在多线程高并发和内存管理机制上很适合。
作者: 诺离    时间: 2024-11-5 23:16
吴磊磊 发表于 2024-11-5 22:36
不考虑速度嘛?不是流量多少的问题

我目前就用家里电脑挂了5个站点,有个站点并发非常高,每秒几百次,都是小问题。。。。
作者: 诺离    时间: 2024-11-5 23:37

随便画画原理图

作者: bianyuan456    时间: 2024-11-6 04:11
已经顶贴,感谢您对论坛的支持!
作者: yezirun888    时间: 2024-11-6 06:00
6666666666666666666666666666666666666666666666666
作者: qwe111qwe    时间: 2024-11-6 07:23
感谢分享!!!!!
作者: year1970    时间: 2024-11-6 08:05
感谢分享
作者: Channge    时间: 2024-11-6 09:14
这咋用呀 有教程吗。
作者: 一指温柔    时间: 2024-11-6 09:14
        支持开源~!感谢分享
作者: 2wEn    时间: 2024-11-6 09:16
所以还是需要一个有公网ip的电脑 来进行转发,相同的功能论坛有易语言版本
作者: 杨明煜    时间: 2024-11-6 09:22
学习学习!........
作者: 吴磊磊    时间: 2024-11-6 09:35
诺离 发表于 2024-11-5 23:16
我目前就用家里电脑挂了5个站点,有个站点并发非常高,每秒几百次,都是小问题。。。。 ...

你还没懂的意思,如果你是做网站肯定可以,但是如果是大文件下载估计是不行的,因为转发的服务器的带宽会拉低你真实电脑的带宽的,这样会影响下载速度
作者: wjswzj0    时间: 2024-11-6 09:43
支持开源~!感谢分享

作者: wuqingg    时间: 2024-11-6 09:59
2wEn 发表于 2024-11-6 09:16
所以还是需要一个有公网ip的电脑 来进行转发,相同的功能论坛有易语言版本 ...

那个易语言版本也是他做的哈哈

作者: 我的yyy123    时间: 2024-11-6 11:26
学习学习
作者: 何浩文    时间: 2024-11-6 11:50
3        支持开源~!感谢分享
作者: xiaojiancccc    时间: 2024-11-6 12:45
新技能已get√
作者: 艾玛克138    时间: 2024-11-6 16:20
支持支持,希望发展的更好!
作者: 青春的思念    时间: 2024-11-6 21:07
我目前采用的是WEBSOCKET传输网页控制的,网页连接WS创建一个user.token和user.id,客户Duan收到消息使用token连接ws然后推送桌面信息到ws服务端,服务端在根据token对应的连接推送图片,3M的带宽远程就够用了, 看到你这个我灵光一现 我可以单独做一个这样的产品出来也很香啊
作者: 佛学e语言    时间: 2024-11-6 22:04
谢谢大佬分享,
作者: JYYeah    时间: 2024-11-6 22:53
新技能已get√
作者: 52223129    时间: 2024-11-7 01:33
本帖最后由 52223129 于 2024-11-7 01:34 编辑

这和nps+npc、fpr+fpc、gost等穿透有啥区别?
通信数据不加密,云服务器中转很容易出问题的
另外仅TCP协议,像前面说的几个nei网穿透还能支持各种加密协议


作者: xiaoliamg    时间: 2024-11-7 01:37
感谢分享!!!!
作者: 阿凡地方23    时间: 2024-11-7 08:40

感谢分享
作者: 396384183    时间: 2024-11-7 09:17
支持开源~!感谢分享
作者: shen110    时间: 2024-11-7 16:46
建议用VNt ,不需要服务器,用P2P就行
作者: zhangbiao    时间: 2024-11-8 22:58
感谢分享
作者: ljx111    时间: 2024-11-10 21:55
感谢分享~
作者: yhsceo    时间: 2024-11-11 16:07
666666666666666666666
作者: 宇智波·奶嘴    时间: 2024-11-13 17:58
没有wai网ip怎么办

作者: 诺离    时间: 2024-11-15 01:25
宇智波·奶嘴 发表于 2024-11-13 17:58
没有wai网ip怎么办

这份代码就是为了解决没有wai网IP的呀
作者: tianzhen521    时间: 2024-11-15 09:01
123121231231313
作者: 不卡的不能    时间: 2024-11-20 19:22
11111111111111111111111111111111111
作者: 熊不熊    时间: 2024-12-4 04:35
感谢分享,很给力!~
作者: 千狐    时间: 2024-12-7 19:44
感谢分享,很给力!~
作者: cs潇潇    时间: 2024-12-8 12:00
不好意思,我没看懂这个原理,为什么要用两个端口?我理解到你的原理是8080负责通知7077负责转发功能,那么直接家里电脑和服务器的7077建立隧道保持长连接不就好了这样还能省一个端口,没必要多浪费一个端口专门监听服务
作者: 千狐    时间: 2024-12-13 21:48
感谢分享,很给力!~
作者: 千狐    时间: 2024-12-13 21:54
cs潇潇 发表于 2024-12-8 12:00
不好意思,我没看懂这个原理,为什么要用两个端口?我理解到你的原理是8080负责通知7077负责转发功能,那么 ...

我也看不懂原理,其实还不如直接访问8080获取客户请求的数据

我个人理解(不知道对不对) : 客户访问7077请求数据你好   本地电脑访问8080问有没有客户数据,返回有就请求7077获取你好
作者: hot1987115    时间: 2025-2-15 04:28
真心好东西,懂的人才懂!
作者: hot1987115    时间: 2025-2-15 06:34
虽然不会go,借助AI还是get到技能了,已经实现功能了,感谢楼主!
作者: key    时间: 2025-2-27 05:18
不就是frpc?
作者: JYYeah    时间: 2025-3-6 12:00
支持开源~!感谢分享
作者: beifeng008    时间: 2025-3-14 20:11
#在这里快速回复#感谢分享,很给力
作者: youxigw    时间: 2025-4-11 08:33
支持开源~!感谢分享
作者: yuan71058    时间: 2025-4-17 14:14
谢谢呀!..........
作者: hg4m4g    时间: 2025-4-30 15:46
谢谢呀!..........
作者: Q25000780    时间: 2025-5-5 04:20
nei网穿透,这种服务不是很早就有了
作者: 冰封心    时间: 2025-6-11 21:31
诺离 发表于 2024-11-5 23:16
我目前就用家里电脑挂了5个站点,有个站点并发非常高,每秒几百次,都是小问题。。。。 ...

请教一下。多个站点。都是默认端口访问吗?还是带端口访问站点啊





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4