diff --git a/services/tunnel_bridge.go b/services/tunnel_bridge.go index 16967cc..8125cf0 100644 --- a/services/tunnel_bridge.go +++ b/services/tunnel_bridge.go @@ -85,7 +85,12 @@ func (s *TunnelBridge) Clean() { func (s *TunnelBridge) callback(inConn net.Conn) { var err error //log.Printf("connection from %s ", inConn.RemoteAddr()) - sess, err := smux.Server(inConn, nil) + sess, err := smux.Server(inConn, &smux.Config{ + KeepAliveInterval: 10 * time.Second, + KeepAliveTimeout: time.Duration(*s.cfg.Timeout) * time.Second, + MaxFrameSize: 4096, + MaxReceiveBuffer: 4194304, + }) if err != nil { log.Printf("new mux server conn error,ERR:%s", err) return diff --git a/services/tunnel_client.go b/services/tunnel_client.go index 6c54859..fa3c4e4 100644 --- a/services/tunnel_client.go +++ b/services/tunnel_client.go @@ -135,7 +135,12 @@ func (s *TunnelClient) GetConn() (conn net.Conn, err error) { _conn, err = utils.TlsConnectHost(*s.cfg.Parent, *s.cfg.Timeout, s.cfg.CertBytes, s.cfg.KeyBytes, nil) if err == nil { conn = net.Conn(&_conn) - c, e := smux.Client(conn, nil) + c, e := smux.Client(conn, &smux.Config{ + KeepAliveInterval: 10 * time.Second, + KeepAliveTimeout: time.Duration(*s.cfg.Timeout) * time.Second, + MaxFrameSize: 4096, + MaxReceiveBuffer: 4194304, + }) if e != nil { log.Printf("new mux client conn error,ERR:%s", e) err = e diff --git a/services/tunnel_server.go b/services/tunnel_server.go index 09a6867..a977332 100644 --- a/services/tunnel_server.go +++ b/services/tunnel_server.go @@ -282,7 +282,12 @@ func (s *TunnelServer) GetConn() (conn net.Conn, err error) { _conn, err = utils.TlsConnectHost(*s.cfg.Parent, *s.cfg.Timeout, s.cfg.CertBytes, s.cfg.KeyBytes, nil) if err == nil { conn = net.Conn(&_conn) - c, e := smux.Client(conn, nil) + c, e := smux.Client(conn, &smux.Config{ + KeepAliveInterval: 10 * time.Second, + KeepAliveTimeout: time.Duration(*s.cfg.Timeout) * time.Second, + MaxFrameSize: 4096, + MaxReceiveBuffer: 4194304, + }) if e != nil { log.Printf("new mux client conn error,ERR:%s", e) err = e