-
-
[讨论]浅谈外国项目之--境内工作室跨国组网
-
发表于: 2025-8-24 13:24 875
-
境内机器挂机境外项目首要面对的问题就是跨国网络波动,延迟抖动,丢包,掉线,断开连接.
更不用说gfw.
那么如何对抗这些网络波动?
本文只讲理论,代码已经实现了,没法开源.
首先要讲Windows 底层网络接口
TCP接口,connect send recv,更底层的是操作系统内核层对应的接口,自己追到内核层就行了,不赘述.
UDP无状态接口,sendto recvfrom
那么在多层NAT网络中,sendto和recvfrom是如何运作的呢?
比如说sendto只能发送给当前NAT网络的某个ip和端口,此时交换机记录下了当前NAT网络中的ip地址和端口和上层的映射关系.
此时recvfrom收到的包就会顺着这层映射关系一层层的被交换机转发下来.(这次不严谨,大概了解就行)
那么我们如何解决网络问题?
底层原理有两种,1.劫持这些网络接口,汇聚到境内某个机器上.
在境内机器和境外机器之间,在墙的两端架设一道桥梁,由这道桥梁来保证网络的可靠性.
首先,根据socks5协议,connect是s5发起的,连接到境外项目上.
那么此时我们需要做的是保证境内A机器和境外B机器之间的稳定连接.境外B机器和境外s5之间稳定连接.
此时有两种选择1.境内机器选择BGP机房,境外机器选择对应的BGP机房,尽量保证可靠性.做透明转发.
客户端,所有接口全部转发给境内A,境内A做透明转发,境外B同样做透明转发.
如果认为还是不可靠.
可以选择把所有connect send recv这些全部转为udp的kcp协议.
kcp协议可以保证只要不是丢包极端严重,网络环境极端恶化.能保证又快又好.
当然,这里不考虑gfw因素.这个需要自己去解决,比如公司申请备案.
还有种解法,直接联系电信移动联通运营商,买直通国际互联网的高速公路,当然,缺点只有一个,贵.
赞赏
- [讨论]浅谈外国项目之--境内工作室跨国组网 876
- [原创]triton学习攻略 5300
- [讨论]一种更快速的找call方式 8488
- 分享一些长期久坐引起的颈椎腰椎痛解决方案... 6710