diff --git a/go-gost/x/handler/forward/local/handler.go b/go-gost/x/handler/forward/local/handler.go index 20de1de..db49609 100644 --- a/go-gost/x/handler/forward/local/handler.go +++ b/go-gost/x/handler/forward/local/handler.go @@ -252,7 +252,14 @@ func (h *forwardHandler) Handle(ctx context.Context, conn net.Conn, opts ...hand } defer cc.Close() - xnet.Transport(conn, cc) + if err := xnet.Transport(conn, cc); err != nil { + if marker := target.Marker(); marker != nil { + marker.Mark() + h.options.Logger.Debugf("[handler.transport] transport failed, marked node=%s count=%d err=%v", + target.Addr, marker.Count(), err) + } + return err + } return nil } diff --git a/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java b/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java index 95761d0..e681359 100644 --- a/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java +++ b/springboot-backend/src/main/java/com/admin/common/utils/GostUtil.java @@ -51,10 +51,6 @@ public class GostUtil { JSONObject connector = new JSONObject(); connector.put("type", "relay"); - // 启用 noDelay 以确保连接错误能立即传播,使故障转移正常工作 - JSONObject connectorMetadata = new JSONObject(); - connectorMetadata.put("nodelay", true); - connector.put("metadata", connectorMetadata); Node node_info = node_s.get(chainTunnel.getNodeId()); JSONObject node = new JSONObject();