Compare commits

..

66 Commits

Author SHA1 Message Date
世界
9240f6e885
documentation: Bump version 2025-04-08 16:32:16 +08:00
世界
36ba3e5782
release: Skip override version for iOS 2025-04-08 16:15:25 +08:00
iikira
24e8a19b62
Fix UDP DNS server crash
Signed-off-by: iikira <i2@mail.iikira.com>
2025-04-08 16:03:14 +08:00
ReleTor
2e2455edf0
Fix fetch ECH configs 2025-04-08 16:03:13 +08:00
世界
7442172833
release: Update Go to 1.24.2 2025-04-08 16:03:13 +08:00
世界
803f7d04c9
Allow direct outbounds without domain_resolver 2025-04-08 16:03:13 +08:00
世界
5827ba536b
Fix Tailscale dialer 2025-04-08 16:03:12 +08:00
dyhkwong
588e723124
Fix DNS over QUIC stream close 2025-04-08 16:03:12 +08:00
anytls
161668ffdc
Update anytls
Co-authored-by: anytls <anytls>
2025-04-08 16:03:12 +08:00
Rambling2076
32a14f5fb2
Fix missing with_tailscale in Dockerfile
Signed-off-by: Rambling2076 <Rambling2076@proton.me>
2025-04-08 16:03:11 +08:00
世界
e61bdf27a1
Fail when default DNS server not found 2025-04-08 16:03:11 +08:00
世界
34e0ab27fb
Update gVisor to 20250319.0 2025-04-08 16:03:10 +08:00
世界
09120a251c
release: Do not build tailscale on iOS and tvOS 2025-04-08 16:03:10 +08:00
世界
104079ad63
Explicitly reject detour to empty direct outbounds 2025-04-08 16:03:09 +08:00
世界
55818312b4
Add netns support 2025-04-08 16:03:09 +08:00
世界
18e4ba8681
Add wildcard name support for predefined records 2025-04-08 16:03:09 +08:00
世界
513c1f1139
Remove map usage in options 2025-04-08 16:03:09 +08:00
世界
d09b424d04
Fix unhandled DNS loop 2025-04-08 16:03:08 +08:00
世界
b9558f04c9
Add wildcard-sni support for shadow-tls inbound 2025-04-08 16:03:08 +08:00
世界
40232d5505
Fix Tailscale DNS 2025-04-08 16:02:55 +08:00
k9982874
c272a15085
Add ntp protocol sniffing 2025-04-08 16:02:55 +08:00
世界
e896367a7e
option: Fix marshal legacy DNS options 2025-04-08 16:02:54 +08:00
世界
f3e17520e9
Make domain_resolver optional when only one DNS server is configured 2025-04-08 16:02:54 +08:00
世界
c26fd66bbd
Fix DNS lookup context pollution 2025-04-08 16:02:54 +08:00
世界
29210d2573
Fix http3 DNS server connecting to wrong address 2025-04-08 16:02:54 +08:00
Restia-Ashbell
6ea7bc3811
documentation: Fix typo 2025-04-08 16:02:53 +08:00
anytls
225d5316e6
Update sing-anytls
Co-authored-by: anytls <anytls>
2025-04-08 16:02:53 +08:00
k9982874
8418d7b4f1
Fix hosts DNS server 2025-04-08 16:02:53 +08:00
世界
51442076f2
Fix UDP DNS server crash 2025-04-08 16:02:53 +08:00
世界
6743864d1c
documentation: Fix missing ip_accept_any DNS rule option 2025-04-08 16:02:52 +08:00
世界
65a784816e
Fix anytls dialer usage 2025-04-08 16:02:52 +08:00
世界
03e7dd7f91
Move predefined DNS server to rule action 2025-04-08 16:02:52 +08:00
世界
bb6fc6e74f
Fix domain resolver on direct outbound 2025-04-08 16:02:51 +08:00
Zephyruso
5c22180675
Fix missing AnyTLS display name 2025-04-08 16:02:51 +08:00
anytls
04c7899255
Update sing-anytls
Co-authored-by: anytls <anytls>
2025-04-08 16:02:51 +08:00
Estel
ad1e5035ee
documentation: Fix typo
Signed-off-by: Estel <callmebedrockdigger@gmail.com>
2025-04-08 16:02:50 +08:00
TargetLocked
cc1c616029
Fix parsing legacy DNS options 2025-04-08 16:02:50 +08:00
世界
8d287cccae
Fix DNS fallback 2025-04-08 16:02:50 +08:00
世界
8da74a709a
documentation: Fix missing hosts DNS server 2025-04-08 16:02:49 +08:00
anytls
6672b999e6
Add MinIdleSession option to AnyTLS outbound
Co-authored-by: anytls <anytls>
2025-04-08 16:02:49 +08:00
ReleTor
7a3c3f2f6d
documentation: Minor fixes 2025-04-08 16:02:49 +08:00
libtry486
4193575a98
documentation: Fix typo
fix typo

