Compare commits

..

35 Commits

Author SHA1 Message Date
世界
b2111b8683 documentation: Bump version 2024-04-29 12:14:19 +08:00
世界
e282300dc5 documentation: Update DNS manual 2024-04-29 12:14:19 +08:00
世界
e1036b0a8f dialer: Allow nil router 2024-04-29 12:14:19 +08:00
世界
21ba1447a0 Add rule-set match command 2024-04-29 12:14:19 +08:00
世界
f26b6a5220 Add bypass_domain and search_domain platform HTTP proxy options 2024-04-29 12:14:19 +08:00
世界
cb2afb9f4d Update gVisor to 20240422.0 2024-04-29 12:14:19 +08:00
世界
c30c3281ec Update quic-go to v0.43.0 2024-04-29 12:14:19 +08:00
世界
b3d2b4bf10 Fixed order for Clash modes 2024-04-29 11:59:38 +08:00
气息
2d4fcd5465 Fix DNS exchange index
Signed-off-by: 气息 <qdshizh@gmail.com>
2024-04-29 11:59:38 +08:00
dyhkwong
6d7756f30b Always disable cache for fake-ip servers 2024-04-29 11:59:38 +08:00
PuerNya
32da37220a Always disable cache for fake-ip DNS transport if independent_cache disabled 2024-04-29 11:59:37 +08:00
世界
ab09e65bd6 Fix missing rule_set_ipcidr_match_source item in DNS rules 2024-04-29 11:59:37 +08:00
世界
88487b3076 Improve DNS truncate behavior 2024-04-29 11:59:37 +08:00
世界
30afd15693 Fix DNS fallthrough incorrectly 2024-04-29 11:59:37 +08:00
世界
57f589387a Add rejected DNS response cache support 2024-04-29 11:59:37 +08:00
世界
3faab5c713 Add support for client-subnet DNS options 2024-04-29 11:59:36 +08:00
世界
30c7388eeb Add address filter support for DNS rules 2024-04-29 11:59:36 +08:00
世界
36b5f8844f Fix timezone for Android and iOS 2024-04-29 11:59:36 +08:00
世界
1b1df0a79a Improve loopback detector 2024-04-29 11:59:36 +08:00
世界
193b59eb33 Remove unused fakeip packet conn 2024-04-29 11:59:36 +08:00
世界
16e6c94579 Set the default TCP keep alive period 2024-04-29 11:59:35 +08:00
世界
7dff587eb8 Migrate ntp service to library 2024-04-29 11:59:35 +08:00
世界
efb214910c Handle Windows power events 2024-04-29 11:59:35 +08:00
世界
7552c2a2a7 Improve domain suffix match behavior
For historical reasons, sing-box's `domain_suffix` rule matches literal prefixes instead of the same as other projects.

This change modifies the behavior of `domain_suffix`: If the rule value is prefixed with `.`,
the behavior is unchanged, otherwise it matches `(domain|.+\.domain)` instead.
2024-04-29 11:59:35 +08:00
世界
08c51959d4 Remove PROCESS_NAME_NATIVE dwFlag in process query output
The `process_path` rule of sing-box is inherited from Clash,
the original code uses the local system's path format (e.g. `\Device\HarddiskVolume1\folder\program.exe`),
but when the device has multiple disks, the HarddiskVolume serial number is not stable.

