code: func H2Listener(addr string, config *tls.Config) (Listener, error) {
  	ln, err := net.Listen("tcp", addr)
  	if err != nil {
  		return nil, err
  	}
  	if config == nil {
  		config = DefaultTLSConfig
  	}
  
  	l := &h2Listener{
  		Listener: tcpKeepAliveListener{ln.(*net.TCPListener)},
  		server: &http2.Server{
  			// MaxConcurrentStreams:         1000,
  			PermitProhibitedCipherSuites: true,
  			IdleTimeout:                  5 * time.Minute,
  		},
  		tlsConfig: config,
  		connChan:  make(chan net.Conn, 1024),
  		errChan:   make(chan error, 1),
  	}
  	go l.listenLoop()
  
  	return l, nil
  }
docs: // H2Listener creates a Listener for HTTP2 h2 tunnel server.