Fix IPv4 wildcard listen for experimental servers

This commit is contained in:
世界 committed 2026-10-23 19:57:02 +08:00
1 parent 14dce3ed35
commit fdc44acf6b
3 files changed
+9 -3

No files matched your search

+3 -1
View File
@@ -14,6 +14,8 @@ import (
E "github.com/sagernet/sing/common/exceptions"
"github.com/sagernet/sing/common/json"
"github.com/sagernet/sing/common/json/badjson"
M "github.com/sagernet/sing/common/metadata"
N "github.com/sagernet/sing/common/network"
"github.com/go-chi/chi/v5"
)
@@ -62,7 +64,7 @@ func startDebugHTTPServer(options option.DebugOptions) (*http.Server, error) {
Addr: options.Listen,
Handler: r,
}
listener, err := net.Listen("tcp", options.Listen)
listener, err := net.Listen(M.NetworkFromNetAddr(N.NetworkTCP, M.ParseSocksaddr(options.Listen).Addr), options.Listen)
if err != nil {
return nil, E.Cause(err, "listen debug HTTP server")
}
+3 -1
View File
@@ -23,6 +23,8 @@ import (
"github.com/sagernet/sing-box/option"
E "github.com/sagernet/sing/common/exceptions"
"github.com/sagernet/sing/common/json"
M "github.com/sagernet/sing/common/metadata"
N "github.com/sagernet/sing/common/network"
"github.com/sagernet/sing/service"
"github.com/sagernet/sing/service/filemanager"
"github.com/sagernet/ws"
@@ -157,7 +159,7 @@ func (s *Server) Start(stage adapter.StartStage, scope *adapter.Scope) error {
err error
)
for range 3 {
listener, err = net.Listen("tcp", s.httpServer.Addr)
listener, err = net.Listen(M.NetworkFromNetAddr(N.NetworkTCP, M.ParseSocksaddr(s.httpServer.Addr).Addr), s.httpServer.Addr)
if runtime.GOOS == "android" && errors.Is(err, syscall.EADDRINUSE) {
time.Sleep(100 * time.Millisecond)
continue
+3 -1
View File
@@ -10,6 +10,8 @@ import (
"github.com/sagernet/sing-box/log"
"github.com/sagernet/sing-box/option"
"github.com/sagernet/sing/common"
M "github.com/sagernet/sing/common/metadata"
N "github.com/sagernet/sing/common/network"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
@@ -55,7 +57,7 @@ func (s *Server) Start(stage adapter.StartStage, scope *adapter.Scope) error {
return nil
})
case adapter.StartStatePostStart:
listener, err := net.Listen("tcp", s.listen)
listener, err := net.Listen(M.NetworkFromNetAddr(N.NetworkTCP, M.ParseSocksaddr(s.listen).Addr), s.listen)
if err != nil {
return err
}