This change make QueryFullProcessImageNameW output a Win32 path (such as `C:\folder\program.exe`),
which will disrupt the existing `process_path` use cases in Windows.
2024-04-29 11:59:35 +08:00
世界
0ac1b0bd1a badtls: Support uTLS and TLS ECH for read waiter 2024-04-29 11:59:35 +08:00
世界
8d85c92356 Fix multiplex client dialer context 2024-04-29 11:58:20 +08:00
世界
c6164c9eca Fix usage of github actions 2024-04-29 11:58:20 +08:00
dyhkwong
3c85b8bc48 Fix fake-ip mapping 2024-04-29 11:58:20 +08:00
HystericalDragon
8b8fb4344c Remove unused encoder 2024-04-29 11:58:20 +08:00
renovate[bot]
e85a38e059 [dependencies] Update golangci/golangci-lint-action action to v5 2024-04-29 11:58:20 +08:00
renovate[bot]
f3ac91673a [dependencies] Update actions/checkout digest to 0ad4b8f 2024-04-29 11:58:20 +08:00
世界
0f1e58b917 documentation: Update TestFlight 2024-04-29 11:58:20 +08:00
世界
c4cfe24aef documentation: Fix strict_route description 2024-04-29 11:58:20 +08:00
世界
3d73b159ba Fix linux workflow 2024-04-29 11:58:20 +08:00
7 changed files with 39 additions and 9 deletions

View File

@@ -24,6 +24,7 @@ jobs:
${{ secrets.GPG_KEY }}
echo "HOME=$HOME" >> "$GITHUB_ENV"
EOF
echo "HOME=$HOME" >> "$GITHUB_ENV"
- name: Publish release
uses: goreleaser/goreleaser-action@v5
with:

View File

@@ -99,3 +99,12 @@ func ExtendContext(ctx context.Context) (context.Context, *InboundContext) {
}
return WithContext(ctx, &newMetadata), &newMetadata
}
func OverrideContext(ctx context.Context) context.Context {
if metadata := ContextFrom(ctx); metadata != nil {
var newMetadata InboundContext
newMetadata = *metadata
return WithContext(ctx, &newMetadata)
}
return ctx
}

View File

@@ -1,11 +1,16 @@
package mux
import (
"context"
"net"
"github.com/sagernet/sing-box/adapter"
C "github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/option"
"github.com/sagernet/sing-mux"
E "github.com/sagernet/sing/common/exceptions"
"github.com/sagernet/sing/common/logger"
M "github.com/sagernet/sing/common/metadata"
N "github.com/sagernet/sing/common/network"
)
@@ -30,7 +35,7 @@ func NewClientWithOptions(dialer N.Dialer, logger logger.Logger, options option.
}
}
return mux.NewClient(mux.Options{
Dialer: dialer,
Dialer: &clientDialer{dialer},
Logger: logger,
Protocol: options.Protocol,
MaxConnections: options.MaxConnections,
@@ -40,3 +45,15 @@ func NewClientWithOptions(dialer N.Dialer, logger logger.Logger, options option.
Brutal: brutalOptions,
})
}
type clientDialer struct {
N.Dialer
}
func (d *clientDialer) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error) {
return d.Dialer.DialContext(adapter.OverrideContext(ctx), network, destination)
}
func (d *clientDialer) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error) {
return d.Dialer.ListenPacket(adapter.OverrideContext(ctx), destination)
}

View File