Signed-off-by: libtry486 <89328481+libtry486@users.noreply.github.com>
2025-04-08 16:02:49 +08:00
Alireza Ahmadi
74d66ed907
Fix Outbound deadlock 2025-04-08 16:02:48 +08:00
世界
0648abc603
documentation: Fix AnyTLS doc 2025-04-08 16:02:48 +08:00
anytls
0dbd10aaef
Add AnyTLS protocol 2025-04-08 16:02:47 +08:00
世界
ed141b15f6
Migrate to stdlib ECH support 2025-04-08 16:02:47 +08:00
世界
9207dfa0a3
Add fallback local DNS server for iOS 2025-04-08 16:02:46 +08:00
世界
a11564dbe8
Get darwin local DNS server from libresolv 2025-04-08 16:02:46 +08:00
世界
20ca0395b4
Improve resolve action 2025-04-08 16:02:46 +08:00
世界
9eecdc02c8
Fix toolchain version 2025-04-08 16:02:45 +08:00
世界
ea127216cd
Add back port hopping to hysteria 1 2025-04-08 16:02:45 +08:00
世界
1955c683b0
Update dependencies 2025-04-08 16:02:44 +08:00
xchacha20-poly1305
930acaa6a8
Remove single quotes of raw Moziila certs 2025-04-08 16:02:44 +08:00
世界
8572e20794
Add Tailscale endpoint 2025-04-08 16:02:44 +08:00
世界
fee4f16e14
Build legacy binaries with latest Go 2025-04-08 16:02:43 +08:00
世界
2d440f0874
documentation: Remove outdated icons 2025-04-08 16:02:43 +08:00
世界
dfb34ee116
documentation: Certificate store 2025-04-08 16:02:42 +08:00
世界
e9c81c9df3
documentation: TLS fragment 2025-04-08 16:02:42 +08:00
世界
b1ba455a57
documentation: Outbound domain resolver 2025-04-08 16:02:42 +08:00
世界
0c1bb6366a
documentation: Refactor DNS 2025-04-08 16:02:41 +08:00
世界
2a6eff6c55
Add certificate store 2025-04-08 16:02:41 +08:00
世界
09769de838
Add TLS fragment support 2025-04-08 16:02:41 +08:00
世界
5336f09ddc
refactor: Outbound domain resolver 2025-04-08 16:02:40 +08:00
世界
84e579823e
refactor: DNS 2025-04-08 16:02:40 +08:00
世界
78608d0c62
test: Fix auto redirect UDP rules 2025-04-08 16:02:15 +08:00
世界
680f374a25
test: Improve auto redirect 2025-04-08 15:00:44 +08:00
5 changed files with 25 additions and 41 deletions

View File

