Compare commits

..

87 Commits

Author SHA1 Message Date
世界
462bd95472
documentation: Bump version 2025-05-16 20:53:14 +08:00
世界
8f1abe401a
prevent creation of bind and mark controls on unsupported platforms 2025-05-16 20:53:14 +08:00
PuerNya
64fb1f21ac
documentation: Fix description of reject DNS action behavior 2025-05-16 20:29:29 +08:00
Restia-Ashbell
e432d7259f
Fix TLS record fragment 2025-05-14 09:28:54 +08:00
世界
994c8ccb23
Add missing accept_routes option for Tailscale 2025-05-14 09:28:54 +08:00
世界
6500a9584f
Add TLS record fragment support 2025-05-14 09:28:54 +08:00
世界
a68d72dfe5
release: Update Go to 1.24.3 2025-05-14 09:28:54 +08:00
世界
68322a2ede
Fix set edns0 client subnet 2025-05-14 09:28:54 +08:00
世界
deee50684b
Update minor dependencies 2025-05-14 09:28:53 +08:00
世界
a3123abf6c
Update certmagic and providers 2025-05-14 09:28:53 +08:00
世界
47130b052b
Update protobuf and grpc 2025-05-14 09:28:53 +08:00
世界
eab7fb1b7e
Add control options for listeners 2025-05-14 09:28:53 +08:00
世界
f421c0e439
Update quic-go to v0.51.0 2025-05-14 09:28:53 +08:00
世界
3670371f4b
Update utls to v1.7.2 2025-05-14 09:28:53 +08:00
世界
56717b599d
Handle EDNS version downgrade 2025-05-14 09:28:53 +08:00
世界
2de381b430
documentation: Fix anytls padding scheme description 2025-05-14 09:28:53 +08:00
安容
c0e7f2cc58
Report invalid DNS address early 2025-05-14 09:28:53 +08:00
世界
30e9a2bcaf
Fix wireguard listen_port 2025-05-14 09:28:53 +08:00
世界
1fdd0f602f
clash-api: Add more meta api 2025-05-14 09:28:52 +08:00
世界
ac2bca3bf7
Fix DNS lookup 2025-05-14 09:28:52 +08:00
世界
1ca3a80e9c
Fix fetch ECH configs 2025-05-14 09:28:52 +08:00
reletor
bfec5f040d
documentation: Minor fixes 2025-05-14 09:28:52 +08:00
caelansar
052d912e3c
Fix callback deletion in UDP transport 2025-05-14 09:28:52 +08:00
世界
ff23969e43
documentation: Try to make the play review happy 2025-05-14 09:28:52 +08:00
世界
221bba4c96
Fix missing handling of legacy domain_strategy options 2025-05-14 09:28:52 +08:00
世界
2011148ef4
Improve local DNS server 2025-05-14 09:28:52 +08:00
anytls
4d43653795
Update anytls
Co-authored-by: anytls <anytls>
2025-05-14 09:28:52 +08:00
世界
88d08e3f53
Fix DNS dialer 2025-05-14 09:28:52 +08:00
世界
4a7494da58
release: Skip override version for iOS 2025-05-14 09:28:51 +08:00
iikira
a268062c55
Fix UDP DNS server crash
Signed-off-by: iikira <i2@mail.iikira.com>
2025-05-14 09:28:51 +08:00
ReleTor
383b844a43
Fix fetch ECH configs 2025-05-14 09:28:51 +08:00
世界
6ed53fb1c1
Allow direct outbounds without domain_resolver 2025-05-14 09:28:51 +08:00
世界
223ea51810
Fix Tailscale dialer 2025-05-14 09:28:51 +08:00
dyhkwong
6d3b24fe33
Fix DNS over QUIC stream close 2025-05-14 09:28:50 +08:00
anytls
cc758a2d79
Update anytls
Co-authored-by: anytls <anytls>
2025-05-14 09:28:50 +08:00
Rambling2076
a11cffce08
Fix missing with_tailscale in Dockerfile
Signed-off-by: Rambling2076 <Rambling2076@proton.me>
2025-05-14 09:28:49 +08:00
世界
23f77daba2
Fail when default DNS server not found 2025-05-14 09:28:49 +08:00
世界
f899e6c246
Update gVisor to 20250319.0 2025-05-14 09:28:49 +08:00
世界
73bab537d1
Explicitly reject detour to empty direct outbounds 2025-05-14 09:28:49 +08:00
世界
2224eee136
Add netns support 2025-05-14 09:28:49 +08:00
世界
c7abc49bea
Add wildcard name support for predefined records 2025-05-14 09:28:48 +08:00
世界
77b7c8d2a5
Remove map usage in options 2025-05-14 09:28:48 +08:00
世界
9ff02d7e0a
Fix unhandled DNS loop 2025-05-14 09:28:48 +08:00
世界
16e4401060
Add wildcard-sni support for shadow-tls inbound 2025-05-14 09:28:47 +08:00
k9982874
0974764c35
Add ntp protocol sniffing 2025-05-14 09:28:47 +08:00
世界
9833c23e1e
option: Fix marshal legacy DNS options 2025-05-14 09:28:47 +08:00
世界
3bfbf3e6b2
Make domain_resolver optional when only one DNS server is configured 2025-05-14 09:28:46 +08:00
世界
f2f959bf2f
Fix DNS lookup context pollution 2025-05-14 09:28:45 +08:00
世界
b876dd92be
Fix http3 DNS server connecting to wrong address 2025-05-14 09:28:45 +08:00
Restia-Ashbell
63580f0199
documentation: Fix typo 2025-05-14 09:28:45 +08:00
anytls
2e287fa0ce
Update sing-anytls
Co-authored-by: anytls <anytls>
2025-05-14 09:28:45 +08:00
k9982874
2e2ba4ec8b
Fix hosts DNS server 2025-05-14 09:28:44 +08:00
世界
d999f44d62
Fix UDP DNS server crash 2025-05-14 09:28:44 +08:00
世界
b94a46f35c
documentation: Fix missing ip_accept_any DNS rule option 2025-05-14 09:28:44 +08:00
世界
fa45f2e4fb
Fix anytls dialer usage 2025-05-14 09:28:43 +08:00
世界
073cb6fab8
Move predefined DNS server to rule action 2025-05-14 09:28:43 +08:00
世界
632e071be3
Fix domain resolver on direct outbound 2025-05-14 09:28:43 +08:00
Zephyruso
dcc7648431
Fix missing AnyTLS display name 2025-05-14 09:28:43 +08:00
anytls
ecae4869ad
Update sing-anytls
Co-authored-by: anytls <anytls>
2025-05-14 09:28:42 +08:00
Estel
7bd83f1aa4
documentation: Fix typo
Signed-off-by: Estel <callmebedrockdigger@gmail.com>
2025-05-14 09:28:42 +08:00
TargetLocked
771d9b49e4
Fix parsing legacy DNS options 2025-05-14 09:28:42 +08:00
世界
270cf99d9f
Fix DNS fallback 2025-05-14 09:28:42 +08:00
世界
fd20fe48d2
documentation: Fix missing hosts DNS server 2025-05-14 09:28:42 +08:00
anytls
79edcb58f8
Add MinIdleSession option to AnyTLS outbound
Co-authored-by: anytls <anytls>
2025-05-14 09:28:41 +08:00
ReleTor
06327cc7be
documentation: Minor fixes 2025-05-14 09:28:41 +08:00
libtry486
b720472dc7
documentation: Fix typo
fix typo