@@ -27,11 +27,10 @@ func (c *echClientConfig) DialEarly(ctx context.Context, conn net.PacketConn, ad
return quic.DialEarly(ctx, conn, addr, c.config, config)
}
func (c *echClientConfig) CreateTransport(conn net.PacketConn, quicConnPtr *quic.EarlyConnection, serverAddr M.Socksaddr, quicConfig *quic.Config, enableDatagrams bool) http.RoundTripper {
func (c *echClientConfig) CreateTransport(conn net.PacketConn, quicConnPtr *quic.EarlyConnection, serverAddr M.Socksaddr, quicConfig *quic.Config) http.RoundTripper {
return &http3.RoundTripper{
TLSClientConfig: c.config,
QUICConfig: quicConfig,
EnableDatagrams: enableDatagrams,
Dial: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlyConnection, error) {
quicConn, err := quic.DialEarly(ctx, conn, serverAddr.UDPAddr(), tlsCfg, cfg)
if err != nil {

View File

@@ -2,6 +2,10 @@
icon: material/alert-decagram
---
#### 1.9.0-rc.14
* Fixes and improvements
#### 1.9.0-rc.13
* Update Hysteria protocol

4
go.mod
View File

@@ -24,12 +24,12 @@ require (
github.com/sagernet/cloudflare-tls v0.0.0-20231208171750-a4483c1b7cd1
github.com/sagernet/gomobile v0.1.3
github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f
github.com/sagernet/quic-go v0.43.0-beta.1
github.com/sagernet/quic-go v0.43.0-beta.2
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691
github.com/sagernet/sing v0.4.0-beta.18
github.com/sagernet/sing-dns v0.2.0-beta.16
github.com/sagernet/sing-mux v0.2.0
github.com/sagernet/sing-quic v0.1.13-beta.3
github.com/sagernet/sing-quic v0.1.13-beta.5
github.com/sagernet/sing-shadowsocks v0.2.6
github.com/sagernet/sing-shadowsocks2 v0.2.0
github.com/sagernet/sing-shadowtls v0.1.4

8
go.sum
View File

@@ -101,8 +101,8 @@ github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f h1:NkhuupzH5ch7b/Y
github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f/go.mod h1:KXmw+ouSJNOsuRpg4wgwwCQuunrGz4yoAqQjsLjc6N0=
github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97 h1:iL5gZI3uFp0X6EslacyapiRz7LLSJyr4RajF/BhMVyE=
github.com/sagernet/netlink v0.0.0-20220905062125-8043b4a9aa97/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM=
github.com/sagernet/quic-go v0.43.0-beta.1 h1:q0ZCY5THUT3RutEHQzGJyV0qaqLLNb3diHqz4Jv0PEM=
github.com/sagernet/quic-go v0.43.0-beta.1/go.mod h1:3EtxR1Yaa1FZu6jFPiBHpOAdhOxL4A3EPxmiVgjJvVM=
github.com/sagernet/quic-go v0.43.0-beta.2 h1:O10Saj7TkujwFGD0TG47HTcVkrEl3tbW6adtu+BFKqs=
github.com/sagernet/quic-go v0.43.0-beta.2/go.mod h1:3EtxR1Yaa1FZu6jFPiBHpOAdhOxL4A3EPxmiVgjJvVM=
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=
@@ -112,8 +112,8 @@ github.com/sagernet/sing-dns v0.2.0-beta.16 h1:bzd4B8eHD7/WO3HrYknvgE8A56/R3n5oX
github.com/sagernet/sing-dns v0.2.0-beta.16/go.mod h1:XU6Vqr6aHcMz/34Fcv8jmXpRCEuShzW+B7Qg1Xe1nxY=
github.com/sagernet/sing-mux v0.2.0 h1:4C+vd8HztJCWNYfufvgL49xaOoOHXty2+EAjnzN3IYo=
github.com/sagernet/sing-mux v0.2.0/go.mod h1:khzr9AOPocLa+g53dBplwNDz4gdsyx/YM3swtAhlkHQ=
github.com/sagernet/sing-quic v0.1.13-beta.3 h1:llApU20jCMAPjSbeysJWCaY90iW35eV+EM2l132Llqg=
github.com/sagernet/sing-quic v0.1.13-beta.3/go.mod h1:bXXE+1DqIwnWvqQD8wYLGgqNbaxfOzpyiH565ikAaxY=
github.com/sagernet/sing-quic v0.1.13-beta.5 h1:smhCPV+U4nM9phDIuxsPvSkCHuqFb23Gq7tf2VXh6So=
github.com/sagernet/sing-quic v0.1.13-beta.5/go.mod h1:tHO6VRzZlnLOEZnD/D9WfDOcZpYwp8UYbvVt6gEM28s=
github.com/sagernet/sing-shadowsocks v0.2.6 h1:xr7ylAS/q1cQYS8oxKKajhuQcchd5VJJ4K4UZrrpp0s=
github.com/sagernet/sing-shadowsocks v0.2.6/go.mod h1:j2YZBIpWIuElPFL/5sJAj470bcn/3QQ5lxZUNKLDNAM=
github.com/sagernet/sing-shadowsocks2 v0.2.0 h1:wpZNs6wKnR7mh1wV9OHwOyUr21VkS3wKFHi+8XwgADg=