@ -71,8 +71,18 @@ func NewDefault(ctx context.Context, options option.DialerOptions) (*DefaultDial
listener.Control = control.Append(listener.Control, bindFunc)
}
if options.RoutingMark > 0 {
dialer.Control = control.Append(dialer.Control, setMarkWrapper(networkManager, uint32(options.RoutingMark), false))
listener.Control = control.Append(listener.Control, setMarkWrapper(networkManager, uint32(options.RoutingMark), false))
dialer.Control = control.Append(dialer.Control, control.RoutingMark(uint32(options.RoutingMark)))
listener.Control = control.Append(listener.Control, control.RoutingMark(uint32(options.RoutingMark)))
}
if networkManager != nil {
autoRedirectOutputMark := networkManager.AutoRedirectOutputMark()
if autoRedirectOutputMark > 0 {
if options.RoutingMark > 0 {
return nil, E.New("`routing_mark` is conflict with `tun.auto_redirect` with `tun.route_[_exclude]_address_set")
}
dialer.Control = control.Append(dialer.Control, control.RoutingMark(autoRedirectOutputMark))
listener.Control = control.Append(listener.Control, control.RoutingMark(autoRedirectOutputMark))
}
}
disableDefaultBind := options.BindInterface != "" || options.Inet4BindAddress != nil || options.Inet6BindAddress != nil
if disableDefaultBind || options.TCPFastOpen {
@ -117,8 +127,8 @@ func NewDefault(ctx context.Context, options option.DialerOptions) (*DefaultDial
}
}
if options.RoutingMark == 0 && defaultOptions.RoutingMark != 0 {
dialer.Control = control.Append(dialer.Control, setMarkWrapper(networkManager, defaultOptions.RoutingMark, true))
listener.Control = control.Append(listener.Control, setMarkWrapper(networkManager, defaultOptions.RoutingMark, true))
dialer.Control = control.Append(dialer.Control, control.RoutingMark(defaultOptions.RoutingMark))
listener.Control = control.Append(listener.Control, control.RoutingMark(defaultOptions.RoutingMark))
}
}
if options.ReuseAddr {
@ -200,22 +210,6 @@ func NewDefault(ctx context.Context, options option.DialerOptions) (*DefaultDial
}, nil
}
func setMarkWrapper(networkManager adapter.NetworkManager, mark uint32, isDefault bool) control.Func {
if networkManager == nil {
return control.RoutingMark(mark)
}
return func(network, address string, conn syscall.RawConn) error {
if networkManager.AutoRedirectOutputMark() != 0 {
if isDefault {
return E.New("`route.default_mark` is conflict with `tun.auto_redirect`")
} else {
return E.New("`routing_mark` is conflict with `tun.auto_redirect`")
}
}
return control.RoutingMark(mark)(network, address, conn)
}
}
func (d *DefaultDialer) DialContext(ctx context.Context, network string, address M.Socksaddr) (net.Conn, error) {
if !address.IsValid() {
return nil, E.New("invalid address")

View File

@ -2,7 +2,7 @@
icon: material/alert-decagram
---
#### 1.12.0-beta.3
#### 1.12.0-beta.2
* Fixes and improvements

6
go.mod
View File

@ -3,7 +3,7 @@ module github.com/sagernet/sing-box
go 1.23.1
require (
github.com/anytls/sing-anytls v0.0.8
github.com/anytls/sing-anytls v0.0.7
github.com/caddyserver/certmagic v0.21.7
github.com/cloudflare/circl v1.6.0
github.com/cretz/bine v0.2.0
@ -26,13 +26,13 @@ require (
github.com/sagernet/gvisor v0.0.0-20250325023245-7a9c0f5725fb
github.com/sagernet/quic-go v0.49.0-beta.1
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691
github.com/sagernet/sing v0.6.7-0.20250409030945-77e2a1bb577c
github.com/sagernet/sing v0.6.6-0.20250406122223-d47540857e58
github.com/sagernet/sing-mux v0.3.1
github.com/sagernet/sing-quic v0.4.1
github.com/sagernet/sing-shadowsocks v0.2.7
github.com/sagernet/sing-shadowsocks2 v0.2.0
github.com/sagernet/sing-shadowtls v0.2.1-0.20250316154757-6f9e732e5056
github.com/sagernet/sing-tun v0.6.3-0.20250409030157-219c612399be
github.com/sagernet/sing-tun v0.6.3-0.20250408075728-dc32f539f4cd
github.com/sagernet/sing-vmess v0.2.0
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7
github.com/sagernet/tailscale v1.80.3-mod.2

12
go.sum
View File

@ -8,8 +8,8 @@ github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa h1:LHTHcTQiSGT7V
github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4=
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
github.com/anytls/sing-anytls v0.0.8 h1:1u/fnH1HoeeMV5mX7/eUOjLBvPdkd1UJRmXiRi6Vymc=
github.com/anytls/sing-anytls v0.0.8/go.mod h1:7rjN6IukwysmdusYsrV51Fgu1uW6vsrdd6ctjnEAln8=
github.com/anytls/sing-anytls v0.0.7 h1:0Q5dHNB2sqkFAWZCyK2vjQ/ckI5Iz3V/Frf3k7mBrGc=
github.com/anytls/sing-anytls v0.0.7/go.mod h1:7rjN6IukwysmdusYsrV51Fgu1uW6vsrdd6ctjnEAln8=
github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE=
github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
github.com/caddyserver/certmagic v0.21.7 h1:66KJioPFJwttL43KYSWk7ErSmE6LfaJgCQuhm8Sg6fg=
@ -178,8 +178,8 @@ github.com/sagernet/quic-go v0.49.0-beta.1/go.mod h1:uesWD1Ihrldq1M3XtjuEvIUqi8W
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 h1:5Th31OC6yj8byLGkEnIYp6grlXfo1QYUfiYFGjewIdc=
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691/go.mod h1:B8lp4WkQ1PwNnrVMM6KyuFR20pU8jYBD+A4EhJovEXU=
github.com/sagernet/sing v0.2.18/go.mod h1:OL6k2F0vHmEzXz2KW19qQzu172FDgSbUSODylighuVo=
github.com/sagernet/sing v0.6.7-0.20250409030945-77e2a1bb577c h1:Zi+WR7f9SQ96yNHmyxj42BtaVb3kTouQ8bQLBHReTSI=
github.com/sagernet/sing v0.6.7-0.20250409030945-77e2a1bb577c/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
github.com/sagernet/sing v0.6.6-0.20250406122223-d47540857e58 h1:hq0W1/K6/UOrv+tCm9YrZ/yDFZJlPVtLmBvayuwUxDM=
github.com/sagernet/sing v0.6.6-0.20250406122223-d47540857e58/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak=
github.com/sagernet/sing-mux v0.3.1 h1:kvCc8HyGAskDHDQ0yQvoTi/7J4cZPB/VJMsAM3MmdQI=
github.com/sagernet/sing-mux v0.3.1/go.mod h1:Mkdz8LnDstthz0HWuA/5foncnDIdcNN5KZ6AdJX+x78=
github.com/sagernet/sing-quic v0.4.1 h1:pxlMa4efZu/M07RgGagNNDDyl6ZUwpmNUjRTpgHOWK4=
@ -190,8 +190,8 @@ github.com/sagernet/sing-shadowsocks2 v0.2.0 h1:wpZNs6wKnR7mh1wV9OHwOyUr21VkS3wK
github.com/sagernet/sing-shadowsocks2 v0.2.0/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ=
github.com/sagernet/sing-shadowtls v0.2.1-0.20250316154757-6f9e732e5056 h1:GFNJQAHhSXqAfxAw1wDG/QWbdpGH5Na3k8qUynqWnEA=
github.com/sagernet/sing-shadowtls v0.2.1-0.20250316154757-6f9e732e5056/go.mod h1:HyacBPIFiKihJQR8LQp56FM4hBtd/7MZXnRxxQIOPsc=
github.com/sagernet/sing-tun v0.6.3-0.20250409030157-219c612399be h1:E/JnQ1DEz5XIH6VVk3dIMD7aIX5o79jPkbyw57tWlJs=
github.com/sagernet/sing-tun v0.6.3-0.20250409030157-219c612399be/go.mod h1:fisFCbC4Vfb6HqQNcwPJi2CDK2bf0Xapyz3j3t4cnHE=
github.com/sagernet/sing-tun v0.6.3-0.20250408075728-dc32f539f4cd h1:nfzjTTkClrcj4h6J1nvzE65ZTeLvuJ8oS5+mv8i32ls=
github.com/sagernet/sing-tun v0.6.3-0.20250408075728-dc32f539f4cd/go.mod h1:fisFCbC4Vfb6HqQNcwPJi2CDK2bf0Xapyz3j3t4cnHE=
github.com/sagernet/sing-vmess v0.2.0 h1:pCMGUXN2k7RpikQV65/rtXtDHzb190foTfF9IGTMZrI=
github.com/sagernet/sing-vmess v0.2.0/go.mod h1:jDAZ0A0St1zVRkyvhAPRySOFfhC+4SQtO5VYyeFotgA=
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7 h1:DImB4lELfQhplLTxeq2z31Fpv8CQqqrUwTbrIRumZqQ=

View File

@ -303,7 +303,7 @@ func (r *NetworkManager) AutoDetectInterfaceFunc() control.Func {
if r.interfaceMonitor == nil {
return nil
}
bindFunc := control.BindToInterfaceFunc(r.interfaceFinder, func(network string, address string) (interfaceName string, interfaceIndex int, err error) {
return control.BindToInterfaceFunc(r.interfaceFinder, func(network string, address string) (interfaceName string, interfaceIndex int, err error) {
remoteAddr := M.ParseSocksaddr(address).Addr
if remoteAddr.IsValid() {
iif, err := r.interfaceFinder.ByAddr(remoteAddr)
@ -317,16 +317,6 @@ func (r *NetworkManager) AutoDetectInterfaceFunc() control.Func {
}
return defaultInterface.Name, defaultInterface.Index, nil
})
return func(network, address string, conn syscall.RawConn) error {
err := bindFunc(network, address, conn)
if err != nil {
return err
}
if r.autoRedirectOutputMark > 0 {
return control.RoutingMark(r.autoRedirectOutputMark)(network, address, conn)
}
return nil
}
}
}