Update On Fri Aug 9 20:33:45 CEST 2024

This commit is contained in:
github-action[bot]
2024-08-09 20:33:45 +02:00
parent cacef3d166
commit 7d0dbb6086
64 changed files with 14028 additions and 3698 deletions

23
echo/examples/mptcp.json Normal file
View File

@@ -0,0 +1,23 @@
{
"log_level": "info",
"relay_configs": [
{
"label": "client",
"listen": "127.0.0.1:1234",
"listen_type": "raw",
"transport_type": "raw",
"tcp_remotes": [
"0.0.0.0:1235"
]
},
{
"label": "server",
"listen": "127.0.0.1:1235",
"listen_type": "raw",
"transport_type": "raw",
"tcp_remotes": [
"0.0.0.0:5201"
]
}
]
}

View File

@@ -30,6 +30,7 @@ func newRawClient(cfg *conf.Config) (*RawClient, error) {
cfg: cfg,
dialer: &net.Dialer{Timeout: constant.DialTimeOut},
}
r.dialer.SetMultipathTCP(true)
return r, nil
}
@@ -59,7 +60,7 @@ func (raw *RawClient) HealthCheck(ctx context.Context, remote *lb.Node) error {
type RawServer struct {
*baseTransporter
lis *net.TCPListener
lis net.Listener
}
func newRawServer(base *baseTransporter) (*RawServer, error) {
@@ -67,7 +68,9 @@ func newRawServer(base *baseTransporter) (*RawServer, error) {
if err != nil {
return nil, err
}
lis, err := net.ListenTCP("tcp", addr)
cfg := net.ListenConfig{}
cfg.SetMultipathTCP(true)
lis, err := cfg.Listen(context.TODO(), "tcp", addr.String())
if err != nil {
return nil, err
}
@@ -83,10 +86,15 @@ func (s *RawServer) Close() error {
func (s *RawServer) ListenAndServe() error {
for {
c, err := s.lis.AcceptTCP()
c, err := s.lis.Accept()
if err != nil {
return err
}
isMultipathTCP, err := c.(*net.TCPConn).MultipathTCP()
if err != nil {
s.l.Errorf("MultipathTCP error: %s", err.Error())
}
s.l.Debugf("isMultipathTCP: %b", isMultipathTCP)
go func(c net.Conn) {
defer c.Close()
if err := s.RelayTCPConn(c, s.relayer.TCPHandShake); err != nil {

View File

@@ -31,6 +31,13 @@ func buildXrayInstanceCfg(cfg *conf.Config) (*core.Config, error) {
},
}
inbound.StreamSetting.TLSSettings.Certs = tlsConfigs
if inbound.StreamSetting.SocketSettings != nil {
inbound.StreamSetting.SocketSettings.TcpMptcp = true
} else {
inbound.StreamSetting.SocketSettings = &conf.SocketConfig{
TcpMptcp: true,
}
}
}
}
coreCfg, err := cfg.Build()