mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-06-13 21:54:13 +08:00
Compare commits
93 Commits
0613431623
...
470173189d
Author | SHA1 | Date | |
---|---|---|---|
![]() |
470173189d | ||
![]() |
c24ae9cf34 | ||
![]() |
f27cf36174 | ||
![]() |
dfb9786bd0 | ||
![]() |
fe84746aff | ||
![]() |
f236effb5f | ||
![]() |
60daaeb134 | ||
![]() |
7ba271267d | ||
![]() |
aa73b166ca | ||
![]() |
d136c489ad | ||
![]() |
5c4dfabc2c | ||
![]() |
836d8c0edc | ||
![]() |
b45f7e62d4 | ||
![]() |
5f1b210e49 | ||
![]() |
c0e64581be | ||
![]() |
69d16594f8 | ||
![]() |
ee4853b979 | ||
![]() |
5ec54800bb | ||
![]() |
0c24f4cbe7 | ||
![]() |
64c164a1ec | ||
![]() |
50736b36ff | ||
![]() |
95f536ae43 | ||
![]() |
7b2fabc5f7 | ||
![]() |
0b236ba700 | ||
![]() |
667772e1cd | ||
![]() |
3e6bb5865b | ||
![]() |
7f2e236a02 | ||
![]() |
0b02dd5ac2 | ||
![]() |
46efbcdacf | ||
![]() |
b9d48631e1 | ||
![]() |
45d58c7fe3 | ||
![]() |
93f0a149bf | ||
![]() |
e07b412faf | ||
![]() |
8d62f33232 | ||
![]() |
184344cbb0 | ||
![]() |
8947ceea2a | ||
![]() |
6be05a739a | ||
![]() |
e6cb0003e6 | ||
![]() |
96c6560507 | ||
![]() |
f635bf6f76 | ||
![]() |
29e89ce723 | ||
![]() |
ad8bc33032 | ||
![]() |
cc5803f5a8 | ||
![]() |
74955d9a2a | ||
![]() |
a780c49c5d | ||
![]() |
02727c2e5e | ||
![]() |
174a73749e | ||
![]() |
8ccf8cf4a4 | ||
![]() |
4b852b45ed | ||
![]() |
b052d5e1cb | ||
![]() |
0ba818a8ef | ||
![]() |
e6bb0aedcc | ||
![]() |
2e2ab6d83e | ||
![]() |
b25a5eba99 | ||
![]() |
10b663d54a | ||
![]() |
9c5303deeb | ||
![]() |
1fa0add096 | ||
![]() |
b5acbd0f08 | ||
![]() |
ac714721bd | ||
![]() |
d872331e90 | ||
![]() |
20c4781a49 | ||
![]() |
87373efbb6 | ||
![]() |
2f34022ded | ||
![]() |
cb0df4620b | ||
![]() |
5941c9ceb2 | ||
![]() |
d261c74180 | ||
![]() |
7e9213d72c | ||
![]() |
8419930534 | ||
![]() |
7f2c4999ec | ||
![]() |
d5771e6029 | ||
![]() |
5d3f4bad0c | ||
![]() |
6e9dcc7b65 | ||
![]() |
3df2b68490 | ||
![]() |
933f179849 | ||
![]() |
3a91afdd84 | ||
![]() |
09110d512b | ||
![]() |
841b70855f | ||
![]() |
5db3f06f6a | ||
![]() |
916a1d436c | ||
![]() |
9719d958b8 | ||
![]() |
ae65faceec | ||
![]() |
e0b2802247 | ||
![]() |
81c4a1efc8 | ||
![]() |
cc2654d24a | ||
![]() |
863671f73c | ||
![]() |
30e0990e32 | ||
![]() |
286f007b5d | ||
![]() |
c1dbb3f3c9 | ||
![]() |
5b885b44b1 | ||
![]() |
d1b146f91e | ||
![]() |
fb2ff27861 | ||
![]() |
667dc79d2a | ||
![]() |
c998c7276d |
5
Makefile
5
Makefile
@ -1,10 +1,11 @@
|
|||||||
NAME = sing-box
|
NAME = sing-box
|
||||||
COMMIT = $(shell git rev-parse --short HEAD)
|
COMMIT = $(shell git rev-parse --short HEAD)
|
||||||
TAGS ?= with_gvisor,with_quic,with_dhcp,with_wireguard,with_utls,with_acme,with_clash_api,with_tailscale
|
TAGS ?= with_gvisor,with_dhcp,with_wireguard,with_clash_api,with_quic,with_utls,with_tailscale
|
||||||
|
TAGS_TEST ?= with_gvisor,with_quic,with_wireguard,with_grpc,with_utls
|
||||||
|
|
||||||
GOHOSTOS = $(shell go env GOHOSTOS)
|
GOHOSTOS = $(shell go env GOHOSTOS)
|
||||||
GOHOSTARCH = $(shell go env GOHOSTARCH)
|
GOHOSTARCH = $(shell go env GOHOSTARCH)
|
||||||
VERSION=$(shell CGO_ENABLED=0 GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) go run github.com/sagernet/sing-box/cmd/internal/read_tag@latest)
|
VERSION=$(shell CGO_ENABLED=0 GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) go run ./cmd/internal/read_tag)
|
||||||
|
|
||||||
PARAMS = -v -trimpath -ldflags "-X 'github.com/sagernet/sing-box/constant.Version=$(VERSION)' -s -w -buildid="
|
PARAMS = -v -trimpath -ldflags "-X 'github.com/sagernet/sing-box/constant.Version=$(VERSION)' -s -w -buildid="
|
||||||
MAIN_PARAMS = $(PARAMS) -tags "$(TAGS)"
|
MAIN_PARAMS = $(PARAMS) -tags "$(TAGS)"
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/sagernet/sing-box"
|
||||||
"github.com/sagernet/sing-box/experimental/deprecated"
|
"github.com/sagernet/sing-box/experimental/deprecated"
|
||||||
"github.com/sagernet/sing-box/include"
|
"github.com/sagernet/sing-box/include"
|
||||||
"github.com/sagernet/sing-box/log"
|
"github.com/sagernet/sing-box/log"
|
||||||
@ -67,5 +68,6 @@ func preRun(cmd *cobra.Command, args []string) {
|
|||||||
if len(configPaths) == 0 && len(configDirectories) == 0 {
|
if len(configPaths) == 0 && len(configDirectories) == 0 {
|
||||||
configPaths = append(configPaths, "config.json")
|
configPaths = append(configPaths, "config.json")
|
||||||
}
|
}
|
||||||
globalCtx = include.Context(service.ContextWith(globalCtx, deprecated.NewStderrManager(log.StdLogger())))
|
globalCtx = service.ContextWith(globalCtx, deprecated.NewStderrManager(log.StdLogger()))
|
||||||
|
globalCtx = box.Context(globalCtx, include.InboundRegistry(), include.OutboundRegistry(), include.EndpointRegistry(), include.DNSTransportRegistry(), include.ServiceRegistry())
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,6 @@
|
|||||||
icon: material/alert-decagram
|
icon: material/alert-decagram
|
||||||
---
|
---
|
||||||
|
|
||||||
#### 1.12.0-beta.18
|
|
||||||
|
|
||||||
* Fixes and improvements
|
|
||||||
|
|
||||||
#### 1.12.0-beta.17
|
#### 1.12.0-beta.17
|
||||||
|
|
||||||
* Update quic-go to v0.52.0
|
* Update quic-go to v0.52.0
|
||||||
|
4
go.sum
4
go.sum
@ -165,6 +165,8 @@ github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a h1:ObwtHN2VpqE0ZN
|
|||||||
github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM=
|
github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM=
|
||||||
github.com/sagernet/nftables v0.3.0-beta.4 h1:kbULlAwAC3jvdGAC1P5Fa3GSxVwQJibNenDW2zaXr8I=
|
github.com/sagernet/nftables v0.3.0-beta.4 h1:kbULlAwAC3jvdGAC1P5Fa3GSxVwQJibNenDW2zaXr8I=
|
||||||
github.com/sagernet/nftables v0.3.0-beta.4/go.mod h1:OQXAjvjNGGFxaTgVCSTRIhYB5/llyVDeapVoENYBDS8=
|
github.com/sagernet/nftables v0.3.0-beta.4/go.mod h1:OQXAjvjNGGFxaTgVCSTRIhYB5/llyVDeapVoENYBDS8=
|
||||||
|
github.com/sagernet/quic-go v0.51.0-beta.5 h1:/mME3sJvQ8k/JKP0oC/9XoWrm0znO7hWXviB5yiipJY=
|
||||||
|
github.com/sagernet/quic-go v0.51.0-beta.5/go.mod h1:OV+V5kEBb8kJS7k29MzDu6oj9GyMc7HA07sE1tedxz4=
|
||||||
github.com/sagernet/quic-go v0.52.0-beta.1 h1:hWkojLg64zjV+MJOvJU/kOeWndm3tiEfBLx5foisszs=
|
github.com/sagernet/quic-go v0.52.0-beta.1 h1:hWkojLg64zjV+MJOvJU/kOeWndm3tiEfBLx5foisszs=
|
||||||
github.com/sagernet/quic-go v0.52.0-beta.1/go.mod h1:OV+V5kEBb8kJS7k29MzDu6oj9GyMc7HA07sE1tedxz4=
|
github.com/sagernet/quic-go v0.52.0-beta.1/go.mod h1:OV+V5kEBb8kJS7k29MzDu6oj9GyMc7HA07sE1tedxz4=
|
||||||
github.com/sagernet/sing v0.6.9/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
|
github.com/sagernet/sing v0.6.9/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
|
||||||
@ -172,6 +174,8 @@ github.com/sagernet/sing v0.6.11-0.20250521033217-30d675ea099b h1:ZjTCYPb5f7aHdf
|
|||||||
github.com/sagernet/sing v0.6.11-0.20250521033217-30d675ea099b/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
|
github.com/sagernet/sing v0.6.11-0.20250521033217-30d675ea099b/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
|
||||||
github.com/sagernet/sing-mux v0.3.2 h1:meZVFiiStvHThb/trcpAkCrmtJOuItG5Dzl1RRP5/NE=
|
github.com/sagernet/sing-mux v0.3.2 h1:meZVFiiStvHThb/trcpAkCrmtJOuItG5Dzl1RRP5/NE=
|
||||||
github.com/sagernet/sing-mux v0.3.2/go.mod h1:pht8iFY4c9Xltj7rhVd208npkNaeCxzyXCgulDPLUDA=
|
github.com/sagernet/sing-mux v0.3.2/go.mod h1:pht8iFY4c9Xltj7rhVd208npkNaeCxzyXCgulDPLUDA=
|
||||||
|
github.com/sagernet/sing-quic v0.4.1-0.20250511050139-d459f561c9c3 h1:1J+s1yyZ8+YAYaClI+az8YuFgV9NGXUUCZnriKmos6w=
|
||||||
|
github.com/sagernet/sing-quic v0.4.1-0.20250511050139-d459f561c9c3/go.mod h1:Mv7CdSyLepmqoLT8rd88Qn3QMv5AbsgjEm3DvEhDVNE=
|
||||||
github.com/sagernet/sing-quic v0.5.0-beta.1 h1:nC0i/s8LhlZB8ev6laZCXF/uiwAE4kRdT4PcDdE4rI4=
|
github.com/sagernet/sing-quic v0.5.0-beta.1 h1:nC0i/s8LhlZB8ev6laZCXF/uiwAE4kRdT4PcDdE4rI4=
|
||||||
github.com/sagernet/sing-quic v0.5.0-beta.1/go.mod h1:SAv/qdeDN+75msGG5U5ZIwG+3Ua50jVIKNrRSY8pkx0=
|
github.com/sagernet/sing-quic v0.5.0-beta.1/go.mod h1:SAv/qdeDN+75msGG5U5ZIwG+3Ua50jVIKNrRSY8pkx0=
|
||||||
github.com/sagernet/sing-shadowsocks v0.2.7 h1:zaopR1tbHEw5Nk6FAkM05wCslV6ahVegEZaKMv9ipx8=
|
github.com/sagernet/sing-shadowsocks v0.2.7 h1:zaopR1tbHEw5Nk6FAkM05wCslV6ahVegEZaKMv9ipx8=
|
||||||
|
@ -3,7 +3,6 @@ package include
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/sagernet/sing-box"
|
|
||||||
"github.com/sagernet/sing-box/adapter"
|
"github.com/sagernet/sing-box/adapter"
|
||||||
"github.com/sagernet/sing-box/adapter/endpoint"
|
"github.com/sagernet/sing-box/adapter/endpoint"
|
||||||
"github.com/sagernet/sing-box/adapter/inbound"
|
"github.com/sagernet/sing-box/adapter/inbound"
|
||||||
@ -40,10 +39,6 @@ import (
|
|||||||
E "github.com/sagernet/sing/common/exceptions"
|
E "github.com/sagernet/sing/common/exceptions"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Context(ctx context.Context) context.Context {
|
|
||||||
return box.Context(ctx, InboundRegistry(), OutboundRegistry(), EndpointRegistry(), DNSTransportRegistry(), ServiceRegistry())
|
|
||||||
}
|
|
||||||
|
|
||||||
func InboundRegistry() *inbound.Registry {
|
func InboundRegistry() *inbound.Registry {
|
||||||
registry := inbound.NewRegistry()
|
registry := inbound.NewRegistry()
|
||||||
|
|
||||||
|
@ -221,14 +221,6 @@ func (t *Endpoint) Start(stage adapter.StartStage) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ipStack := t.server.ExportNetstack().ExportIPStack()
|
ipStack := t.server.ExportNetstack().ExportIPStack()
|
||||||
gErr := ipStack.SetSpoofing(tun.DefaultNIC, true)
|
|
||||||
if gErr != nil {
|
|
||||||
return gonet.TranslateNetstackError(gErr)
|
|
||||||
}
|
|
||||||
gErr = ipStack.SetPromiscuousMode(tun.DefaultNIC, true)
|
|
||||||
if gErr != nil {
|
|
||||||
return gonet.TranslateNetstackError(gErr)
|
|
||||||
}
|
|
||||||
ipStack.SetTransportProtocolHandler(tcp.ProtocolNumber, tun.NewTCPForwarder(t.ctx, ipStack, t).HandlePacket)
|
ipStack.SetTransportProtocolHandler(tcp.ProtocolNumber, tun.NewTCPForwarder(t.ctx, ipStack, t).HandlePacket)
|
||||||
udpForwarder := tun.NewUDPForwarder(t.ctx, ipStack, t, t.udpTimeout)
|
udpForwarder := tun.NewUDPForwarder(t.ctx, ipStack, t, t.udpTimeout)
|
||||||
ipStack.SetTransportProtocolHandler(udp.ProtocolNumber, udpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(udp.ProtocolNumber, udpForwarder.HandlePacket)
|
||||||
|
@ -172,6 +172,8 @@ func (r *Router) RoutePacketConnectionEx(ctx context.Context, conn N.PacketConn,
|
|||||||
} else {
|
} else {
|
||||||
r.logger.ErrorContext(ctx, err)
|
r.logger.ErrorContext(ctx, err)
|
||||||
}
|
}
|
||||||
|
} else if onClose != nil {
|
||||||
|
onClose(nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ func NewService(ctx context.Context, logger log.ContextLogger, tag string, optio
|
|||||||
for i, entry := range options.Servers.Entries() {
|
for i, entry := range options.Servers.Entries() {
|
||||||
inbound, loaded := inboundManager.Get(entry.Value)
|
inbound, loaded := inboundManager.Get(entry.Value)
|
||||||
if !loaded {
|
if !loaded {
|
||||||
return nil, E.New("parse SSM server[", i, "]: inbound ", entry.Value, " not found")
|
return nil, E.New("parse SSM server[", i, "]: inbound ", entry.Value, "not found")
|
||||||
}
|
}
|
||||||
managedServer, isManaged := inbound.(adapter.ManagedSSMServer)
|
managedServer, isManaged := inbound.(adapter.ManagedSSMServer)
|
||||||
if !isManaged {
|
if !isManaged {
|
||||||
|
@ -55,7 +55,7 @@ func (m *UserManager) Add(username string, password string) error {
|
|||||||
m.access.Lock()
|
m.access.Lock()
|
||||||
defer m.access.Unlock()
|
defer m.access.Unlock()
|
||||||
if _, found := m.usersMap[username]; found {
|
if _, found := m.usersMap[username]; found {
|
||||||
return E.New("user ", username, " already exists")
|
return E.New("user", username, "already exists")
|
||||||
}
|
}
|
||||||
m.usersMap[username] = password
|
m.usersMap[username] = password
|
||||||
return m.postUpdate()
|
return m.postUpdate()
|
||||||
|
@ -32,7 +32,7 @@ func TestMain(m *testing.M) {
|
|||||||
var globalCtx context.Context
|
var globalCtx context.Context
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
globalCtx = include.Context(context.Background())
|
globalCtx = box.Context(context.Background(), include.InboundRegistry(), include.OutboundRegistry(), include.EndpointRegistry(), include.DNSTransportRegistry(), include.ServiceRegistry())
|
||||||
}
|
}
|
||||||
|
|
||||||
func startInstance(t *testing.T, options option.Options) *box.Box {
|
func startInstance(t *testing.T, options option.Options) *box.Box {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user