diff --git a/go-gost/main.go b/go-gost/main.go index 2565a8c..226c346 100644 --- a/go-gost/main.go +++ b/go-gost/main.go @@ -120,7 +120,7 @@ func main() { log := xlogger.NewLogger() logger.SetDefault(log) - wsReporter := socket.StartWebSocketReporterWithConfig(config.Addr, config.Secret, "1.2.1") + wsReporter := socket.StartWebSocketReporterWithConfig(config.Addr, config.Secret, "1.2.2") defer wsReporter.Stop() service.SetHTTPReportURL(config.Addr, config.Secret) diff --git a/go-gost/x/chain/router.go b/go-gost/x/chain/router.go index cb5907b..eaaed26 100644 --- a/go-gost/x/chain/router.go +++ b/go-gost/x/chain/router.go @@ -60,7 +60,7 @@ func (r *Router) Dial(ctx context.Context, network, address string) (conn net.Co } if network == "udp" || network == "udp4" || network == "udp6" { - if _, ok := conn.(net.PacketConn); !ok { + if _, ok := conn.(net.PacketConn); !ok && conn.RemoteAddr().Network() != "udp" { return &packetConn{conn}, nil } } diff --git a/go-gost/x/handler/forward/local/handler.go b/go-gost/x/handler/forward/local/handler.go index cff7e81..b64466f 100644 --- a/go-gost/x/handler/forward/local/handler.go +++ b/go-gost/x/handler/forward/local/handler.go @@ -101,7 +101,7 @@ func (h *forwardHandler) Handle(ctx context.Context, conn net.Conn, opts ...hand } network := "tcp" - if _, ok := conn.(net.PacketConn); ok { + if conn.RemoteAddr().Network() == "udp" { network = "udp" } ro.Network = network diff --git a/go-gost/x/handler/forward/remote/handler.go b/go-gost/x/handler/forward/remote/handler.go index 8f96f24..9d45497 100644 --- a/go-gost/x/handler/forward/remote/handler.go +++ b/go-gost/x/handler/forward/remote/handler.go @@ -112,7 +112,7 @@ func (h *forwardHandler) Handle(ctx context.Context, conn net.Conn, opts ...hand log.Infof("%s <> %s", conn.RemoteAddr(), conn.LocalAddr()) network := "tcp" - if _, ok := conn.(net.PacketConn); ok { + if conn.RemoteAddr().Network() == "udp" { network = "udp" } ro.Network = network diff --git a/go-gost/x/service/service.go b/go-gost/x/service/service.go index 90d5ef7..1f4cd2a 100644 --- a/go-gost/x/service/service.go +++ b/go-gost/x/service/service.go @@ -460,7 +460,7 @@ func (c *detectConn) Read(b []byte) (int, error) { func detectProtocol(data []byte, conn net.Conn) (blocked bool) { // 如果是 UDP,则不检测,直接放行 - if _, ok := conn.(*net.UDPConn); ok { + if conn.RemoteAddr().Network() == "udp" || conn.RemoteAddr().Network() == "udp4" || conn.RemoteAddr().Network() == "udp6" { return false }