Signed-off-by: libtry486 <89328481+libtry486@users.noreply.github.com>
2025-05-14 09:28:41 +08:00
Alireza Ahmadi
96434bd18e
Fix Outbound deadlock 2025-05-14 09:28:40 +08:00
世界
caa44e0276
documentation: Fix AnyTLS doc 2025-05-14 09:28:40 +08:00
anytls
d48a81fc3d
Add AnyTLS protocol 2025-05-14 09:28:40 +08:00
世界
040abba031
Migrate to stdlib ECH support 2025-05-14 09:28:40 +08:00
世界
bbce1feed6
Add fallback local DNS server for iOS 2025-05-14 09:28:40 +08:00
世界
7ef6b84e2b
Get darwin local DNS server from libresolv 2025-05-14 09:28:39 +08:00
世界
fccd3f9e00
Improve resolve action 2025-05-14 09:28:39 +08:00
世界
a08ebe8941
Add back port hopping to hysteria 1 2025-05-14 09:28:39 +08:00
xchacha20-poly1305
161e18b479
Remove single quotes of raw Moziila certs 2025-05-14 09:28:38 +08:00
世界
d1097c23a9
Add Tailscale endpoint 2025-05-14 09:28:38 +08:00
世界
1abc3420bd
Build legacy binaries with latest Go 2025-05-14 09:28:38 +08:00
世界
226f4a3919
documentation: Remove outdated icons 2025-05-14 09:28:38 +08:00
世界
8fd9eb9736
documentation: Certificate store 2025-05-14 09:28:38 +08:00
世界
bcdd3240ad
documentation: TLS fragment 2025-05-14 09:27:47 +08:00
世界
eef461259d
documentation: Outbound domain resolver 2025-05-14 09:27:47 +08:00
世界
46e863bd6f
documentation: Refactor DNS 2025-05-14 09:27:46 +08:00
世界
ef8ebec8d1
Add certificate store 2025-05-14 09:27:46 +08:00
世界
357b4c2422
Add TLS fragment support 2025-05-14 09:27:46 +08:00
世界
414bc9841b
refactor: Outbound domain resolver 2025-05-14 09:27:46 +08:00
世界
1d100c6515
refactor: DNS 2025-05-14 09:27:43 +08:00
世界
900888731c
Fix DNS reject response 2025-05-13 18:05:31 +08:00
10 changed files with 63 additions and 39 deletions

