go-gost / gost

GO Simple Tunnel - a simple tunnel written in golang
https://gost.run
MIT License
4.39k stars 528 forks source link

请求增加 Multipath TCP 的支持 #399

Closed chenx-dust closed 10 months ago

chenx-dust commented 10 months ago

go 1.21 对 mptcp 提供了支持。mptcp 的最大作用是可以对 tcp 单连接进行负载均衡,这对于保证连接可用性和提高带宽具有显著意义。与 mptcp 相比,现有的负载均衡模式是在连接之上进行的,如果服务仅使用单个 tcp 连接,则无法实现负载均衡。

但是 mptcp 的缺点也是显著的,尽管它允许我们从不同的 ip 端口发起连接,但它要求这个连接有同一个对端,并且 go 似乎没有对 mptcp 的路由策略控制没有很好的实现(?存疑,我对 go 的了解有限,抱歉)。但无论如何,仅仅实现 mptcp 应该是容易且有意义的。

ginuerzh commented 10 months ago

Go程序从1.21开始可以通过环境变量GODEBUG=multipathtcp=1来直接开启MPTCP的支持而不需要修改代码,GOST服务端也可以通过mptcp=true选项来开启MPTCP的支持

gost -L :8080?mptcp=true
chenx-dust commented 10 months ago

Go程序从1.21开始可以通过环境变量GODEBUG=multipathtcp=1来直接开启MPTCP的支持而不需要修改代码,GOST服务端也可以通过mptcp=true选项来开启MPTCP的支持


gost -L :8080?mptcp=true

感谢解答