Compare 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
iikiraand世界 24e8a19b62 Fix UDP DNS server crash
Signed-off-by: iikira <i2@mail.iikira.com>
2025-04-08 16:03:14 +08:00
ReleTorand世界 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
dyhkwongand世界 588e723124 Fix DNS over QUIC stream close 2025-04-08 16:03:12 +08:00
anytls世界anytls <anytls>
161668ffdc Update anytls
Co-authored-by: anytls <anytls>
2025-04-08 16:03:12 +08:00
Rambling2076and世界 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
k9982874and世界 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-Ashbelland世界 6ea7bc3811 documentation: Fix typo 2025-04-08 16:02:53 +08:00
anytls世界anytls <anytls>
225d5316e6 Update sing-anytls
Co-authored-by: anytls <anytls>
2025-04-08 16:02:53 +08:00
k9982874and世界 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
Zephyrusoand世界 5c22180675 Fix missing AnyTLS display name 2025-04-08 16:02:51 +08:00
anytls世界anytls <anytls>
04c7899255 Update sing-anytls
Co-authored-by: anytls <anytls>
2025-04-08 16:02:51 +08:00
Esteland世界 ad1e5035ee documentation: Fix typo
Signed-off-by: Estel <callmebedrockdigger@gmail.com>
2025-04-08 16:02:50 +08:00
TargetLockedand世界 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世界anytls <anytls>
6672b999e6 Add MinIdleSession option to AnyTLS outbound
Co-authored-by: anytls <anytls>
2025-04-08 16:02:49 +08:00
ReleTorand世界 7a3c3f2f6d documentation: Minor fixes 2025-04-08 16:02:49 +08:00
libtry486and世界 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 Ahmadiand世界 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
anytlsand世界 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-poly1305and世界 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
+14 -20
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")
+1 -1
View File
@@ -2,7 +2,7 @@
icon: material/alert-decagram
---
#### 1.12.0-beta.3
#### 1.12.0-beta.2
* Fixes and improvements
+3 -3
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
+6 -6
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=
+1 -11
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
}
}
}