View File

@ -66,11 +66,17 @@ func NewDefault(ctx context.Context, options option.DialerOptions) (*DefaultDial
interfaceFinder = control.NewDefaultInterfaceFinder()
}
if options.BindInterface != "" {
if !(C.IsLinux || C.IsDarwin || C.IsWindows) {
return nil, E.New("`bind_interface` is only supported on Linux, macOS and Windows")
}
bindFunc := control.BindToInterface(interfaceFinder, options.BindInterface, -1)
dialer.Control = control.Append(dialer.Control, bindFunc)
listener.Control = control.Append(listener.Control, bindFunc)
}
if options.RoutingMark > 0 {
if !C.IsLinux {
return nil, E.New("`routing_mark` is only supported on Linux")
}
dialer.Control = control.Append(dialer.Control, setMarkWrapper(networkManager, uint32(options.RoutingMark), false))
listener.Control = control.Append(listener.Control, setMarkWrapper(networkManager, uint32(options.RoutingMark), false))
}

View File

@ -98,7 +98,7 @@ func (c *Conn) Write(b []byte) (n int, err error) {
}
}
if c.splitRecord {
_, err = c.tcpConn.Write(buffer.Bytes())
_, err = c.Conn.Write(buffer.Bytes())
if err != nil {
return
}

View File

@ -258,7 +258,14 @@ func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg, options adapte
case *R.RuleActionReject:
switch action.Method {
case C.RuleActionRejectMethodDefault:
return FixedResponse(message.Id, message.Question[0], nil, 0), nil
return &mDNS.Msg{
MsgHdr: mDNS.MsgHdr{
Id: message.Id,
Rcode: mDNS.RcodeRefused,
Response: true,
},
Question: []mDNS.Question{message.Question[0]},
}, nil
case C.RuleActionRejectMethodDrop:
return nil, tun.ErrDrop
}

View File

@ -2,6 +2,10 @@
icon: material/alert-decagram
---
#### 1.12.0-beta.14
* Fixes and improvements
#### 1.12.0-beta.13
* Add TLS record fragment route options **1**

View File

@ -81,7 +81,7 @@ Will overrides `dns.client_subnet`.
#### method
- `default`: Reply with NXDOMAIN.
- `default`: Reply with REFUSED.
- `drop`: Drop the request.
`default` will be used by default.

View File

@ -81,7 +81,7 @@ icon: material/new-box
#### method
- `default`: 返回 NXDOMAIN
- `default`: 返回 REFUSED
- `drop`: 丢弃请求。
默认使用 `defualt`

23
go.mod
View File

@ -15,9 +15,9 @@ require (
github.com/libdns/cloudflare v0.2.2-0.20250430151523-b46a2b0885f6
github.com/logrusorgru/aurora v2.0.3+incompatible
github.com/metacubex/tfo-go v0.0.0-20241231083714-66613d49c422
github.com/metacubex/utls v1.7.0-alpha.2
github.com/metacubex/utls v1.7.0-alpha.3
github.com/mholt/acmez/v3 v3.1.2
github.com/miekg/dns v1.1.65
github.com/miekg/dns v1.1.66
github.com/oschwald/maxminddb-golang v1.13.1
github.com/sagernet/asc-go v0.0.0-20241217030726-d563060fe4e1
github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a
@ -36,7 +36,6 @@ require (
github.com/sagernet/sing-vmess v0.2.2-0.20250503051933-9b4cf17393f8
github.com/sagernet/smux v1.5.34-mod.2
github.com/sagernet/tailscale v1.80.3-mod.5
github.com/sagernet/utls v1.6.7
github.com/sagernet/wireguard-go v0.0.1-beta.7
github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854
github.com/spf13/cobra v1.9.1
@ -44,11 +43,11 @@ require (
github.com/vishvananda/netns v0.0.5
go.uber.org/zap v1.27.0
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
golang.org/x/crypto v0.37.0
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
golang.org/x/crypto v0.38.0
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6
golang.org/x/mod v0.24.0
golang.org/x/net v0.39.0
golang.org/x/sys v0.32.0
golang.org/x/net v0.40.0
golang.org/x/sys v0.33.0
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10
google.golang.org/grpc v1.72.0
google.golang.org/protobuf v1.36.6
@ -124,16 +123,14 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap/exp v0.3.0 // indirect
go4.org/mem v0.0.0-20240501181205-ae6ca9944745 // indirect
golang.org/x/sync v0.13.0 // indirect
golang.org/x/term v0.31.0 // indirect
golang.org/x/text v0.24.0 // indirect
golang.org/x/sync v0.14.0 // indirect
golang.org/x/term v0.32.0 // indirect
golang.org/x/text v0.25.0 // indirect
golang.org/x/time v0.9.0 // indirect
golang.org/x/tools v0.32.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/blake3 v1.3.0 // indirect
)
//replace github.com/sagernet/sing => ../sing

42
go.sum
View File

@ -125,12 +125,12 @@ github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos
github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ=
github.com/metacubex/tfo-go v0.0.0-20241231083714-66613d49c422 h1:zGeQt3UyNydIVrMRB97AA5WsYEau/TyCnRtTf1yUmJY=
github.com/metacubex/tfo-go v0.0.0-20241231083714-66613d49c422/go.mod h1:l9oLnLoEXyGZ5RVLsh7QCC5XsouTUyKk4F2nLm2DHLw=
github.com/metacubex/utls v1.7.0-alpha.2 h1:kLRg6zDV12R1uclL5qW9Tx4RD6ztGIIrTZWY5zrJXCg=
github.com/metacubex/utls v1.7.0-alpha.2/go.mod h1:oknYT0qTOwE4hjPmZOEpzVdefnW7bAdGLvZcqmk4TLU=
github.com/metacubex/utls v1.7.0-alpha.3 h1:cp1cEMUnoifiWrGHRzo+nCwPRveN9yPD8QaRFmfcYxA=
github.com/metacubex/utls v1.7.0-alpha.3/go.mod h1:oknYT0qTOwE4hjPmZOEpzVdefnW7bAdGLvZcqmk4TLU=
github.com/mholt/acmez/v3 v3.1.2 h1:auob8J/0FhmdClQicvJvuDavgd5ezwLBfKuYmynhYzc=
github.com/mholt/acmez/v3 v3.1.2/go.mod h1:L1wOU06KKvq7tswuMDwKdcHeKpFFgkppZy/y0DFxagQ=
github.com/miekg/dns v1.1.65 h1:0+tIPHzUW0GCge7IiK3guGP57VAw7hoPDfApjkMD1Fc=
github.com/miekg/dns v1.1.65/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck=
github.com/miekg/dns v1.1.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE=
github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE=
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
@ -186,8 +186,6 @@ github.com/sagernet/sing-vmess v0.2.2-0.20250503051933-9b4cf17393f8 h1:zW+zAOCxU
github.com/sagernet/sing-vmess v0.2.2-0.20250503051933-9b4cf17393f8/go.mod h1:IL8Rr+EGwuqijszZkNrEFTQDKhilEpkqFqOlvdpS6/w=
github.com/sagernet/smux v1.5.34-mod.2 h1:gkmBjIjlJ2zQKpLigOkFur5kBKdV6bNRoFu2WkltRQ4=
github.com/sagernet/smux v1.5.34-mod.2/go.mod h1:0KW0+R+ycvA2INW4gbsd7BNyg+HEfLIAxa5N02/28Zc=
github.com/sagernet/tailscale v1.80.3-mod.4.0.20250512093633-e1bc1888c814 h1:B6ejgOuM1BrX4TzWvm1h/LQAOZW1T1jP4PSZe8b/49o=
github.com/sagernet/tailscale v1.80.3-mod.4.0.20250512093633-e1bc1888c814/go.mod h1:EBxXsWu4OH2ELbQLq32WoBeIubG8KgDrg4/Oaxjs6lI=
github.com/sagernet/tailscale v1.80.3-mod.5 h1:7V7z+p2C//TGtff20pPnDCt3qP6uFyY62peJoKF9z/A=
github.com/sagernet/tailscale v1.80.3-mod.5/go.mod h1:EBxXsWu4OH2ELbQLq32WoBeIubG8KgDrg4/Oaxjs6lI=
github.com/sagernet/wireguard-go v0.0.1-beta.7 h1:ltgBwYHfr+9Wz1eG59NiWnHrYEkDKHG7otNZvu85DXI=
@ -265,21 +263,21 @@ go4.org/mem v0.0.0-20240501181205-ae6ca9944745/go.mod h1:reUoABIJ9ikfM5sgtSF3Wus
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M=
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y=
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM=
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8=
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI=
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ=
golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68=
golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -288,20 +286,20 @@ golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o=
golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw=
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

View File

@ -57,6 +57,15 @@ type NetworkManager struct {
func NewNetworkManager(ctx context.Context, logger logger.ContextLogger, routeOptions option.RouteOptions) (*NetworkManager, error) {
defaultDomainResolver := common.PtrValueOrDefault(routeOptions.DefaultDomainResolver)
if routeOptions.AutoDetectInterface && !(C.IsLinux || C.IsDarwin || C.IsWindows) {
return nil, E.New("`auto_detect_interface` is only supported on Linux, Windows and macOS")
} else if routeOptions.OverrideAndroidVPN && !C.IsAndroid {
return nil, E.New("`override_android_vpn` is only supported on Android")
} else if routeOptions.DefaultInterface != "" && !(C.IsLinux || C.IsDarwin || C.IsWindows) {
return nil, E.New("`default_interface` is only supported on Linux, Windows and macOS")
} else if routeOptions.DefaultMark != 0 && !C.IsLinux {
return nil, E.New("`default_mark` is only supported on linux")
}
nm := &NetworkManager{
logger: logger,
interfaceFinder: control.NewDefaultInterfaceFinder(),

View File

@ -452,6 +452,9 @@ match:
metadata.TLSFragment = true
metadata.TLSFragmentFallbackDelay = routeOptions.TLSFragmentFallbackDelay
}
if routeOptions.TLSRecordFragment {
metadata.TLSRecordFragment = true
}
}
switch action := currentRule.Action().(type) {
case *rule.RuleActionSniff: