diff --git a/server/fwd/fwd.go b/server/fwd/fwd.go index feede1d..5a037b7 100644 --- a/server/fwd/fwd.go +++ b/server/fwd/fwd.go @@ -321,17 +321,21 @@ func (s *Service) startFwdTun(port uint16) error { } defer proxy.Close() + errCh := make(chan error) + defer close(errCh) go func() { err := proxy.Run() - if err != nil { - slog.Error("代理服务异常退出", "err", err) - } + errCh <- err }() for { select { case <-s.ctx.Done(): return nil + case err := <-errCh: + if err != nil { + return errors.Wrap(err, "转发服务发生错误") + } case conn := <-proxy.Conn: s.userConnWg.Add(1) go func() {