Compare commits

...
Author SHA1 Message Date
Shtorm ff11f007ec Enable naive proxy build in Docker image 2026-07-18 16:40:15 +03:00
Shtorm dc4170ad6b Fix GroupCommonOption 2026-07-18 16:40:04 +03:00
Shtorm 03f2be2ee6 Fix MTProxy 2026-07-18 14:21:25 +03:00
Shtorm 6941854ce2 Fix XHTTP 2026-07-18 14:21:06 +03:00
Shtorm 09d2dca3c3 Fix TrustTunnel 2026-07-18 14:20:38 +03:00
Shtorm df39546485 Merge commit 'b19e232df23e115ab99b9a797f8d5c28dfce6809' into extended 2026-07-16 11:17:27 +03:00
Shtorm 4624fd51b1 Fixes and improvements 2026-07-16 11:16:10 +03:00
ShtormandGitHub b19e232df2 Merge pull request #105 from Arsolitt/feat/provider-custom-headers
feat(provider): add custom HTTP headers support for remote providers
2026-07-03 09:52:06 +03:00
Arsolitt 1e826a201d feat(provider): add custom HTTP headers support for remote providers
Some subscription panels (e.g. Remnawave with incy/happ integration)
require device-identification headers to return the real server list
instead of a dummy config. Add a 'headers' field to the remote provider
options so users can attach arbitrary HTTP headers to subscription
fetch requests.

Signed-off-by: Arsolitt <arsolitt@gmail.com>
2026-07-01 21:58:01 +03:00
ShtormandGitHub a27453e4f7 Merge pull request #97 from v14d4n/feat/masque-configurable-sni
Make masque TLS SNI configurable via server_name
2026-06-26 14:39:20 +03:00
Shtorm 2a77348470 Update README.md 2026-06-26 04:04:01 +03:00
Shtorm 1ae82a483a Merge branch 'extended' of https://github.com/shtorm-7/sing-box-extended into extended 2026-06-26 03:51:16 +03:00
Shtorm 93e34d124b Merge tag 'v1.13.14' into extended
Integrate upstream sing-box v1.13.14 (18 commits, v1.13.12..v1.13.14).

Conflict resolutions:
- Makefile: keep fork's upload_android (no otherLegacy, codeberg-release.sh),
  add upstream's SFA-version-metadata.json step.
- go.sum: regenerated via go mod tidy from merged go.mod.
- transport/wireguard/endpoint_options.go: keep fork fields, add ICMPTimeout.
- clients/android, clients/apple: keep fork's submodule pointers.
2026-06-26 01:28:40 +03:00
Shtorm edf38d33d6 Add Snell protocol. Refactor MASQUE HTTP/2, Fair Queue. Update XHTTP, OpenVPN, Sudoku, Fallback. Fixes 2026-06-26 01:25:57 +03:00
ShtormandGitHub 31acf60eca Fix examples
Signed-off-by: Shtorm <108103062+shtorm-7@users.noreply.github.com>
2026-06-25 15:54:57 +03:00
世界 25a600db24 Bump version 2026-06-25 16:36:07 +08:00
世界 ef2a012301 Fix http proxy authentication 2026-06-25 16:13:35 +08:00
v14d4n 7bfad732e2 feat(masque): make TLS SNI configurable via server_name
MASQUE outbound previously hardcoded the TLS SNI to consumer-masque.cloudflareclient.com. Add a server_name field to the MASQUE outbound TLS options. When empty it falls back to the existing default (cloudflare.ConnectSNI), so existing configs are unaffected.
2026-06-22 14:12:40 +04:00
世界 0b7ffbaafa tun: Fix system stack TCP NAT collision & route address set polluted by appended default element 2026-06-20 22:17:44 +08:00
世界 6bae28b771 cronet: Fix arm build 2026-06-20 22:16:37 +08:00
世界 72a8723e13 Fix DNS query loopback deadlock from shared dedup lock 2026-06-20 20:36:19 +08:00
世界 4e1af0600b Fix UDP sniff fragment timeout treated as fatal error 2026-06-20 19:45:36 +08:00
世界 6397675574 Fix clash log API not respecting subscribed level 2026-06-20 19:27:17 +08:00
世界 7d847c0583 Fix check vless packet encoding 2026-06-19 23:27:29 +08:00
世界 8f006316b2 Fix sing-mux udp write 2026-06-19 21:56:40 +08:00
世界 627912a788 Fix naive inbound QUIC ALPN race condition 2026-06-19 20:57:18 +08:00
ShtormandGitHub 2cbc7691f0 Update Telegram badge from channel to chat
Signed-off-by: Shtorm <108103062+shtorm-7@users.noreply.github.com>
2026-06-15 10:43:03 +03:00
Shtorm d174962a04 Add profiler 2026-06-10 16:49:01 +03:00
Shtorm 9c80cf371c Fix openwrt build 2026-06-07 09:12:26 +03:00
Shtorm 9f5ccf43d4 Add SSH inbound, log level. Update MTPROXY. Fixes 2026-06-07 07:59:43 +03:00
Shtorm 6f6af8e902 Fix examples 2026-06-05 00:51:50 +03:00
Shtorm 6cddffd546 provider: replace flag emojis with country codes in removeEmojisFromTags 2026-06-05 00:28:09 +03:00
Shtorm a59e9ec9e3 Fix TrustTunnel 2026-06-04 10:57:08 +03:00
世界 78b2e12fbd Bump version 2026-06-03 16:33:44 +08:00
世界 0f4d38bf6c release: Fix extract-lib 2026-06-03 16:33:34 +08:00
世界 e03346c671 Update Go to 1.25.10 2026-06-03 12:56:36 +08:00
世界 fca766704a release: Fix android build 2026-06-03 12:56:36 +08:00
世界 da0cd68115 Fix ping timeout 2026-06-03 12:56:36 +08:00
世界 3d4616746c tailscale: Use upstream version format 2026-06-03 12:56:36 +08:00
世界 90522ddcb9 release: Fix upload_android 2026-06-03 12:56:36 +08:00
世界 761b7f4e12 Handle TUN loopback in direct outbound 2026-06-03 12:56:36 +08:00
世界 1086ab2563 Bump version 1.13.12 2026-05-14 15:11:09 +08:00
世界 2b995ea10a Run lint for all platforms in workflow 2026-05-13 23:39:27 +08:00
世界 5e7fd7ad78 Fix lint errors 2026-05-13 23:39:27 +08:00
世界 338aa551d1 Update golangci-lint configuration 2026-05-13 16:38:08 +08:00
世界 b6f7d62bb6 sing: Update contextjson 2026-05-13 16:28:50 +08:00
世界 76880eb46b Update naiveproxy to v148.0.7778.96-1 2026-05-13 16:28:49 +08:00
世界 b4c625543a Fix tailscale crash at start 2026-05-13 16:28:49 +08:00
世界 2f139af2d1 Fix naive inbound close 2026-05-13 16:28:49 +08:00
世界 383a1824c1 dns: Refactor reordered pool 2026-05-13 16:28:49 +08:00
世界 d166f0da8b dns: Fix conn pool leak 2026-05-13 16:28:49 +08:00
世界 6475a5e036 Skip kickWriteHandshake for server first protocols 2026-05-13 16:28:49 +08:00
世界 6548c17110 dns: Fix deadline 2026-05-13 16:28:49 +08:00
世界 d1c53d21fe release: Add replace_macos_standalone make target 2026-05-13 13:37:40 +08:00
世界 ddb757a25c Reduce built-in certificate store memory 2026-04-28 07:44:20 +08:00
世界 553cfa1f9f Bump version 2026-04-23 07:30:34 +08:00
世界 f102ef1d94 Fix process search skipped for Android again 2026-04-23 05:52:22 +08:00
世界 3312b8da50 Clean up DNS transports 2026-04-23 02:30:32 +08:00
世界 a3fc14f35f Bump version 2026-04-22 13:40:36 +08:00
世界 8947cb243e sing: Fix UoT write race 2026-04-21 18:54:52 +08:00
世界 83d3a6d4e1 Hide lifecycle logs for fast operations 2026-04-21 17:15:16 +08:00
世界 71f6a2ab4e Fix process search skipped for TUN 2026-04-21 15:45:05 +08:00
世界 d942ecc904 Bump version 1.13.9 2026-04-20 09:49:39 +08:00
世界 c3de6a25fb documentation: Remove warp ads 2026-04-20 09:49:39 +08:00
世界 b3523abad5 tun: Fix multi include/exclude interfaces 2026-04-20 09:49:39 +08:00
世界 60dd7ea5c9 Simplify lifecycle logs 2026-04-20 09:49:39 +08:00
世界 e4bc459975 Skip process search for non-local source addresses 2026-04-20 09:49:39 +08:00
世界 3124cdd661 Fix windows bssid matching 2026-04-20 09:49:39 +08:00
世界 b3606e33a6 release: fix apk package file ownership 2026-04-20 09:49:39 +08:00
世界 9b72b352d5 sing: Fix UoT connect race 2026-04-20 00:10:46 +08:00
世界 fb61987d93 tun: memmod: be more resilient toward weird PE files 2026-04-19 21:54:20 +08:00
世界 a80ef94f09 Fix tailscale endpoint early-start close panic 2026-04-19 21:15:54 +08:00
世界 3a236d9c3c fswatch: Fix close 2026-04-19 20:41:33 +08:00
世界 ca76c56377 daemon: Fix registry leak 2026-04-19 20:39:38 +08:00
世界 0bd109d7bc sing: Fix interface finder 2026-04-19 20:38:52 +08:00
世界 9b155ba467 Fix rdrc cache 2026-04-16 16:45:50 +08:00
世界 7ed5ef6da4 sing: Fix udpnat2 timeout 2026-04-16 16:45:38 +08:00
世界 bb3ad9c694 documentation: Fix typo 2026-04-14 16:00:47 +08:00
世界 d5adb54bc6 Bump version 2026-04-14 14:33:19 +08:00
世界 1cfcea769f Update Go to 1.25.9 2026-04-14 14:26:59 +08:00
世界 f43fc797d4 Update naiveproxy to v147.0.7727.49-1 2026-04-14 14:24:21 +08:00
世界 8e3176b789 Fix FakeIP returning error for unconfigured address family
Return SUCCESS with empty answers instead of an error when the
queried address family has no range configured. Reject configurations
where neither inet4_range nor inet6_range is set.
2026-04-14 14:15:20 +08:00
世界 025b947a24 Bump version 2026-04-10 16:23:45 +08:00
世界 76fa3c2e5e tun: Fixes 2026-04-10 14:13:06 +08:00
世界 53db1f178c Fix tailscale crash 2026-04-10 14:09:03 +08:00
世界 55ec8abf17 Fix local DNS server for Android 2026-04-10 14:08:57 +08:00
Berkay Özdemirciand世界 5a957fd750 Fix EDNS OPT record corruption in DNS cache
The TTL computation and assignment loops treat OPT record's Hdr.Ttl
as a regular TTL, but per RFC 6891 it encodes EDNS0 metadata
(ExtRCode|Version|Flags). This corrupts cached responses causing
systemd-resolved to reject them with EDNS version 255.

Also fix pointer aliasing: storeCache() stored raw *dns.Msg pointer
so subsequent mutations by Exchange() corrupted cached data.

- Skip OPT records in all TTL loops (Exchange + loadResponse)
- Use message.Copy() in storeCache() to isolate cache from mutations
2026-04-10 14:08:24 +08:00
TargetLockedandGitHub 7c3d8cf8db Fix disable tcp keep alive 2026-04-10 13:29:15 +08:00
世界 813b634d08 Bump version 2026-04-06 23:09:11 +08:00
hdroverand世界 d9b435fb62 Fix naive inbound padding bytes 2026-04-06 22:33:11 +08:00
世界 354b4b040e sing: Fix vectorised readv iovec length calculation
This does not seem to affect any actual paths in the sing-box.
2026-04-01 16:16:58 +08:00
世界 7ffdc48b49 Bump version 2026-03-30 23:03:43 +08:00
世界 e15bdf11eb sing: Minor fixes 2026-03-30 22:58:11 +08:00
世界 e3bcb06c3e platform: Add HTTPResponse.WriteToWithProgress 2026-03-30 22:42:36 +08:00
世界 84d2280960 quic: Fix protocol client close & Sync hysteria bbr fix 2026-03-30 22:42:36 +08:00
世界 4fd2532b0a Fix naive quic error message 2026-03-30 22:42:36 +08:00
02ccde6c71 fix(rpm): add vendor field to fpm config to avoid (none) vendor
Co-authored-by: Hyper <hypar@disroot.org>
2026-03-30 22:09:54 +08:00
世界 e98b4ad449 Fix WireGuard shutdown race crashing
Stop peer goroutines before closing the TUN device to prevent
RoutineSequentialReceiver from calling Write on a nil dispatcher.
2026-03-26 16:33:21 +08:00
世界 d09182614c Bump version 2026-03-26 13:28:33 +08:00
世界 6381de7bab route: Fix query_type never matching in rule_set headless rules 2026-03-26 13:26:18 +08:00
世界 b0c6762bc1 route: merge rule_set branches into outer rules
Treat rule_set items as merged branches instead of standalone boolean
sub-items.

Evaluate each branch inside a referenced rule-set as if it were merged
into the outer rule and keep OR semantics between branches. This lets
outer grouped fields satisfy matching groups inside a branch without
introducing a standalone outer fallback or cross-branch state union.

Keep inherited grouped state outside inverted default and logical
branches. Negated rule-set branches now evaluate !(...) against their
own conditions and only reapply the outer grouped match after negation
succeeds, so configs like outer-group && !inner-condition continue to
work.

Add regression tests for same-group merged matches, cross-group and
extra-AND failures, DNS merged-branch behaviour, and inverted merged
branches. Update the route and DNS rule docs to clarify that rule-set
branches merge into the outer rule while keeping OR semantics between
branches.
2026-03-25 14:00:29 +08:00
世界 7425100bac release: Refactor release tracks for Linux packages and Docker
Support 4 release tracks instead of 2:
- sing-box / latest (stable release)
- sing-box-beta / latest-beta (stable pre-release)
- sing-box-testing / latest-testing (testing branch)
- sing-box-oldstable / latest-oldstable (oldstable branch)

Track is detected via git branch --contains and git tag,
replacing the old version-string hyphen check.
2026-03-24 15:03:43 +08:00
世界 d454aa0fdf route: formalize nested rule_set group-state semantics
Before 795d1c289, nested rule-set evaluation reused the parent rule
match cache. In practice, this meant these fields leaked across nested
evaluation:

- SourceAddressMatch
- SourcePortMatch
- DestinationAddressMatch
- DestinationPortMatch
- DidMatch

That leak had two opposite effects.

First, it made included rule-sets partially behave like the docs'
"merged" semantics. For example, if an outer route rule had:

  rule_set = ["geosite-additional-!cn"]
  ip_cidr  = 104.26.10.0/24

and the inline rule-set matched `domain_suffix = speedtest.net`, the
inner match could set `DestinationAddressMatch = true` and the outer
rule would then pass its destination-address group check. This is why
some `rule_set + ip_cidr` combinations used to work.

But the same leak also polluted sibling rules and sibling rule-sets.
A branch could partially match one group, then fail later, and still
leave that group cache set for the next branch. This broke cases such
as gh-3485: with `rule_set = [test1, test2]`, `test1` could touch
destination-address cache before an AdGuard `@@` exclusion made the
whole branch fail, and `test2` would then run against dirty state.

795d1c289 fixed that by cloning metadata for nested rule-set/rule
evaluation and resetting the rule match cache for each branch. That
stopped sibling pollution, but it also removed the only mechanism by
which a successful nested branch could affect the parent rule's grouped
matching state.

As a result, nested rule-sets became pure boolean sub-items against the
outer rule. The previous example stopped working: the inner
`domain_suffix = speedtest.net` still matched, but the outer rule no
longer observed any destination-address-group success, so it fell
through to `final`.

This change makes the semantics explicit instead of relying on cache
side effects:

- `rule_set: ["a", "b"]` is OR
- rules inside one rule-set are OR
- each nested branch is evaluated in isolation
- failed branches contribute no grouped match state
- a successful branch contributes its grouped match state back to the
  parent rule
- grouped state from different rule-sets must not be combined together
  to satisfy one outer rule

In other words, rule-sets now behave as "OR branches whose successful
group matches merge into the outer rule", which matches the documented
intent without reintroducing cross-branch cache leakage.
2026-03-24 15:03:43 +08:00
世界 a3623eb41a tun: Fix system stack rewriting TUN subnet destinations to loopback 2026-03-23 19:38:55 +08:00
世界 72bc4c1f87 Fix DNS transport returning error for empty AAAA response
Closes #3925
2026-03-23 19:21:55 +08:00
世界 9ac1e2ff32 Match package_name in process_path rule on Android 2026-03-23 18:57:35 +08:00
世界 0045103d14 Fix package_name shared uid matching 2026-03-23 18:57:35 +08:00
世界 d2a933784c Optimize Darwin process finder 2026-03-23 18:57:35 +08:00
世界 3f05a37f65 Optimize Linux process finder 2026-03-23 18:57:35 +08:00
世界 b8e5a71450 Add process information cache to avoid duplicate lookups
PreMatch and full match phases each created a fresh InboundContext,
causing process search (expensive OS syscalls) to run twice per
connection. Use a freelru ShardedLRU cache with 200ms TTL to serve
the second lookup from cache.
2026-03-23 14:26:45 +08:00
世界 c13faa8e3c tailscale: Only set ProcessLocalIPs/ProcessSubnets for fake TUN 2026-03-23 14:16:40 +08:00
世界 7623bcd19e Fix DialerForICMPDestination 2026-03-23 13:58:55 +08:00
世界 795d1c2892 Fix nested rule-set match cache isolation 2026-03-23 12:26:19 +08:00
世界 6913b11e0a Reject removed legacy inbound fields instead of silently ignoring 2026-03-21 17:16:10 +08:00
世界 1e57c06295 daemon: Allow StartOrReloadService to recover from FATAL state 2026-03-21 13:37:14 +08:00
世界 ea464cef8d daemon: Fix CloseService leaving instance non-nil on close error 2026-03-21 13:23:57 +08:00
Andrew Novikovand世界 a8e3cd3256 tun: Fix nfqueue not working in prerouting 2026-03-17 11:05:40 +08:00
世界 686cf1f304 documentation: Fix Chinese link anchors 2026-03-16 12:24:10 +08:00
世界 9fbfb87723 documentation: Fix unicode heading anchors 2026-03-16 12:10:32 +08:00
世界 d2fa21d07b Deprecate Socksaddr.IsFqdn: do not reject potentially valid domain names 2026-03-16 09:37:59 +08:00
世界 d3768cca36 Bump version 2026-03-15 17:56:37 +08:00
世界 0889ddd001 Fix connector canceled dial cleanup 2026-03-15 17:56:37 +08:00
深鸣and世界 f46fbf188a documentation: Minor fixes 2026-03-15 17:56:37 +08:00
世界 f2d15139f5 tun: Fix nftables single include_uid not working 2026-03-15 16:58:34 +08:00
世界 041646b728 Fix kTLS crash 2026-03-14 21:38:38 +08:00
世界 b990de2e12 tun: Fix "Fix auto_redirect dropping SO_BINDTODEVICE traffic" 2026-03-14 21:38:38 +08:00
世界 fe585157d2 Bump version 2026-03-14 21:38:38 +08:00
世界 eed6a36e5d tun:Fix auto_redirect dropping SO_BINDTODEVICE traffic 2026-03-14 21:38:38 +08:00
世界 eb0f38544c tailscale: Fix system interface rules 2026-03-14 21:38:38 +08:00
世界 54468a1a2a platform: Add f-droid update helpers 2026-03-11 20:41:29 +08:00
世界 8289bbd846 Add Alpine APK packaging to CI build
Add fpm-based Alpine APK packaging alongside existing DEB/RPM/Pacman
packages. Alpine APKs use `linux` in the filename to distinguish from
OpenWrt APKs which use the `openwrt` prefix.
2026-03-11 20:41:29 +08:00
世界 49c450d942 ccm/ocm: Fix missing metering for 1M context and /fast mode
CCM: Fix 1M context detection - use prefix match for versioned
beta strings (e.g. "context-1m-2025-08-07") and include cache
tokens in the 200K threshold check per Anthropic billing docs.

OCM: Add GPT-5.4 family pricing (standard/priority/flex) with
extended context (>272K) premium pricing support. Add context
window tracking to usage combinations, mirroring CCM's pattern.
Update normalizeGPT5Model defaults to latest known models.
2026-03-11 20:41:29 +08:00
世界 a7ee943216 Fix tailscale connections 2026-03-11 00:27:15 +08:00
世界 8bb4c4dd32 documentation: Update ocm/ccm examples 2026-03-10 22:04:12 +08:00
世界 67621ee6ba Fix OCM websocket proxy lifecycle and headers 2026-03-10 22:04:11 +08:00
世界 a09ffe6a0f ccm/ocm: Add by_user_and_week cost summary 2026-03-10 22:04:11 +08:00
世界 e0be8743f6 ocm: Add Responses WebSocket API proxy and fix client config docs
Support the OpenAI Responses WebSocket API (`wss://.../v1/responses`)
for bidirectional frame proxying with usage tracking.
Fix Codex CLI client config examples to use profiles and correct flags.

Update openai-go v3.24.0 → v3.26.0.
2026-03-10 22:04:11 +08:00
世界 0b04528803 tailscaile: Fix using TUN auto redirect with tailscale system interface 2026-03-10 22:04:11 +08:00
世界 65875e6dac tailscale: Use system dialer for system interface
* Revert "Fix netstack TCP connections with system interface
2026-03-10 19:50:16 +08:00
世界 4d6fb1d38d Fix legacy DNS client_subnet options not working 2026-03-09 20:18:47 +08:00
世界 305b930d90 release: Fix default config 2026-03-09 20:18:43 +08:00
世界 bc3884ca91 release: Add openwrt apk build 2026-03-09 20:18:40 +08:00
世界 df0bf927e4 Fix missing with_gvisor build tag for tailscale 2026-03-09 20:18:28 +08:00
世界 efe20ea51c release: Backport Go 1.25 to macOS 10.13 2026-03-09 20:13:36 +08:00
世界andtraitman e21a72fcd1 Fix websocket connection and goroutine leaks in Clash API
Co-authored-by: traitman <112139837+traitman@users.noreply.github.com>
2026-03-09 20:06:34 +08:00
世界 e1477bd065 documentation: Update cronet-go descriptions 2026-03-09 20:06:34 +08:00
世界 aa495fce38 Fix local DNS transport CNAME chain broken with systemd-resolved
Replace D-Bus ResolveRecord API with direct raw DNS queries to upstream
servers obtained from systemd-resolved's per-interface link properties.
2026-03-09 20:06:34 +08:00
世界 9cd60c28c0 tailscale: Fix inbound UDP packet connection 2026-03-09 20:06:34 +08:00
Heng luand世界 2ba896c5ac Fix netns fd leak in ListenNetworkNamespace 2026-03-09 20:06:34 +08:00
Oleg Artyomovand世界 1d388547ee service/ccm: strip Accept-Encoding before forwarding to avoid untracked usage
When clients (e.g. Node.js Anthropic SDK) explicitly set Accept-Encoding: gzip,
Go's http.Transport does not transparently decompress the response body, because
it only does so when it added the header itself. This causes CCM's json.Unmarshal
to receive raw gzip bytes, silently failing to parse usage data and leaving the
usage counter unchanged.

Fix: remove Accept-Encoding from the outgoing proxy request. Transport adds it
automatically and transparently decompresses response.Body before CCM reads it.

Wire compression (CCM→Anthropic) is preserved — Transport still negotiates gzip.
Only CCM→localhost path is affected; compression on loopback has no practical
benefit.
2026-03-09 20:06:34 +08:00
世界 e343cec4d5 Fix legacy DNS defaults on final transport 2026-03-09 20:06:34 +08:00
世界 d58efc5d01 cronet-go: Fix library search path 2026-03-09 20:06:34 +08:00
世界 4b26ab16fb Bump version 2026-03-07 16:13:23 +08:00
世界 0e27312eda Update Go to 1.25.8 2026-03-07 16:13:23 +08:00
世界 4e0a953b98 sing: Revert "Relax domain name validation to support non-standard characters" 2026-03-07 15:44:40 +08:00
世界andeveryx 27c5b0b1af Fix DNS exchange failure and recursion deadlock in connector
Co-authored-by: everyx <lunt.luo@gmail.com>
2026-03-06 15:31:22 +08:00
dyhkwongandGitHub 84019b06d9 Fix v2ray HTTP transport server 2026-03-06 10:13:39 +08:00
世界 7fd21f8bf4 Bump version 2026-03-05 21:46:27 +08:00
世界 88695b0d1f Rename branches and update release workflows
stable-next → oldstable, main-next → stable, dev-next → testing, new unstable
2026-03-05 21:12:02 +08:00
世界 fb269c9032 tun: Fix darwin batch loop not exit on EBADF 2026-03-05 20:38:19 +08:00
世界 e62dc7bfa2 Fix rule_set_ip_cidr_accept_empty not working 2026-03-04 11:48:22 +08:00
世界 f295e195b5 tailscale: Fix netstack TCP connections with system interface 2026-03-03 22:06:54 +08:00
世界 ab76062a41 Fix fake-ip address allocation 2026-03-03 21:37:24 +08:00
世界 d14417d392 Fix naive client close 2026-03-03 21:21:09 +08:00
世界 96c5c27610 sing: reject IP literals in IsDomainName 2026-03-03 21:21:09 +08:00
世界 91f92bee49 release: Unify default build tags and linker flags into shared files
Move hardcoded build tags and ldflags from Makefile, Dockerfile, CI
workflows, and local build scripts into canonical files under release/:

- release/DEFAULT_BUILD_TAGS (Linux common archs, Darwin, Android)
- release/DEFAULT_BUILD_TAGS_WINDOWS (includes with_purego)
- release/DEFAULT_BUILD_TAGS_OTHERS (no with_naive_outbound)
- release/LDFLAGS (shared linker flags)
2026-03-03 21:21:09 +08:00
世界 1803471e02 endpoint: Fix UDP resolved destination 2026-03-02 13:55:26 +08:00
世界 3de56d344e Update external dependencies 2026-03-02 06:53:10 +08:00
世界 c71abbdfb8 Update dependencies 2026-03-02 06:52:35 +08:00
世界 ed15121e95 sing: Relax domain name validation to support non-standard characters 2026-03-01 19:45:19 +08:00
世界 46c6945da5 documentation: Update mkdcos-material 2026-03-01 18:37:31 +08:00
1beb4cb002 clash-api: Fix websocket connection not closed after config reload via SIGHUP
Co-authored-by: TraitMan <traitman@maildog.top>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-03-01 12:30:43 +08:00
dyhkwongand世界 4c65fea1ac Fix IPv6 local DNS on Windows 2026-03-01 12:30:43 +08:00
世界 8ae93a98e5 Remove overdue deprecated features 2026-03-01 12:30:43 +08:00
世界 6da7e538e1 Bump version 2026-02-28 14:42:39 +08:00
世界 13e6ba4cb2 Update tfo-go 2026-02-27 19:55:32 +08:00
世界 93b7328c3f Fix missing Tailscale in ProxyDisplayName 2026-02-27 19:39:52 +08:00
世界 11dc5bcbe1 Fixes in cronet-go 2026-02-27 19:39:52 +08:00
世界 fa3ab87b11 platform: Fix gorelease build 2026-02-27 15:07:16 +08:00
世界 9bd9e9a58b dialer: use KeepAliveConfig for TCP keepalive 2026-02-27 14:58:06 +08:00
世界 9d6dee7451 release: Fix pacman package 2026-02-27 14:58:06 +08:00
世界 9c2cdc7203 Fix per-outbound bind_interface 2026-02-27 14:58:06 +08:00
世界 65150f5cc3 platform: Improve OOM killer for iOS 2026-02-27 14:58:06 +08:00
世界 21a1512e6c tailscale: Fix AdvertiseTags 2026-02-27 14:58:06 +08:00
世界 cf4791f1ad platform: Improve iOS OOM killer 2026-02-26 14:13:32 +08:00
世界 0bc66e5a56 service/ccm,ocm: Fixes and improvements 2026-02-26 13:36:46 +08:00
世界 d48236da94 Fix wireguard reserved 2026-02-24 15:49:52 +08:00
世界 4c05d7b888 Add advertise tags support for Tailscale endpoint 2026-02-24 15:31:57 +08:00
世界 94ed42caf1 Bump version 2026-02-23 18:17:47 +08:00
世界 e0c18cc3d4 tun: Fix nftablesCreateLocalAddressSets 2026-02-23 18:17:47 +08:00
世界 0817c25f4c release: Fix Docker build for loong64 and mipsle 2026-02-23 16:31:19 +08:00
世界 7745a97cca daemon: Fix started service leak 2026-02-23 14:49:58 +08:00
世界 9bcd715d31 Bump version 2026-02-21 13:55:31 +08:00
世界 6a95c66bc7 Pin Go version to 1.25.7 2026-02-21 13:55:31 +08:00
世界 b5800847ae More linux builds for naive 2026-02-21 13:55:31 +08:00
世界 aa85cbb86e Treat H3 RequestCanceled as closed 2026-02-21 09:31:11 +08:00
世界 c59991420e Minor fixes for naive 2026-02-18 01:26:29 +08:00
世界 c0304b8362 Bump version 2026-02-16 12:46:43 +08:00
世界 d1f1271a02 quic-go: Minor fixes 2026-02-16 12:46:29 +08:00
世界 de4fdbe553 platform: Add semver helper 2026-02-16 11:28:54 +08:00
世界 804606042f Bump version 2026-02-15 21:13:55 +08:00
世界 53f2db3f97 platform: Add windows build 2026-02-15 21:10:44 +08:00
世界 1f2fdec89d release: Fix update_apple_version command 2026-02-15 21:09:14 +08:00
世界 8714c157c9 Fix matching multi predefined 2026-02-15 21:09:06 +08:00
世界 657fba4ca5 Fix matching rule-set invert 2026-02-15 21:08:33 +08:00
世界 0a69621207 wireguard: Fix missing fallback for gso 2026-02-15 21:08:26 +08:00
世界 58ccf82e0b Bump version 2026-02-09 15:50:51 +08:00
世界 ceab244329 tuic: Fix udp context 2026-02-09 15:50:51 +08:00
世界 58fcdceca2 Fix naive padding 2026-02-09 15:50:51 +08:00
世界 98af3c0ad6 experimental: New FFI 2026-02-09 15:50:51 +08:00
世界 172a9d5e4e Standardize gomobile usages 2026-02-07 15:52:26 +08:00
世界 aba8346bd6 Fix DNS cache lock goroutine leak
The cache deduplication in Client.Exchange uses a channel-based lock
per DNS question. Waiting goroutines blocked on <-cond without context
awareness, causing them to accumulate indefinitely when the owning
goroutine's transport call stalls. Add select on ctx.Done() so waiters
respect context cancellation and timeouts.
2026-02-06 22:28:35 +08:00
世界 d8e269e0ac socks: Fix "Fix missing UDP timeout" 2026-02-06 22:26:45 +08:00
世界 c45ea8dfac Recover from bbolt panics on corrupted database
When bbolt encounters corrupted page data at runtime, it panics
instead of returning an error. Wrap all DB transactions with
recover to catch these panics, delete the corrupted database
file, and reopen a fresh one.
2026-02-06 19:35:32 +08:00
世界 a2d313c59b Bump version 2026-02-05 20:28:25 +08:00
世界 15722b06dd Update Go to 1.25.7 2026-02-05 17:49:06 +08:00
世界 d230dae0a5 Fix vmess crash 2026-02-05 17:23:49 +08:00
世界 e11dbf3a8e bufio: Refactor copy 2026-02-05 12:03:03 +08:00
世界 baa9f29f0d documentation: Update release changelog 2026-02-05 12:03:03 +08:00
世界 55b6e7dbfe socks: Fix missing UDP timeout 2026-02-05 12:03:03 +08:00
世界 a05e05a47c Fix random iproute2 table index was incorrectly removed 2026-02-02 14:15:55 +08:00
世界 c1dc6cb0fb Bump version 2026-02-01 12:29:57 +08:00
世界 432fe1b3c9 Disable rp filter atomically 2026-02-01 10:49:12 +08:00
世界 8dd8897fd8 Fix varbin serialization 2026-02-01 10:48:05 +08:00
世界 ff58edb1c1 Bump version 2026-01-30 14:05:29 +08:00
世界 79bab39502 Fix auto_redirect fallback rule 2026-01-30 11:42:56 +08:00
世界 a4d5d59901 Minor fixes 2026-01-29 13:40:34 +08:00
世界 1af14a0237 Remove varbin usages 2026-01-29 13:40:34 +08:00
世界 944a9986d9 release: Always build tailscale for iOS and tvOS 2026-01-29 13:40:34 +08:00
BalthildandGitHub 60a1e4c866 Add acmedns support 2026-01-17 20:52:43 +08:00
世界 5d67c131fa documentation: Bump version 2026-01-17 19:21:19 +08:00
世界 b9cc87d35a Skip strict routing in Windows versions below Windows 10 2026-01-17 19:21:19 +08:00
世界 490d501257 Fix trafficontrol Manager 2026-01-17 19:16:56 +08:00
世界 725e4adc46 release: Update android command 2026-01-17 19:16:56 +08:00
世界 4a14d39cad release: Log build ID during TestFlight publishing 2026-01-17 19:16:56 +08:00
世界 8ec58c96f5 Fix naive outbound on iOS 2026-01-17 19:15:56 +08:00
世界 e8450b2e61 platform: Refactor CommandClient & Connections 2026-01-17 05:50:39 +08:00
世界 30c3855e4b Fix logic issues with BBR impl 2026-01-17 05:50:16 +08:00
世界 ccf90aee8a release: Improve publish_testflight 2026-01-17 05:50:08 +08:00
世界 e6c03fd448 Update quic-go to v0.59.0 2026-01-17 05:50:07 +08:00
世界 e0f1cdf464 platform: Uniq network interfaces 2026-01-17 05:49:57 +08:00
世界 8d88c6532f Add dial option bind_address_no_port 2026-01-17 05:49:56 +08:00
世界 3890bd2be7 platform: Display k based bytes 2026-01-17 05:49:45 +08:00
世界 6cd1eb9b94 Fix tailscale endpoint 2026-01-17 05:49:35 +08:00
世界 f196b7a583 tailscale: Add system interface support 2026-01-17 05:49:24 +08:00
世界 bd9935eebb platform: Fix gomobile build 2026-01-17 05:49:13 +08:00
世界 0e0e838ff5 platform: Update apple build comamnds 2026-01-17 05:49:13 +08:00
世界 0caebd3171 platform: Improve interface 2026-01-17 05:49:12 +08:00
世界 7d2944eba9 Downgrade quic-go to v0.57.1 2026-01-17 05:49:12 +08:00
世界 a5db2feb5e Fix linux musl builds 2026-01-17 05:48:59 +08:00
世界 708ceb3d29 Fix openwrt builds 2026-01-17 05:48:59 +08:00
世界 157e33f2a4 Add kmod-nft-queue dependency for openwrt package 2026-01-17 05:48:59 +08:00
世界 1d4fb83313 Fix nfqueue fallback 2026-01-17 05:48:58 +08:00
世界 85f5f6cebb Disable multipath TCP by default via GODEBUG 2026-01-17 05:48:58 +08:00
世界 6a750f4522 Fix missing relay support for Tailscale 2026-01-17 05:48:57 +08:00
世界 46c2cc37c3 cronet: Fix windows DNS hijack 2026-01-17 05:48:42 +08:00
世界 aa8dd6e44f Fix DNS transports 2026-01-17 05:48:41 +08:00
世界 4e94a64dcc platform: Expose process info 2026-01-17 05:48:41 +08:00
世界 494990f914 Update bypass action behavior for auto redirect 2026-01-17 05:48:41 +08:00
世界 95ccb837d3 platform: Add GetStartedAt for StartedService 2026-01-17 05:48:40 +08:00
世界 24b33a43fc documentation: Format changes header 2026-01-17 05:48:40 +08:00
世界 8ae16aa452 Add format_docs command for documentation trailing space formatting 2026-01-17 05:48:39 +08:00
世界 bf4a9edc89 Fix panic when closing Box before Start with file log output 2026-01-17 05:48:39 +08:00
世界 78b4eac974 Add pre-match support for auto redirect 2026-01-17 05:48:39 +08:00
世界 a34868468f Fix cronet on iOS 2026-01-17 05:48:38 +08:00
世界 e392c70b6f Ignore darwin IP_DONTFRAG error when not supported 2026-01-17 05:48:37 +08:00
世界 511d1bb3fa Update tailscale to v1.92.4 2026-01-17 05:48:28 +08:00
世界 4273ffa77e Update cronet-go to v143.0.7499.109-1 2026-01-17 05:48:17 +08:00
世界 f5ccf746ea platform: Split library for Android SDK 21 and 23 2026-01-17 05:48:16 +08:00
世界 b2d90b7d86 Fix missing RootPoolFromContext and TimeFuncFromContext in HTTP clients 2026-01-17 05:48:16 +08:00
世界 e0a78fde07 documentation: Minor fixes 2026-01-17 05:48:16 +08:00
世界 203f4134b0 documentation: Add Wi-Fi state shared page 2026-01-17 05:48:16 +08:00
世界 c2b697a778 Fix missing build constraints for linux wifi state monitor 2026-01-17 05:48:15 +08:00
世界 ddec2ab282 Update dependencies 2026-01-17 05:48:15 +08:00
世界 35ff7d1fb4 Update quic-go to v0.58.0 2026-01-17 05:48:04 +08:00
世界 cba18635c8 Add Chrome Root Store certificate option
Adds `chrome` as a new certificate store option alongside `mozilla`.
Both stores filter out China-based CA certificates.
2026-01-17 05:47:54 +08:00
世界 0d8c7a9c5d Fix cronet-go crash 2026-01-17 05:47:54 +08:00
世界 faff3174a3 Add trace logging for lifecycle calls
Log start/close operations with timing information for debugging.
2026-01-17 05:47:54 +08:00
世界 2fc1b672cc documentation: Minor fixes 2026-01-17 05:47:54 +08:00
世界 143983b585 Remove certificate_public_key_sha256 for naive 2026-01-17 05:47:54 +08:00
世界 4afdf4153a platform: Use new crash log api 2026-01-17 05:47:54 +08:00
世界 750dc9c3e0 Fix naive network 2026-01-17 05:47:53 +08:00
世界 48b7adde7d Add QUIC support for naiveproxy 2026-01-17 05:47:52 +08:00
世界 0585f6d065 Add ECH support for NaiveProxy outbound and tls.ech.query_server_name option
- Enable ECH for NaiveProxy outbound with DNS resolver integration
- Add query_server_name option to override domain for ECH HTTPS record queries
- Update cronet-go dependency and remove windows_386 support
2026-01-17 05:47:42 +08:00
世界 8101a7b0bd Fix naiveproxy build 2026-01-17 05:47:42 +08:00
世界 e8620587dd Add OpenAI Codex Multiplexer service 2026-01-17 05:47:42 +08:00
世界 a89680fa2d Update pricing for CCM service 2026-01-17 05:47:42 +08:00
世界 b919039c43 release: Upload only other apks 2026-01-17 05:47:42 +08:00
世界 9b0960bb5a Fix bugs and add UoT option for naiveproxy outbound 2026-01-17 05:47:41 +08:00
世界 ad7b982242 Add naiveproxy outbound 2026-01-17 05:47:41 +08:00
世界 7e68013b05 Apply ping destination filter for Windows 2026-01-17 05:47:33 +08:00
世界 ac427b98f4 platform: Add UsePlatformWIFIMonitor to gRPC interface
Align dev-next-grpc with wip2 by adding UsePlatformWIFIMonitor()
to the new PlatformInterface, allowing platform clients to indicate
they handle WIFI monitoring themselves.
2026-01-17 05:47:32 +08:00
世界 a5fb467db2 daemon: Add clear logs 2026-01-17 05:47:32 +08:00
世界 a930356b04 Revert "Stop using DHCP on iOS and tvOS" 2026-01-17 05:47:32 +08:00
世界 5bc0dfa9dd platform: Refactoring libbox to use gRPC-based protocol 2026-01-17 05:47:32 +08:00
世界 743b460e51 Add Windows WI-FI state support 2026-01-17 05:47:27 +08:00
世界 8d8ca282a1 Add Linux WI-FI state support
Support monitoring WIFI state on Linux through:
- NetworkManager (D-Bus)
- IWD (D-Bus)
- wpa_supplicant (control socket)
- ConnMan (D-Bus)
2026-01-17 05:47:04 +08:00
世界 cd56eaaba2 Add more tcp keep alive options
Also update default TCP keep-alive initial period from 10 minutes to 5 minutes.
2026-01-17 05:47:04 +08:00
世界 e92938364d Update quic-go to v0.57.1 2026-01-17 05:46:52 +08:00
世界 1c4614318e Fix read credentials for ccm service 2026-01-17 05:46:24 +08:00
世界 0f5cda4169 Add claude code multiplexer service 2026-01-17 05:46:23 +08:00
世界 d87c9fd242 Fix compatibility with MPTCP 2026-01-17 05:46:23 +08:00
世界 fce21607bd Use a more conservative strategy for resolving with systemd-resolved for local DNS server 2026-01-17 05:46:23 +08:00
世界 3dc285be8c Fix missing mTLS support in client options 2026-01-17 05:46:23 +08:00
世界 79bbce3db3 Add curve preferences, pinned public key SHA256 and mTLS for TLS options 2026-01-17 05:46:22 +08:00
世界 dfd95b2615 Fix WireGuard input packet 2026-01-17 05:46:22 +08:00
世界 ab0869c972 Update tfo-go to latest 2026-01-17 05:46:21 +08:00
世界 9ac0539ffd Remove compatibility codes 2026-01-17 05:46:14 +08:00
世界 cb4deb0c20 Do not use linkname by default to simplify debugging 2026-01-17 05:46:14 +08:00
世界 6b90b61358 documentation: Update chinese translations 2026-01-17 05:46:14 +08:00
世界 ed1ee4c3a4 Update quic-go to v0.55.0 2026-01-17 05:46:13 +08:00
世界 7f3ea8dbd8 Update WireGuard and Tailscale 2026-01-17 05:46:02 +08:00
世界 12b055989b Fix preConnectionCopy 2026-01-17 05:46:01 +08:00
世界 49056b5060 Fix ping domain 2026-01-17 05:46:01 +08:00
世界 c530995832 release: Fix linux build 2026-01-17 05:46:01 +08:00
世界 60d81a73d9 Improve ktls rx error handling 2026-01-17 05:46:01 +08:00
世界 e9c46cc359 Improve compatibility for kTLS 2026-01-17 05:46:00 +08:00
世界 9110851af3 ktls: Add warning for inappropriate scenarios 2026-01-17 05:44:43 +08:00
世界 107f92381b Add support for kTLS
Reference: https://gitlab.com/go-extension/tls
2026-01-17 05:44:42 +08:00
世界 f84129ca79 Add proxy support for ICMP echo request 2026-01-17 05:44:41 +08:00
世界 44fafcef73 Fix resolve using resolved 2026-01-17 05:44:29 +08:00
世界 a5e09fcd43 documentation: Update behavior of local DNS server on darwin 2026-01-17 05:44:29 +08:00
世界 387b42c9c2 Remove use of ldflags -checklinkname=0 on darwin 2026-01-17 05:44:29 +08:00
世界 044eb728cb Fix legacy DNS config 2026-01-17 05:44:29 +08:00
世界 2be8a45f14 Fix rule-set format 2026-01-17 05:44:29 +08:00
世界 1336987756 documentation: Remove outdated icons 2026-01-17 05:44:29 +08:00
世界 e3473d3de0 documentation: Improve local DNS server 2026-01-17 05:44:28 +08:00
世界 bba92146b1 Stop using DHCP on iOS and tvOS
We do not have the `com.apple.developer.networking.multicast` entitlement and are unable to obtain it for non-technical reasons.
2026-01-17 05:44:28 +08:00
世界 48f84b31d6 Improve local DNS server on darwin
We mistakenly believed that `libresolv`'s `search` function worked correctly in NetworkExtension, but it seems only `getaddrinfo` does.

This commit changes the behavior of the `local` DNS server in NetworkExtension to prefer DHCP, falling back to `getaddrinfo` if DHCP servers are unavailable.

It's worth noting that `prefer_go` does not disable DHCP since it respects Dial Fields, but `getaddrinfo` does the opposite. The new behavior only applies to NetworkExtension, not to all scenarios (primarily command-line binaries) as it did previously.

In addition, this commit also improves the DHCP DNS server to use the same robust query logic as `local`.
2026-01-17 05:44:28 +08:00
世界 1c846df903 Use resolved in local DNS server if available 2026-01-17 05:44:28 +08:00
xchacha20-poly1305and世界 0bd98a300f Fix rule set version 2026-01-17 05:44:27 +08:00
世界 87eaf3ce6e documentation: Add preferred_by route rule item 2026-01-17 05:44:27 +08:00
世界 239e6ec701 Add preferred_by route rule item 2026-01-17 05:44:27 +08:00
世界 5be1887f92 documentation: Add interface address rule items 2026-01-17 05:44:27 +08:00
世界 65264afdf9 Add interface address rule items 2026-01-17 05:44:26 +08:00
世界 fecdbf20de Fix ECH retry support 2026-01-17 05:44:26 +08:00
neletorand世界 1f03080540 Add support for ech retry configs 2026-01-17 05:44:26 +08:00
Zephyrusoand世界 737162e75a Add /dns/flush-clash meta api 2026-01-17 05:44:26 +08:00
世界 51ce402dbb Bump version 2026-01-17 05:10:56 +08:00
世界 8b404b5a4c Update Go to 1.25.6 2026-01-17 05:10:56 +08:00
世界 3ce94d50dd Update uTLS to v1.8.2 2026-01-17 04:54:18 +08:00
世界 29d56fca9c Update smux to v1.5.50 & Fix h2mux RST_STREAM on half-close 2026-01-17 04:17:14 +08:00
世界 ab18010ee1 Bump version 2026-01-12 20:38:21 +08:00
世界 e69c202c79 Fix logic issues with BBR impl 2026-01-12 20:34:04 +08:00
世界 0a812f2a46 Bump version 2026-01-07 15:13:35 +08:00
Gavin Luoand世界 fffe9fc566 Fix reset buffer in dhcp response loop
Previously, the buffer was not reset within the response loop. If a packet
handle failed or completed, the buffer retained its state. Specifically,
if `ReadPacketFrom` returned `io.ErrShortBuffer`, the error was ignored
via `continue`, but the buffer remained full. This caused the next
read attempt to immediately fail with the same error, creating a tight
busy-wait loop that consumed 100% CPU.

Validates `buffer.Reset()` is called at the start of each iteration to
ensure a clean state for 'ReadPacketFrom'.
2026-01-05 17:46:59 +08:00
世界 6fdf27a701 Fix Tailscale endpoint using wrong source IP with advertise_routes 2026-01-04 22:14:54 +08:00
Bruce Wayneand世界 7fa7d4f0a9 ducumentation: update Shadowsocks inbound documentation for SSM API 2026-01-02 19:18:52 +08:00
世界 f511ebc1d4 Fix lint errors 2026-01-02 19:17:53 +08:00
世界 84bbdc2eba Revert "Pin gofumpt and golangci-lint versions"
This reverts commit d9d7f7880d.
2026-01-02 19:14:13 +08:00
世界 568612fc70 Fix duplicate tag detection for empty tags
Closes https://github.com/SagerNet/sing-box/issues/3665
2026-01-02 19:14:13 +08:00
世界 d78828fd81 Fix quic sniffer 2026-01-02 19:14:13 +08:00
世界 f56d9ab945 Bump version 2025-12-25 14:47:10 +08:00
世界 86fabd6a22 Update Mozilla certificates 2025-12-25 14:42:18 +08:00
世界 24a1e7cee4 Ignore darwin IP_DONTFRAG error when not supported 2025-12-25 14:40:48 +08:00
世界 223dd8bb1a Fix TCP DNS response buffer 2025-12-22 13:51:00 +08:00
世界 68448de7d0 Fix missing RootPoolFromContext and TimeFuncFromContext in HTTP clients 2025-12-22 13:50:57 +08:00
世界 1ebff74c21 Fix DNS cache not working when domain strategy is set
The cache lookup was performed before rule matching, using the caller's
strategy (usually AsIS/0) instead of the resolved strategy. This caused
cache misses when ipv4_only was configured globally but the cache lookup
expected both A and AAAA records.

Remove LookupCache and ExchangeCache from Router, as the cache checks
inside client.Lookup and client.Exchange already handle caching correctly
after rule matching with the proper strategy and transport.
2025-12-21 16:59:10 +08:00
世界 f0cd3422c1 Bump version 2025-12-14 00:09:19 +08:00
世界 e385a98ced Update Go to 1.25.5 2025-12-13 20:11:29 +08:00
世界 670f32baee Fix naive inbound 2025-12-12 21:19:28 +08:00
世界 2747a00ba2 Fix tailscale destination 2025-12-01 15:02:04 +08:00
世界 48e76038d0 Update Go to 1.25.4 2025-11-16 09:53:10 +08:00
世界 6421252d44 release: Fix windows7 build 2025-11-16 09:09:34 +08:00
世界 216c4c8bd4 Fix adapter handler 2025-11-16 08:34:46 +08:00
世界 5841d410a1 ssm-api: Fix save cache 2025-11-04 11:00:43 +08:00
Kumiko as a Serviceand世界 63c8207d7a Use --no-cache --upgrade option in apk add
No need for separate upgrade / cache cleanup steps.

Signed-off-by: Kumiko as a Service <Dreista@users.noreply.github.com>
2025-11-04 11:00:41 +08:00
世界 54ed58499d Bump version 2025-10-27 18:04:24 +08:00
世界 b1bdc18c85 Fix socks response 2025-10-27 18:03:05 +08:00
世界 a38030cc0b Fix memory leak in hysteria2 2025-10-24 10:52:08 +08:00
世界 4626aa2cb0 Bump version 2025-10-21 21:39:28 +08:00
世界 5a40b673a4 Update dependencies 2025-10-21 21:39:28 +08:00
世界 541f63fee4 redirect: Fix compatibility with /product/bin/su 2025-10-21 21:27:15 +08:00
世界 5de6f4a14f Fix tailscale not enforcing NoLogsNoSupport 2025-10-16 22:30:08 +08:00
世界 5658830077 Fix trailing dot handling in local DNS transport 2025-10-16 21:43:12 +08:00
世界 0e50edc009 documentation: Add appreciate for Warp 2025-10-16 21:43:12 +08:00
世界 444f454810 Bump version 2025-10-14 23:43:36 +08:00
世界 d0e1fd6c7e Update Go to 1.25.3 2025-10-14 23:43:36 +08:00
世界 17b4d1e010 Update uTLS to v1.8.1 2025-10-14 23:40:19 +08:00
世界 06791470c9 Fix DNS reject panic 2025-10-14 23:40:19 +08:00
世界 ef14c8ca0e Disable TCP slow open for anytls
Fixes #3459
2025-10-14 23:40:19 +08:00
世界 36dc883c7c Fix DNS negative caching to comply with RFC 2308 2025-10-09 23:45:23 +08:00
Mahdiand世界 6557bd7029 Fix dns cache in lookup 2025-10-09 23:45:23 +08:00
世界 41b30c91d9 Improve HTTPS DNS transport 2025-10-09 23:45:23 +08:00
世界 0f767d5ce1 Update .gitignore 2025-10-07 13:37:11 +08:00
世界 328a6de797 Bump version 2025-10-05 17:58:21 +08:00
Mahdiand世界 886be6414d Fix dns truncate 2025-10-05 17:58:21 +08:00
世界 9362d3cab3 Attempt to fix leak in quic-go 2025-10-01 11:59:17 +08:00
世界 ced2e39dbf Update dependencies 2025-10-01 11:55:33 +08:00
anytls世界anytls <anytls>
2159d8877b Update anytls v0.0.11
Co-authored-by: anytls <anytls>
2025-10-01 10:23:15 +08:00
世界 cb7dba3eff release: Improve publish testflight 2025-10-01 10:22:44 +08:00
世界 d9d7f7880d Pin gofumpt and golangci-lint versions
As we don't want to remove naked returns
2025-09-23 16:33:42 +08:00
世界 a031aaf2c0 Do not reset network on sleep or wake 2025-09-23 16:17:44 +08:00
世界 4bca951773 Fix adguard matcher 2025-09-23 16:12:29 +08:00
世界 140735dbde Fix websocket log handling 2025-09-23 16:12:29 +08:00
世界 714a68bba1 Update .gitignore 2025-09-23 16:12:29 +08:00
世界 573c6179ab Bump version 2025-09-13 13:16:13 +08:00
世界 510bf05e36 Fix UDP exchange for local/dhcp DNS servers 2025-09-13 12:26:48 +08:00
世界 ae852e0be4 Bump version 2025-09-13 03:09:10 +08:00
世界 1955002ed8 Do not cache DNS responses with empty answers 2025-09-13 03:04:08 +08:00
世界 44559fb7b9 Bump version 2025-09-13 00:07:57 +08:00
世界 0977c5cf73 release: Disable Apple platform CI builds, since `-allowProvisioningUpdates is broken by Apple 2025-09-13 00:07:57 +08:00
世界 07697bf931 release: Fix xcode build 2025-09-12 22:57:44 +08:00
世界 5d1d1a1456 Fix TCP exchange for local/dhcp DNS servers 2025-09-12 21:58:48 +08:00
世界 146383499e Fix race codes 2025-09-12 21:58:48 +08:00
世界 e81a76fdf9 Fix DNS exchange 2025-09-12 18:05:02 +08:00
世界 de13137418 Fix auto redirect 2025-09-12 11:04:12 +08:00
世界 e42b818c2a Fix dhcp fetch 2025-09-12 11:03:13 +08:00
世界 fcde0c94e0 Bump version 2025-09-10 22:57:24 +08:00
世界 1af83e997d Update Go to 1.25.1 2025-09-10 22:57:24 +08:00
世界 59ee7be72a Fix SyscallVectorisedPacketWriter 2025-09-10 22:46:41 +08:00
世界 c331ee3d5c Fix timeout check 2025-09-10 22:42:40 +08:00
世界 36babe4bef Fix hysteria2 handshake timeout 2025-09-09 18:03:18 +08:00
世界 c5f2cea802 Prevent panic when wintun dll fails to load 2025-09-09 14:49:00 +08:00
世界 8a200bf913 Fix auto redirect output 2025-09-09 14:29:40 +08:00
世界 f16468e74f Fix ipv6 tproxy listener 2025-09-09 14:16:40 +08:00
世界 79c0b9f51d Fix tls options ignored in mixed inbounds 2025-09-08 19:45:52 +08:00
世界 f98a3a4f65 Treat requests with OPT extra but no options as simple requests 2025-09-08 09:12:30 +08:00
世界 b14cecaeb2 Fix DNS packet size 2025-09-08 09:12:30 +08:00
世界 2594745ef8 Fix DNS client 2025-09-08 09:12:30 +08:00
世界 cc3041322e Fix DNS cache 2025-09-08 09:12:30 +08:00
世界 f352f84483 Fix read address 2025-09-05 15:16:14 +08:00
世界 cbf48e9b8c Fix multiple sniff 2025-09-03 20:09:05 +08:00
世界 0ef7e8eca2 Fix route.default_interface not taking effect 2025-09-02 18:00:02 +08:00
世界 1a18e43a88 Fix linux icmp routes 2025-09-02 17:55:48 +08:00
世界 6849288d6d Fix typo in TestSniffUQUICChrome115 2025-09-02 17:55:26 +08:00
世界 2edfed7d91 Improve DHCP DNS server 2025-09-02 17:55:26 +08:00
世界 30c069f5b7 Fix local DNS server on legacy windows 2025-09-02 17:55:26 +08:00
世界 649163cb7b Fix domain strategy not taking effect 2025-09-02 17:35:27 +08:00
世界 980e96250b Bump version 2025-08-28 12:11:30 +08:00
世界 963bc4b647 Enforce Tailscale NoLogsNoSupport 2025-08-28 10:30:13 +08:00
世界 031f25c1c1 Deprecate common/atomic 2025-08-25 19:49:12 +08:00
世界 b40f642fa4 Bump version 2025-08-21 09:43:47 +08:00
世界 22782ca6fc Fix outbound start 2025-08-21 09:41:31 +08:00
世界 1468d83895 Make realityClientConnWrapper replaceable 2025-08-20 16:26:27 +08:00
世界 97f0dc8a60 Bump version 2025-08-20 09:20:41 +08:00
dyhkwongand世界 ee02532ab5 Fix tlsfragment fallback writeAndWaitAck 2025-08-20 09:20:41 +08:00
世界 f1dd0dba78 Make ReadWaitConn reader replaceable 2025-08-20 09:18:03 +08:00
wwqgtxxand世界 f4ed684146 Update cast using in sing-vmess 2025-08-20 08:45:09 +08:00
wwqgtxxand世界 83f02d0bfb Make utlsConnWrapper replaceable 2025-08-20 08:45:09 +08:00
wwqgtxxand世界 52fa5f20a3 Make realityConnWrapper replaceable 2025-08-20 08:45:09 +08:00
世界 f462ce5615 Update tfo-go 2025-08-19 21:56:05 +08:00
世界 cef3e538ba Fix failed DNS responses being incorrectly rejected 2025-08-19 11:14:46 +08:00
世界 acda4ce985 Fix bind_interface not working with auto_redirect 2025-08-17 14:48:01 +08:00
世界 354ece2bdf Fix resolved service 2025-08-16 00:09:29 +08:00
世界 de10bb00a9 Fix ssm-api 2025-08-15 15:05:37 +08:00
世界 fdc181106d Fix atomic pointer usages 2025-08-15 15:05:34 +08:00
renovate[bot]世界renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8752b631bd [dependencies] Update golang Docker tag to v1.25 (#3276)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 12:45:43 +08:00
世界 378e39f70c Update golangci-lint to v2 2025-08-13 23:37:40 +08:00
renovate[bot]and世界 043a2e7a07 [dependencies] Update github-actions 2025-08-13 22:12:19 +08:00
世界 7e190e92ca Fix build with Go 1.25 2025-08-13 22:08:35 +08:00
世界 5eb318ba06 Update Go to 1.25 2025-08-13 22:08:35 +08:00
世界 4a209f1afb Fix h2mux close check 2025-08-13 21:04:01 +08:00
世界 c0ac3c748c Reduce default MTU for android 2025-08-13 11:48:44 +08:00
世界 a65d3e040a platform: Fix context 2025-08-13 11:26:32 +08:00
世界 2358efe44a release: Fix android build 2025-08-11 22:11:14 +08:00
世界 09d3b8f2c2 release: Fix repo 2025-08-11 22:11:14 +08:00
yuand世界 531de77124 documentation: Fix tun address format 2025-08-11 22:11:13 +08:00
Kismetand世界 44981fd803 documentation: Fix typo 2025-08-11 22:11:13 +08:00
世界 4fb5ac292b Bump version 2025-08-10 20:06:28 +08:00
Sentsukiand世界 0e23a3d7c2 documentation: Fix Rcode's migration guide
Signed-off-by: Sentsuki <52487960+Sentsuki@users.noreply.github.com>
2025-08-10 20:06:28 +08:00
Oleksandr Redkoand世界 76ee64ae50 Simplify slice to array conversion 2025-08-10 20:06:28 +08:00
Me0woand世界 e1dbcccab5 documentation: Fix typo
Signed-off-by: Me0wo <152751263+Sn0wo2@users.noreply.github.com>
2025-08-10 20:06:28 +08:00
Youfu Zhangand世界 fba802effd Fix libresolv initialization
Fixes: 9533031891 ("Update libresolv usage")

Signed-off-by: Youfu Zhang <zhangyoufu@gmail.com>
2025-08-10 20:06:28 +08:00
世界 9495b56772 Update Go to 1.24.6 2025-08-08 17:07:56 +08:00
世界 a8434b176f Fix SyscallVectorisedWriter 2025-08-08 16:08:47 +08:00
世界 ef0004400d Fix legacy domain resolver deprecated warning incorrectly suppressed for direct outbound 2025-08-07 13:56:35 +08:00
世界 0a63049845 android: Add workaround for tailscale pidfd crash 2025-08-07 12:54:19 +08:00
世界 2dcb86941f Bump version 2025-08-04 08:54:00 +08:00
世界 5c6eb89cfb Fix udp listener write back 2025-08-04 08:54:00 +08:00
世界 5b92eeb3bf Fix auto redirect panic 2025-08-01 16:50:54 +08:00
wwqgtxxand世界 3518ce083b Fix packetaddr panic 2025-08-01 16:50:54 +08:00
世界 f13c54afc1 Fix vless write 2025-07-28 08:01:52 +08:00
世界 3388efe65a Fix ssm-api 2025-07-28 08:01:52 +08:00
世界 a11384b286 Fix time service wrapper 2025-07-24 09:21:08 +08:00
dyhkwongand世界 9dd9fb27cd Fix disable_sni nil time func 2025-07-24 09:21:08 +08:00
世界 0f2035149c Remove dependency on circl 2025-07-23 11:26:06 +08:00
世界 cba364204a Fix VectorisedReadWaiter on windows 2025-07-23 11:26:06 +08:00
世界 4e17788549 Update dependencies 2025-07-23 11:26:06 +08:00
世界 18a6719893 Fix IndexTLSServerName 2025-07-23 11:26:06 +08:00
dyhkwongand世界 687343f6ca Fix disable_sni not working with custom RootCAs 2025-07-22 19:20:09 +08:00
世界 e061538c30 Update Go to 1.24.5 2025-07-21 10:10:02 +08:00
世界 a6375c7530 Fix data corruption in direct copy 2025-07-21 10:09:59 +08:00
世界 45fa18a2e3 Fix vision crash 2025-07-20 18:31:05 +08:00
世界 534cccce91 Fix DNS upgrade 2025-07-18 21:46:03 +08:00
世界 72dbcd3ad4 Improve darwin tun performance 2025-07-18 21:23:04 +08:00
世界 5533094984 Fix UDP DNS buffer size 2025-07-18 12:20:33 +08:00
世界 ae2ecd6002 Increase default mtu to 65535 2025-07-12 14:48:04 +08:00
世界 0098a2adc5 Improve direct copy 2025-07-12 14:48:04 +08:00
世界 c0dd4a3f07 Fix DNS reject check 2025-07-08 13:14:46 +08:00
世界 497ddb5829 Improve copy 2025-07-08 13:14:46 +08:00
世界 811ff93549 Increase default mtu under network extension to 4064 2025-07-08 13:14:46 +08:00
世界 96df69bcdc release: Fix publish testflight 2025-07-08 13:14:46 +08:00
世界 6cfa2b8b86 Improve darwin tun performance 2025-07-08 13:14:46 +08:00
世界 eea1e701b7 Improve nftables rules for openwrt 2025-07-08 13:14:46 +08:00
世界 455e5de74d Fixed DoH server recover from conn freezes 2025-07-08 13:14:45 +08:00
世界 9533031891 Update libresolv usage 2025-07-08 13:14:45 +08:00
yuand世界 80f8ea6849 documentation: Update client configuration manual 2025-07-08 13:14:45 +08:00
yanwoand世界 50eadb00c7 documentation: Fix typo
Signed-off-by: yanwo <ogilvy@gmail.com>
2025-07-08 13:14:45 +08:00
anytinzand世界 d4012bd0b2 documentation: Fix wrong SideStore loopback ip 2025-07-08 13:14:45 +08:00
世界 a902e9f9f6 Revert "release: Add IPA build"
After testing, it seems that since extensions are not handled correctly, it cannot be installed by SideStore.
2025-07-08 13:14:45 +08:00
世界 da3ba573d8 release: Add IPA build 2025-07-08 13:14:45 +08:00
世界 bea9048cfe Add API to dump AdGuard rules 2025-07-08 13:14:44 +08:00
Sukkaand世界 fc0f5ed83a Improve AdGuard rule-set parser 2025-07-08 13:14:44 +08:00
Restia-Ashbelland世界 c0588c30d7 Add ECH support for uTLS 2025-07-08 13:14:44 +08:00
世界 24c940c51c Improve TLS fragments 2025-07-08 13:14:44 +08:00
世界 407ee08d8a Add cache support for ssm-api 2025-07-08 13:14:44 +08:00
世界 756585fb2a Fix service will not be closed 2025-07-08 13:14:44 +08:00
世界 5662784afb Add loopback address support for tun 2025-07-08 13:14:44 +08:00
世界 3801901726 Fix tproxy listener 2025-07-08 13:14:43 +08:00
世界 7d58174f1f Fix systemd package 2025-07-08 13:14:43 +08:00
世界 d339f85087 Fix missing home for derp service 2025-07-08 13:14:43 +08:00
Zero Cloverand世界 b6a114f7f4 documentation: Fix services 2025-07-08 13:14:43 +08:00
世界 e586ef070e Fix dns.client_subnet ignored 2025-07-08 13:14:43 +08:00
世界 71a76e9ecb documentation: Minor fixes 2025-07-08 13:14:42 +08:00
世界 1d66474022 Fix tailscale forward 2025-07-08 13:14:42 +08:00
世界 3934e53476 Minor fixes 2025-07-08 13:14:42 +08:00
世界 0146fbfc40 Add SSM API service 2025-07-08 13:14:42 +08:00
世界 6ee3117755 Add resolved service and DNS server 2025-07-08 13:14:41 +08:00
世界 e2440a569e Add DERP service 2025-07-08 13:14:41 +08:00
世界 7a1eee78df Add service component type 2025-07-08 13:14:41 +08:00
世界 e3c8c0705f Fix tproxy tcp control 2025-07-08 13:14:40 +08:00
愚者and世界 886d427337 release: Fix build tags for android
Signed-off-by: 愚者 <11926619+FansChou@users.noreply.github.com>
2025-07-08 13:14:40 +08:00
世界 d5432b4c27 prevent creation of bind and mark controls on unsupported platforms 2025-07-08 13:14:40 +08:00
PuerNyaand世界 42064fe7ec documentation: Fix description of reject DNS action behavior 2025-07-08 13:14:40 +08:00
Restia-Ashbelland世界 7cee76f9a6 Fix TLS record fragment 2025-07-08 13:14:39 +08:00
世界 ed5b2f2997 Add missing accept_routes option for Tailscale 2025-07-08 13:14:39 +08:00
世界 3b480de38a Add TLS record fragment support 2025-07-08 13:14:38 +08:00
世界 f990630ccc Fix set edns0 client subnet 2025-07-08 13:14:38 +08:00
世界 d33614d6a0 Update minor dependencies 2025-07-08 13:14:38 +08:00
世界 b3866bcea0 Update certmagic and providers 2025-07-08 13:14:38 +08:00
世界 26ec73c71b Update protobuf and grpc 2025-07-08 13:14:38 +08:00
世界 c3403c5413 Add control options for listeners 2025-07-08 13:14:38 +08:00
世界 3b6ddcae37 Update quic-go to v0.52.0 2025-07-08 13:14:19 +08:00
世界 dbdcce20a8 Update utls to v1.7.2 2025-07-08 13:12:35 +08:00
世界 e7ef1b2368 Handle EDNS version downgrade 2025-07-08 13:12:35 +08:00
世界 ce32d1c2c3 documentation: Fix anytls padding scheme description 2025-07-08 13:12:34 +08:00
安容and世界 596b66f397 Report invalid DNS address early 2025-07-08 13:12:34 +08:00
世界 d4fd43cf6f Fix wireguard listen_port 2025-07-08 13:12:34 +08:00
世界 6c377f16e7 clash-api: Add more meta api 2025-07-08 13:12:34 +08:00
世界 349db7baec Fix DNS lookup 2025-07-08 13:12:33 +08:00
世界 1f3097da00 Fix fetch ECH configs 2025-07-08 13:12:33 +08:00
reletorand世界 0b4b5e6f0f documentation: Minor fixes 2025-07-08 13:12:33 +08:00
caelansarand世界 245273e6c1 Fix callback deletion in UDP transport 2025-07-08 13:12:32 +08:00
世界 54a0004de6 documentation: Try to make the play review happy 2025-07-08 13:12:32 +08:00
世界 6a211f6ed6 Fix missing handling of legacy domain_strategy options 2025-07-08 13:12:32 +08:00
世界 aadb44ebd6 Improve local DNS server 2025-07-08 13:12:32 +08:00
anytls世界anytls <anytls>
9b0db6ab15 Update anytls
Co-authored-by: anytls <anytls>
2025-07-08 13:12:31 +08:00
世界 5b363c347f Fix DNS dialer 2025-07-08 13:12:31 +08:00
世界 cdea3f63d4 release: Skip override version for iOS 2025-07-08 13:12:31 +08:00
iikiraand世界 40a6260f6e Fix UDP DNS server crash
Signed-off-by: iikira <i2@mail.iikira.com>
2025-07-08 13:12:31 +08:00
ReleTorand世界 a5e47f4e0f Fix fetch ECH configs 2025-07-08 13:12:30 +08:00
世界 ac7bc587cb Allow direct outbounds without domain_resolver 2025-07-08 13:12:30 +08:00
世界 4e11a3585a Fix Tailscale dialer 2025-07-08 13:12:30 +08:00
dyhkwongand世界 63d3e9f6e5 Fix DNS over QUIC stream close 2025-07-08 13:12:30 +08:00
anytls世界anytls <anytls>
d115e36ed8 Update anytls
Co-authored-by: anytls <anytls>
2025-07-08 13:12:30 +08:00
Rambling2076and世界 af56b1a950 Fix missing with_tailscale in Dockerfile
Signed-off-by: Rambling2076 <Rambling2076@proton.me>
2025-07-08 13:12:29 +08:00
世界 f9999a76fe Fail when default DNS server not found 2025-07-08 13:12:28 +08:00
世界 42eb3841a1 Update gVisor to 20250319.0 2025-07-08 13:12:28 +08:00
世界 fb622ccbdf Explicitly reject detour to empty direct outbounds 2025-07-08 13:12:28 +08:00
世界 d2dc3ddf72 Add netns support 2025-07-08 13:12:28 +08:00
世界 e8499452f8 Add wildcard name support for predefined records 2025-07-08 13:12:27 +08:00
世界 e0a6b31c03 Remove map usage in options 2025-07-08 13:12:27 +08:00
世界 7c923209ad Fix unhandled DNS loop 2025-07-08 13:12:27 +08:00
世界 bca2bd2fa1 Add wildcard-sni support for shadow-tls inbound 2025-07-08 13:12:26 +08:00
k9982874and世界 fa99ca2757 Add ntp protocol sniffing 2025-07-08 13:12:26 +08:00
世界 7073f2a272 option: Fix marshal legacy DNS options 2025-07-08 13:12:26 +08:00
世界 390e30ae7b Make domain_resolver optional when only one DNS server is configured 2025-07-08 13:12:26 +08:00
世界 23cf8c49e0 Fix DNS lookup context pollution 2025-07-08 13:12:25 +08:00
世界 b17a024f6c Fix http3 DNS server connecting to wrong address 2025-07-08 13:12:25 +08:00
Restia-Ashbelland世界 1ed21085bb documentation: Fix typo 2025-07-08 13:12:25 +08:00
anytls世界anytls <anytls>
56409ff269 Update sing-anytls
Co-authored-by: anytls <anytls>
2025-07-08 13:12:24 +08:00
k9982874and世界 0c523980ff Fix hosts DNS server 2025-07-08 13:12:24 +08:00
世界 32873d06bc Fix UDP DNS server crash 2025-07-08 13:12:24 +08:00
世界 4accaccf77 documentation: Fix missing ip_accept_any DNS rule option 2025-07-08 13:12:23 +08:00
世界 ff416aacaf Fix anytls dialer usage 2025-07-08 13:12:23 +08:00
世界 b97947e8ac Move predefined DNS server to rule action 2025-07-08 13:12:23 +08:00
世界 dfcd9fb8c3 Fix domain resolver on direct outbound 2025-07-08 13:12:22 +08:00
Zephyrusoand世界 803811568e Fix missing AnyTLS display name 2025-07-08 13:12:22 +08:00
anytls世界anytls <anytls>
50b0bd5c39 Update sing-anytls
Co-authored-by: anytls <anytls>
2025-07-08 13:12:22 +08:00
Esteland世界 2d02b2b1cf documentation: Fix typo
Signed-off-by: Estel <callmebedrockdigger@gmail.com>
2025-07-08 13:12:22 +08:00
TargetLockedand世界 456fbecf16 Fix parsing legacy DNS options 2025-07-08 13:12:21 +08:00
世界 668923c392 Fix DNS fallback 2025-07-08 13:12:21 +08:00
世界 c51e9cbe06 documentation: Fix missing hosts DNS server 2025-07-08 13:12:20 +08:00
anytls世界anytls <anytls>
60b451e6cf Add MinIdleSession option to AnyTLS outbound
Co-authored-by: anytls <anytls>
2025-07-08 13:12:20 +08:00
ReleTorand世界 3e35390d8f documentation: Minor fixes 2025-07-08 13:12:20 +08:00
libtry486and世界 f2dad289fb documentation: Fix typo
fix typo

Signed-off-by: libtry486 <89328481+libtry486@users.noreply.github.com>
2025-07-08 13:12:20 +08:00
Alireza Ahmadiand世界 b4a8fa59f5 Fix Outbound deadlock 2025-07-08 13:12:19 +08:00
世界 73de2a7d07 documentation: Fix AnyTLS doc 2025-07-08 13:12:19 +08:00
anytlsand世界 1699a7ce33 Add AnyTLS protocol 2025-07-08 13:12:19 +08:00
世界 7743c6e881 Migrate to stdlib ECH support 2025-07-08 13:12:19 +08:00
世界 9a5f69f435 Add fallback local DNS server for iOS 2025-07-08 13:12:18 +08:00
世界 5c4211e849 Get darwin local DNS server from libresolv 2025-07-08 13:12:18 +08:00
世界 c1189e2a7b Improve resolve action 2025-07-08 13:12:18 +08:00
世界 f18889369f Add back port hopping to hysteria 1 2025-07-08 13:12:17 +08:00
xchacha20-poly1305and世界 91c7b638e8 Remove single quotes of raw Moziila certs 2025-07-08 13:12:17 +08:00
世界 6f793a0273 Add Tailscale endpoint 2025-07-08 13:12:16 +08:00
世界 0f6c417c3c Build legacy binaries with latest Go 2025-07-08 13:12:16 +08:00
世界 c830e9a634 documentation: Remove outdated icons 2025-07-08 13:12:16 +08:00
世界 e809623ec9 documentation: Certificate store 2025-07-08 13:12:16 +08:00
世界 061276902b documentation: TLS fragment 2025-07-08 13:12:15 +08:00
世界 fa6f7d396e documentation: Outbound domain resolver 2025-07-08 13:12:15 +08:00
世界 23666a9230 documentation: Refactor DNS 2025-07-08 13:12:15 +08:00
世界 17576e9f66 Add certificate store 2025-07-08 13:12:14 +08:00
世界 90ec9c8bcb Add TLS fragment support 2025-07-08 13:12:14 +08:00
世界 988ac62a1b refactor: Outbound domain resolver 2025-07-08 13:12:14 +08:00
世界 3016338e34 refactor: DNS 2025-07-08 13:12:14 +08:00
世界 bc35aca017 Bump version 2025-07-08 13:11:13 +08:00
世界 281d52a1ea Fix hy2 server crash 2025-07-08 13:11:13 +08:00
世界 b8502759b5 Fix DNS reject check 2025-07-07 13:57:37 +08:00
世界 6f804adf39 Fix v2rayhttp crash 2025-07-03 21:48:10 +08:00
36db31c55a documentation: Fix typo
Co-authored-by: chenqixin <chenqixin@bytedance.com>
2025-06-29 18:54:05 +08:00
世界 4dbbf59c82 Fix logger for acme 2025-06-29 18:44:40 +08:00
世界 832eb4458d release: Fix xcode version 2025-06-29 18:44:40 +08:00
dyhkwongandGitHub 2cf989d306 Fix inbound with v2ray transport missing InboundOptions 2025-06-25 13:20:00 +08:00
世界 7d3ee29bd0 Also skip duplicate sniff for TCP 2025-06-21 12:57:27 +08:00
世界 cba0e46aba Fix log for rejected connections 2025-06-21 12:57:26 +08:00
世界 9b8ab3e61e Bump version 2025-06-19 11:57:44 +08:00
dyhkwongandGitHub 47f18e823a Fix: macOS udp find process should use unspecified fallback
https://github.com/Dreamacro/clash/commit/be8d63ba8f70a6f4e7b240899cd2903a77243c24
2025-06-18 08:34:59 +08:00
世界 2d1b824b62 Fix gLazyConn race 2025-06-17 14:24:11 +08:00
世界 d511698f3f Fix slowOpenConn 2025-06-12 08:05:04 +08:00
世界 cb435ea232 Fix default network strategy 2025-06-12 08:05:04 +08:00
世界 43a9016c83 Fix leak in hijack-dns 2025-06-06 14:28:09 +08:00
世界 255068fd40 Bump version 2025-06-04 23:32:10 +08:00
世界 098a00b025 Fix v2ray websocket transport 2025-06-04 23:23:36 +08:00
世界 dba0b5276b Bump version 2025-06-04 20:06:38 +08:00
Sentsukiand世界 78ae935468 documentation: Fix typo
Signed-off-by: Sentsuki <52487960+Sentsuki@users.noreply.github.com>
2025-06-04 20:06:38 +08:00
Mahdiand世界 3ea5f76470 Fix nil logger at v2rayhttp server 2025-06-04 20:06:20 +08:00
世界 b4d294c05e Fix TUIC read buffer 2025-06-04 20:03:51 +08:00
世界 83cf5f5c6a Fix ws closed error message 2025-05-27 14:30:07 +08:00
世界 e7b3a8eebe Fix vmess read request 2025-05-27 14:11:05 +08:00
世界 ee3a42a67e Fix none method read buffer 2025-05-27 14:03:48 +08:00
世界 50227c0f5f Fix sniff action 2025-05-26 18:24:35 +08:00
世界 bc5eb1e1a5 Fix RoutePacketConnectionEx 2025-05-24 08:14:43 +08:00
世界 995267a042 Remove wrong ALPNs in DOH/DOH3 2025-05-24 08:00:13 +08:00
世界 41226a6075 Fix interface finder 2025-05-23 10:57:38 +08:00
世界 81d32181ce Fix update route address set 2025-05-20 19:46:54 +08:00
世界 c5ecca3938 Bump version 2025-05-18 16:48:44 +08:00
世界 900888731c Fix DNS reject response 2025-05-13 18:05:31 +08:00
世界 13e648e4b1 Fix set edns0 subnet 2025-05-07 15:12:17 +08:00
世界 aff12ff671 Bump version 2025-05-05 09:37:47 +08:00
世界 101fb88255 Fix allocator put 2025-05-05 09:37:44 +08:00
世界 8b489354e4 Undeprecate the block outbound 2025-05-04 18:45:53 +08:00
世界 7dea6eb7a6 Fix missing read waiter for cancelers 2025-05-04 18:14:21 +08:00
世界 af1bfe4e3e Make rule_set.format optional 2025-05-04 18:14:21 +08:00
世界 d574e9eb52 Update smux to v1.5.34 2025-04-30 19:39:15 +08:00
世界 2d7df1e1f2 Fix hysteria bytes format 2025-04-29 20:45:19 +08:00
世界 1c0ffcf5b1 Fix counter position in auto redirect dnat rules 2025-04-28 11:20:23 +08:00
世界 348cc39975 Bump version 2025-04-27 21:33:31 +08:00
世界 987899f94a Fix usages of wireguard listener 2025-04-27 21:29:23 +08:00
世界 d8b2d5142f Fix panic on some stupid input 2025-04-25 16:03:58 +08:00
世界 134802d1ee Fix ssh outbound 2025-04-25 16:03:57 +08:00
世界 e5e81b4de1 Fix wireguard listening 2025-04-25 16:03:57 +08:00
世界 300c961efa option: Fix listable again and again 2025-04-25 16:03:57 +08:00
世界 7c7f512405 option: Fix omitempty reject method 2025-04-25 16:03:57 +08:00
世界 03e8d029c2 release: Fix apt-get install 2025-04-25 16:03:57 +08:00
世界 787b5f1931 Fix set wireguard reserved on Linux 2025-04-25 16:03:57 +08:00
世界 56a7624618 Fix vmess working with zero uuids 2025-04-25 16:03:57 +08:00
世界 3a84acf122 Fix hysteria1 server panic 2025-04-25 16:03:57 +08:00
世界 f600e02e47 Fix DNS crash 2025-04-25 16:03:57 +08:00
世界 e6d19de58a Fix overriding address 2025-04-22 14:55:44 +08:00
dyhkwongandGitHub f2bbf6b2aa Fix sniffer errors override each others
* Fix sniffer errors override each others

* Do not return ErrNeedMoreData if header is not expected
2025-04-22 14:44:55 +08:00
c54d50fd36 Fix websocket detour
Signed-off-by: trimgop <20010323+trimgop@users.noreply.github.com>
Co-authored-by: trimgop <20010323+trimgop@users.noreply.github.com>
2025-04-22 14:44:34 +08:00
世界 6a051054db release: Fix packages 2025-04-19 19:12:01 +08:00
世界 49498f6439 Bump version 2025-04-18 08:54:40 +08:00
世界 144a890c71 release: Add openwrt packages 2025-04-18 08:54:40 +08:00
世界 afb4993445 Fix urltest outbound 2025-04-18 08:54:40 +08:00
世界 4c9455b944 Fix wireguard endpoint 2025-04-18 08:54:40 +08:00
世界 5fdc051a08 Fix override_port in direct inbound 2025-04-16 17:04:13 +08:00
世界 cb68a40c43 documentation: Update actual behaviors of auto_redirect and strict_route 2025-04-12 13:06:16 +08:00
纳西妲 · Nahidaand世界 023218e6e7 Fix build will fail when use space to split each tag 2025-04-12 13:06:16 +08:00
世界 2a24b94b8d Minor fixes 2025-04-12 13:06:15 +08:00
世界 c6531cf184 Fix NTP service 2025-04-12 13:06:15 +08:00
世界 d4fa0ed349 Improve auto redirect 2025-04-12 13:06:10 +08:00
世界 10874d2dc4 Bump version 2025-04-08 14:34:09 +08:00
Fei1Yangand世界 5adaf1ac75 Mark config file as noreplace for rpm 2025-04-08 14:21:08 +08:00
世界 9668ea69b8 Fix windows process searcher 2025-04-08 14:16:27 +08:00
testingand世界 ae9bc7acf1 documentation: Fix typo
Signed-off-by: testing <58134720+testing765@users.noreply.github.com>
2025-04-08 14:16:23 +08:00
世界 594ee480a2 option: Fix listable 2025-04-08 14:16:23 +08:00
世界 a15b5a2463 Fix no_drop not work 2025-04-08 14:16:23 +08:00
Mahdiand世界 991e755789 Fix conn copy 2025-04-08 14:16:22 +08:00
世界 97d41ffde8 Improve pause management 2025-04-08 14:16:22 +08:00
世界 24af0766ac Fix uTP sniffer 2025-04-08 14:16:22 +08:00
世界 af17eaa537 Improve sniffer 2025-04-08 14:16:22 +08:00
世界 3adc10a797 Fix hysteria2 close 2025-04-08 14:16:22 +08:00
xchacha20-poly1305and世界 5eeef6b28e Fix multiple trackers 2025-04-08 14:16:22 +08:00
世界 f4c29840c3 Fix DNS sniffer 2025-03-31 20:45:04 +08:00
世界 47fc3ebda4 Add duplicate tag check 2025-03-29 23:10:22 +08:00
世界 9774a659b0 Fix DoQ / truncate DNS message 2025-03-29 17:41:22 +08:00
世界 2e4a6de4e7 release: Fix read tag 2025-03-27 20:30:57 +08:00
世界 a530e424e9 Bump version 2025-03-27 18:17:39 +08:00
世界 0bfd487ee9 Fix udpnat2 handler again 2025-03-27 18:17:39 +08:00
世界 6aae834493 release: Fix workflow 2025-03-27 18:17:39 +08:00
世界 f56131f38e Make linter happy 2025-03-24 20:38:42 +08:00
世界 273a11d550 Fix crash on udpnat2 handler 2025-03-24 18:14:32 +08:00
世界 ae8ce75e41 Fix websocket crash 2025-03-24 17:44:14 +08:00
世界 d6d94b689f release: Replace goreleaser build with scripts 2025-03-24 13:48:37 +08:00
世界 30d785f1ee release: Use fake goreleaser key 2025-03-21 22:25:51 +08:00
世界 db5ec3cdfc Fix connectionCopyEarly 2025-03-21 10:51:16 +08:00
世界 9aca54d039 Fix socks5 UDP 2025-03-16 14:46:44 +08:00
世界 d55d5009c2 Fix processing multiple sniffs 2025-03-16 09:21:54 +08:00
世界 4f3ee61104 Fix copy early conn 2025-03-15 08:09:04 +08:00
世界 96eb98c00a Fix httpupgrade crash 2025-03-14 17:17:28 +08:00
世界 68ce9577c6 Fix context in v2ray http transports 2025-03-14 17:07:17 +08:00
世界 3ae036e997 Downgrade goreleaser to stable since nfpm fixed 2025-03-13 18:53:19 +08:00
世界 5da2d1d470 release: Fix goreleaser version 2025-03-12 16:15:50 +08:00
世界 8e2baf40f1 Bump version 2025-03-11 20:18:34 +08:00
世界 c24c40dfee platform: Fix android start 2025-03-11 20:18:34 +08:00
世界 32e52ce1ed Fix udp nat for fakeip 2025-03-11 19:09:27 +08:00
世界 ed46438359 release: Use nightly goreleaser to fix rpm bug 2025-03-11 13:29:08 +08:00
世界 0b5490d5a3 Fix resolve domain for WireGuard 2025-03-11 12:02:25 +08:00
2d73ef511d Fix grpclite memory leak
Co-authored-by: talrasha007 <talrasha007@gmail.om>
2025-03-10 14:48:02 +08:00
Mahdiand世界 63e6c85f6f Fix shadowsocks UoT 2025-03-10 14:47:59 +08:00
世界 8946a6d2d0 release: Use latest goreleaser 2025-03-09 15:27:04 +08:00
世界 d3132645fb documentation: Fix description of the UoT protocol 2025-03-09 15:26:42 +08:00
世界 373f158fe0 Fix download external ui with query params 2025-03-09 15:26:36 +08:00
世界 ce36835fab Fix override destination 2025-03-09 15:25:06 +08:00
世界 619fa671d7 Skip binding to the default interface as it will fail on some Android devices 2025-02-26 07:25:35 +08:00
世界 eb07c7a79e Bump version 2025-02-24 07:27:55 +08:00
Gavin Luoand世界 7eb3535094 release: Fix systemd permissions 2025-02-24 07:27:55 +08:00
世界 93b68312cf platform: Add update WIFI state func 2025-02-23 08:35:30 +08:00
世界 97ce666e43 Fix http.FileServer short write 2025-02-23 08:35:30 +08:00
世界 4000e1e66d release: Fix update android version 2025-02-23 08:35:30 +08:00
世界 270740e859 Fix crash on route address set update 2025-02-23 08:35:30 +08:00
世界 6cad142cfe Bump Go to go1.24 2025-02-23 08:35:30 +08:00
世界 093013687c Fix sniff QUIC hidden in three or more packets 2025-02-18 18:14:59 +08:00
世界 ff31c469a0 Override version 2025-02-11 15:55:15 +08:00
世界 fbe390268c Bump version 2025-02-11 01:32:14 +08:00
世界 07ac01dcb7 platform: Update NDK to r28 2025-02-11 01:32:14 +08:00
ReleTorand世界 badfdb62cd documentation: Fixes 2025-02-11 01:32:14 +08:00
printferand世界 986a410b30 documentation: Fix migration links 2025-02-11 01:32:14 +08:00
世界 9db2d58545 Fix override address 2025-02-11 01:32:14 +08:00
世界 4eed46ac59 Fix respond ICMP echo 2025-02-10 15:12:10 +08:00
世界 abc38d1dab Fix udpnat2 crash 2025-02-10 15:11:26 +08:00
世界 8d6c4f1289 release: Skip testflight when another build in review 2025-02-06 12:02:47 +08:00
世界 a2d40eb8b8 Fix override UDP destination 2025-02-06 11:20:35 +08:00
世界 17b502bb4b Update dependencies 2025-02-06 09:08:52 +08:00
世界 a0d4421085 Update quic-go to v0.49.0 2025-02-06 08:50:21 +08:00
世界 0d443072d1 Fix panic in auto-redirect initialize 2025-02-06 08:49:25 +08:00
世界 c9fb99b799 Fix missing ENOTCONN in IsClosed check 2025-02-06 08:48:49 +08:00
世界 92d245ad04 Bump version 2025-02-05 09:59:52 +08:00
世界 0908627297 Fix crash on remote rule-set stop 2025-02-05 08:58:10 +08:00
世界 7f79458b4f Minor updates 2025-02-01 19:49:33 +08:00
世界 9b4c11ba95 Fix rule-set not closed 2025-02-01 19:49:33 +08:00
世界 27c31eac5d Fix local rule-set not updated 2025-02-01 19:42:21 +08:00
世界 bab8dc0b82 Fix missing handshake for early conn 2025-01-31 12:57:35 +08:00
世界 d09d2fb665 Bump version 2025-01-30 15:09:54 +08:00
世界 e64cf3b7df Do not set address sets to routes on Apple platforms
Network Extension was observed to stop for unknown reasons
2025-01-27 13:40:39 +08:00
世界 9b73222314 documentation: Bump version 2025-01-27 10:53:14 +08:00
世界 3923b57abf release: Update NDK to r28-beta3 2025-01-27 10:53:14 +08:00
世界 4807e64609 documentation: Fix typo 2025-01-27 10:04:07 +08:00
世界 eeb37d89f1 Fix rule-set upgrade command 2025-01-27 09:50:27 +08:00
世界 08c1ec4b7e Fix legacy routes 2025-01-27 09:50:27 +08:00
HystericalDragonand世界 6b4cf67add Fix endpoints not close 2025-01-27 09:50:27 +08:00
世界 e65926fd08 Fix tests 2025-01-13 15:14:30 +08:00
世界 f2ec319fe1 Fix system time 2025-01-13 15:14:30 +08:00
世界 32377a61b7 Add port hopping for hysteria2 2025-01-13 15:14:30 +08:00
世界 7aac801ccd tun: Set address sets to routes 2025-01-13 15:14:30 +08:00
世界 96fdf59ee4 Fix default dialer on legacy xiaomi systems 2025-01-13 15:14:30 +08:00
世界 50b8f3ab94 Add rule-set merge command 2025-01-13 15:14:30 +08:00
世界 ff7aaf977b Fix DNS match 2025-01-13 15:14:30 +08:00
世界 9a1efbe54d Fix domain strategy 2025-01-13 15:14:30 +08:00
世界 906c21f458 Fix time service 2025-01-13 15:14:30 +08:00
世界 d5e7af7a7e Fix socks5 UDP implementation 2025-01-13 15:14:30 +08:00
世界 4d41f03bd5 clash-api: Fix missing endpoints 2025-01-13 15:14:30 +08:00
世界 30704a15a7 hysteria2: Add more masquerade options 2025-01-13 15:14:30 +08:00
世界 83889178ed Improve timeouts 2025-01-13 15:14:30 +08:00
世界 1d2720bf5e Add UDP timeout route option 2025-01-13 15:14:30 +08:00
世界 c4b6d0eadb Make GSO adaptive 2025-01-13 15:14:30 +08:00
世界 0c66888691 Fix lint 2025-01-13 15:14:30 +08:00
世界 68781387fe refactor: WireGuard endpoint 2025-01-13 15:14:30 +08:00
世界 fd299a0961 refactor: connection manager 2025-01-13 15:14:30 +08:00
世界 285a82050c documentation: Fix typo 2025-01-13 15:14:30 +08:00
世界 2dbb8c55c9 Add override destination to route options 2025-01-13 15:14:30 +08:00
世界 effcf39469 Add dns.cache_capacity 2025-01-13 15:14:30 +08:00
世界 9db9484863 Refactor multi networks strategy 2025-01-13 15:14:30 +08:00
世界 ca813f461b documentation: Remove unused titles 2025-01-13 15:14:30 +08:00
世界 bb46cdb2b3 Add multi network dialing 2025-01-13 15:14:30 +08:00
世界 dcb10c21a1 documentation: Merge route options to route actions 2025-01-13 15:14:29 +08:00
世界 05ea0ca00e Add network_[type/is_expensive/is_constrained] rule items 2025-01-13 15:14:29 +08:00
世界 c098f282b1 Merge route options to route actions 2025-01-13 15:14:29 +08:00
世界 ecf82d197c refactor: Platform Interfaces 2025-01-13 15:14:29 +08:00
世界 9afe75586a refactor: Extract services form router 2025-01-13 15:14:29 +08:00
世界 a1be455202 refactor: Modular network manager 2025-01-13 15:14:29 +08:00
世界 19fb214226 refactor: Modular inbound/outbound manager 2025-01-13 15:14:29 +08:00
世界 28ec898a8c documentation: Add rule action 2025-01-13 15:14:29 +08:00
世界 467b1bbeeb documentation: Update the scheduled removal time of deprecated features 2025-01-13 15:14:29 +08:00
世界 02ab8ce806 documentation: Remove outdated icons 2025-01-13 15:14:29 +08:00
世界 ce69e620e9 Migrate bad options to library 2025-01-13 15:14:29 +08:00
世界 1133cf3ef5 Implement udp connect 2025-01-13 15:14:29 +08:00
世界 59a607e303 Implement new deprecated warnings 2025-01-13 15:14:29 +08:00
世界 313be3d7a4 Improve rule actions 2025-01-13 15:14:29 +08:00
世界 4fe40fcee0 Remove unused reject methods 2025-01-13 15:14:29 +08:00
世界 e233fd4fe5 refactor: Modular inbounds/outbounds 2025-01-13 15:14:29 +08:00
世界 9f7683818f Implement dns-hijack 2025-01-13 15:14:29 +08:00
世界 179e3cb2f5 Implement resolve(server) 2025-01-13 15:14:29 +08:00
世界 41b960552d Implement TCP and ICMP rejects 2025-01-13 15:14:29 +08:00
世界 8304295c48 Crazy sekai overturns the small pond 2025-01-13 15:14:29 +08:00
世界 253b41936e Bump version 2025-01-11 20:58:00 +08:00
世界 ce5b4b06b5 auto-redirect: Fix fetch interfaces 2025-01-07 21:24:52 +08:00
世界 50f5006c43 Fix leak in reality server 2025-01-07 17:27:10 +08:00
世界 e42ff22c2e quic: Fix source not unwrapped 2025-01-07 17:27:10 +08:00
世界 578571b972 Bump version 2025-01-02 15:21:13 +08:00
世界 935beca45d Fix check interface 2025-01-01 12:19:56 +08:00
世界 3e246f1173 Fix vmess mux leak 2025-01-01 12:18:56 +08:00
世界 1bc27a32c2 Fix linter configuration 2025-01-01 12:18:56 +08:00
世界 bc2e3960e4 Enable fix stack for Android 7 and 9 2024-12-28 15:06:57 +08:00
世界 9c4ab0bf33 Bump version 2024-12-21 17:20:56 +08:00
世界 27bdef34c7 release: Fix create app store version 2024-12-21 17:20:56 +08:00
世界 3c00099ed4 Fix process rule check 2024-12-21 17:15:41 +08:00
世界 2babf07f9a Fix wireguard 2024-12-21 16:07:19 +08:00
世界 4795ed712b release: Fix android version 2024-12-21 16:07:19 +08:00
世界 d4cd564dbe release: Fix check tag 2024-12-21 16:07:19 +08:00
世界 1676e13d3e Bump version 2024-12-17 13:43:17 +08:00
世界 50576084c6 release: Add publish testflight 2024-12-17 13:43:17 +08:00
世界 3a94e792a2 documentation: Fix uid range example 2024-12-15 13:56:25 +08:00
世界 9f69f41f68 Update http file server usage 2024-12-15 13:56:25 +08:00
世界 e6847ff50e Add locale support ford deprecated messages 2024-12-15 02:57:08 +08:00
世界 2ac2589d14 release: Fix publish testflight 2024-12-15 02:57:08 +08:00
世界 64a94e8144 release: Fix UpdateBuildForAppStoreVersion 2024-12-14 20:18:36 +08:00
世界 3ed8a5c5d1 wireguard: Fix windows tun read 2024-12-14 20:18:36 +08:00
世界 0a922c6fe3 release: Fix Xcode version 2024-12-14 20:18:36 +08:00
世界 52f3a4226c release: Add app store connect actions 2024-12-14 20:18:36 +08:00
世界 483d9fa503 release: Fix check prerelease 2024-12-14 20:18:36 +08:00
世界 dd9de694f8 release: Update macOS project version atomically 2024-12-14 20:18:36 +08:00
世界 5cdf5c1d9e release: Fix play release 2024-12-14 20:18:36 +08:00
世界 cec7e47086 Add workaround for bulkBarrierPreWrite: unaligned arguments panic 2024-12-14 20:18:36 +08:00
世界 1e6a3f1f0b release: Update debug iOS library build 2024-12-12 14:51:47 +08:00
世界 f0b6818b4c Add workaround for golang/go#68760 2024-12-10 10:30:42 +08:00
世界 3032317918 release: Add workflow build 2024-12-10 09:25:11 +08:00
世界 db22f61846 Update NDK to r28-rc1 2024-12-09 15:11:38 +08:00
世界 8c3a98faa2 wireguard: Fix set reserved 2024-12-05 17:58:09 +08:00
世界 1e787cb607 Fix initial traffic value 2024-12-03 21:43:56 +08:00
世界 558585b01d release: Set upload threads to 5 2024-12-03 17:36:19 +08:00
世界 6e7ecbd4f5 Fix wireguard listen 2024-11-30 12:20:48 +08:00
世界 5a661cde67 clashapi: Remove traffic loop 2024-11-28 12:57:56 +08:00
世界 3cc0e87cfb Bump version 2024-11-27 10:45:24 +08:00
世界 effea5a2b3 Update quic-go to v0.48.2 2024-11-27 10:37:00 +08:00
世界 7f168c5ec6 release: Clean before iOS build 2024-11-27 10:35:20 +08:00
Zephyrusoand世界 0e9129ee3f clashapi: Add mode list 2024-11-27 10:34:47 +08:00
世界 1086d5e665 Fix test tags 2024-11-23 12:20:12 +08:00
世界 d9102ba599 Fix build on bsd systems 2024-11-23 12:16:46 +08:00
世界 17019f1729 Bump version 2024-11-20 12:03:42 +08:00
世界 6be07ed51f Fix start watcher 2024-11-20 11:32:53 +08:00
世界 af58e3bec0 Fix debug listener 2024-11-20 11:32:53 +08:00
世界 e58b549d0f Fix "Fix reloading of tls.certificate_path, tls.key_path and tls.ech.key_path" 2024-11-18 19:03:24 +08:00
zeetexand世界 1d81996ceb Fix reloading of tls.certificate_path, tls.key_path and tls.ech.key_path 2024-11-18 14:09:54 +08:00
世界 97c47e72c4 Update dependencies 2024-11-18 14:07:00 +08:00
世界 122be275b0 release: Notarize macos standalone manually with --no-s3-acceleration 2024-11-18 14:07:00 +08:00
世界 0bb1132034 selector: Fix crash before start 2024-11-18 14:07:00 +08:00
世界 de14337b4b Fix deprecated check 2024-11-18 14:07:00 +08:00
世界 1e07633914 Downgrade NDK to 26.2.11394342 2024-11-18 13:10:06 +08:00
世界 e3e203844e Fix decompile rule-set 2024-11-18 13:10:06 +08:00
世界 84a102a6ef Fix mux stream accept 2024-11-09 12:26:49 +08:00
世界 f1c76c4dde Fix deprecated version check 2024-11-08 20:31:29 +08:00
世界 8df0aa5719 Downgrade NDK to r26d 2024-11-07 19:58:53 +08:00
世界 21faadb992 Uniq deprecated notes 2024-11-07 19:58:53 +08:00
世界 88099a304a platform: Add SendNotification 2024-11-06 12:53:32 +08:00
世界 f504fb0d46 Revert "platform: Add openURL event"
This reverts commit 718cffea9a.
2024-11-05 20:03:39 +08:00
世界 1d517b6ca5 platform: Add link flags 2024-11-05 18:28:13 +08:00
世界 b702d0b67a Update dependencies 2024-11-05 18:28:03 +08:00
世界 a001e30d8b platform: Remove SetTraceback("all") 2024-11-05 18:28:02 +08:00
世界 cdb93f0bb2 Fix "Fix metadata context" 2024-11-05 18:27:51 +08:00
世界 718cffea9a platform: Add openURL event 2024-11-05 18:27:51 +08:00
世界 9585c53e9f release: Add upload dSYMs 2024-10-30 15:35:20 +08:00
世界 d66d5cd457 Add deprecated warnings 2024-10-30 14:01:28 +08:00
世界 8c143feec8 Increase timeouts 2024-10-30 14:01:28 +08:00
世界 419058f466 Update NDK version 2024-10-30 14:01:13 +08:00
世界 1a6047a61b Fix metadata context 2024-10-30 14:01:13 +08:00
世界 327bb35ddd Rename HTTP start context 2024-10-30 14:01:13 +08:00
世界 6ed9a06394 Fix rule-set format 2024-10-25 22:12:47 +08:00
世界 b80ec55ba0 Bump version 2024-10-16 21:11:31 +08:00
世界 08718112ae Retry system forwarder listen 2024-10-16 20:47:26 +08:00
956ee361df Fix corrected improper use of reader and bReader
Co-authored-by: x_123 <x@a>
2024-10-16 20:45:18 +08:00
世界 e93d0408be documentation: Fix release notes 2024-10-16 20:45:13 +08:00
世界 137832ff3e Bump version 2024-10-13 21:17:59 +08:00
世界 3ede29fb6d documentation: Improve theme 2024-10-13 13:07:18 +08:00
世界 82ab68b542 build: Fix find NDK 2024-10-13 13:07:18 +08:00
renovate[bot]and世界 e55723d84d [dependencies] Update actions/checkout digest to eef6144 2024-10-13 13:07:18 +08:00
世界 2f4d2d97f9 auto-redirect: Let fw4 take precedence over prerouting 2024-10-13 13:07:18 +08:00
世界 926d6f769e Update utls to v1.6.7 2024-10-13 13:07:02 +08:00
srk24and世界 846777cd0c Add process_path_regex rule type 2024-10-13 13:07:02 +08:00
世界 06533b7a3b clash-api: Add PNA support 2024-10-13 13:07:02 +08:00
世界 4a95558c53 Add RDP sniffer 2024-10-13 13:07:02 +08:00
世界 e39a28ed5a Add SSH sniffer 2024-10-13 13:07:02 +08:00
世界 b2c708a3e6 Write close error to log 2024-10-13 13:07:02 +08:00
世界 a9209bb3e5 Add AdGuard DNS filter support 2024-10-13 13:07:02 +08:00
世界 9dc3bb975a Improve QUIC sniffer 2024-10-13 13:07:02 +08:00
世界 3a7acaa92a Add inline rule-set & Add reload for local rule-set 2024-10-13 13:07:02 +08:00
世界 6bebe2483b Unique rule-set names 2024-10-13 13:07:02 +08:00
世界 93cf134995 Add accept empty DNS rule option 2024-10-13 13:07:02 +08:00
世界 ff7d8c9ba8 Add custom options for TUN auto-route and auto-redirect 2024-10-13 13:07:02 +08:00
世界 50f07b42f6 Improve base DNS transports & Minor fixes 2024-10-13 13:07:02 +08:00
世界 db3a0c636d Add auto-redirect & Improve auto-route 2024-10-13 13:07:02 +08:00
世界 fec38f85cd Add rule-set decompile command 2024-10-13 13:07:02 +08:00
世界 dcb0141646 Add IP address support for rule-set match match 2024-10-13 13:07:02 +08:00
世界 f4f5a3c925 Improve usages of json.Unmarshal 2024-10-13 13:07:02 +08:00
世界 9b8d6c1b73 Bump rule-set version 2024-10-13 13:07:02 +08:00
世界 2f776168de Implement read deadline for QUIC based UDP inbounds 2024-10-13 13:07:02 +08:00
世界 923d3222b0 WTF is this 2024-10-13 13:07:01 +08:00
世界 bda93d516b platform: Fix clash server reload on android 2024-10-13 13:06:57 +08:00
世界 7eec3fb57a platform: Add log update interval 2024-10-13 13:06:57 +08:00
世界 b1d75812c5 platform: Prepare connections list 2024-10-13 13:06:55 +08:00
世界 d44e7d9834 Drop support for go1.18 and go1.19 2024-10-07 04:58:48 +08:00
世界 369bc7cea3 Add DTLS sniffer 2024-10-07 04:58:48 +08:00
iosmanthusand世界 4b7a83da16 Introduce bittorrent related protocol sniffers
* Introduce bittorrent related protocol sniffers

including, sniffers of
1. BitTorrent Protocol (TCP)
2. uTorrent Transport Protocol (UDP)

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Co-authored-by: 世界 <i@sekai.icu>
2024-10-07 04:58:48 +08:00
世界 0f7154afbd Update workflow to go1.23 2024-10-07 04:58:47 +08:00
世界 a06d10c3bc Bump version 2024-10-07 04:34:48 +08:00
世界 63cc6cc76c Fix Makefile 2024-10-07 04:34:48 +08:00
世界 d55c5b5cab documentation: Update package status 2024-10-07 04:34:48 +08:00
世界 b624c2dcc7 Fix context used by DNS outbounds 2024-10-07 04:34:48 +08:00
世界 9415444ebd Fix base path not applied to local rule-sets 2024-10-07 04:34:48 +08:00
世界 95606191d8 Add completions for linux packages 2024-10-07 04:34:48 +08:00
世界 e586d9e9bc Bump version 2024-09-20 23:37:06 +08:00
世界 8c7eaa4477 Fix docker build 2024-09-20 23:37:06 +08:00
世界 8464c8cb7c Fix version script 2024-09-20 21:10:15 +08:00
世界 39d7127651 Revert "Fix stream sniffer" 2024-09-20 20:40:02 +08:00
世界 e2077009c4 documentation: Update client status 2024-09-20 20:13:55 +08:00
世界 700a8eb425 Minor fixes 2024-09-20 20:13:14 +08:00
世界 3b0cba0852 Fix wireguard start 2024-09-20 20:12:52 +08:00
世界 f5554dd8b8 Bump version 2024-09-18 07:04:29 +08:00
世界 4d0362d530 Update macOS build workflow 2024-09-17 22:01:05 +08:00
世界 97ccd2ca04 documentation: Add sponsors page 2024-09-17 18:47:33 +08:00
世界 1ed6654ad4 Add mips64 build 2024-09-15 12:12:25 +08:00
世界 5385f75f53 documentation: Update build requirements 2024-09-15 12:10:00 +08:00
世界 ad97d4e11f Fix disconnected interface selected as default in windows 2024-09-15 11:59:32 +08:00
世界 09d4e91b77 Fix cached conn eats up read deadlines 2024-09-15 11:56:04 +08:00
Monicaand世界 3dbdda9555 documentation: Fix dial.zh.md
The Chinese documentation incorrectly stated that the default value for the domain_strategy field in the direct outbound module is dns.strategy. The correct value should be inbound.domain_strategy, as specified in the English documentation. This commit corrects the Chinese documentation to align with the accurate behavior described in the English version.

Signed-off-by: Monica <1379531829@qq.com>
2024-09-15 11:53:03 +08:00
世界 1f4ed6ff8f documentation: Update client status 2024-09-13 10:09:08 +08:00
世界 6ddbe19bc0 platform: Update bundle id 2024-09-12 17:55:53 +08:00
世界 d7205ecc60 Fix Makefile 2024-09-12 17:55:53 +08:00
世界 9e243e0ff9 gomobile: Fix go mod version 2024-09-10 23:05:13 +08:00
世界 02bc3e0a0a Update quic-go to v0.47.0 2024-09-09 14:45:46 +08:00
世界 87be6dc235 Update README 2024-09-09 08:48:35 +08:00
世界 c1c30976dc Improve docker workflow 2024-09-08 11:11:47 +08:00
世界 9bac18bcd1 wireguard: Fix events chan leak 2024-09-08 10:07:12 +08:00
世界 ceda5cc95d clash-api: Fix bad redirect 2024-09-08 10:07:07 +08:00
世界 27d6b63e71 Fix stream sniffer 2024-09-08 10:07:07 +08:00
世界 b57abcc73c tfo: Fix build with go1.23 2024-08-27 11:24:51 +08:00
世界 f1147965dd documentation: Fix missing zh headline 2024-08-21 18:52:38 +08:00
世界 45f3234c73 documentation: Update package status 2024-08-21 11:39:07 +08:00
Mingye Wangand世界 aae3fded32 documentation: Two updates
* Copyedit documentation

Close #1378

* remove yum, go full on dnf

fixes #2049
2024-08-21 11:32:43 +08:00
世界 090494faf5 Do not close bug and enhancement issues 2024-08-21 08:09:15 +08:00
世界 db5719e22f Fix no error return when empty DNS cache retrieved 2024-08-20 23:23:48 +08:00
世界 064fb9b873 Fix direct dialer not resolving domain 2024-08-20 21:02:52 +08:00
世界 f6a1e123fc Make linter happy 2024-08-19 18:42:02 +08:00
世界 3066dfe3b3 Bump version 2024-08-19 10:43:09 +08:00
Liu Bingyanand世界 1128fdd8c7 documentation: Update injectable description 2024-08-19 07:40:31 +08:00
世界 cfd9879b17 documentation: Remove unused 2024-08-19 06:39:33 +08:00
世界 9ceb660c57 documentation: Announce that our apps on Apple platforms are no longer available 2024-08-19 06:39:33 +08:00
世界 7d00d7df28 Update quic-go to v0.46.0 2024-08-19 06:25:15 +08:00
世界 21b1ac26b9 Fix UDP conn stuck on sniff
This change only avoids permanent hangs. We need to implement read deadlines for UDP conns in 1.10 for server inbounds.
2024-08-18 11:27:12 +08:00
世界 7fec8d842e Update golangci-lint configuration 2024-08-18 11:17:01 +08:00
世界 07c678fb85 Fix crash on Android when using process rules 2024-08-18 10:23:28 +08:00
世界 baecfc7778 Update quic-go to v0.45.2 2024-08-18 10:23:17 +08:00
世界 07de36ecdb Fix tests 2024-08-03 12:46:38 +08:00
世界 2c8a8303cd dns: Minor fixes 2024-07-27 11:04:57 +08:00
ruokeqxand世界 e5991cae0b Use unix.SysctlRaw for macOS 2024-07-22 12:42:22 +08:00
世界 1349acfd5a Fix panic caused by possible generation of duplicate keys for domain_suffix 2024-07-17 16:02:17 +08:00
世界 98ff897f35 Fix reset outbounds 2024-07-13 17:46:22 +08:00
ayoohandGitHub 6144c8e340 Fix default end value of the rangeItem 2024-07-13 17:45:32 +08:00
HystericalDragonandGitHub c8caac9f67 Fix v2rayquic default NextProtos (#1934) 2024-07-11 23:34:09 +08:00
printferand世界 81e9eda357 documentation: Fix typo 2024-07-07 16:09:41 +08:00
世界 7cba3da108 shadowsocks: Fix packet process for AEAD multi-user server 2024-07-05 17:09:09 +08:00
世界 82d06b43e7 vless: Fix missing deadline interfaces 2024-07-05 17:08:10 +08:00
世界 a7ac91f573 Move legacy vless implemetation to library 2024-07-03 20:17:32 +08:00
世界 0540a95a43 Fix v2ray-plugin 2024-07-02 14:08:17 +08:00
世界 94707dfcdd Add name to errors from v2ray HTTP transports 2024-07-02 14:08:17 +08:00
世界 8a17043502 Fix command output for rule-set match 2024-06-26 12:26:35 +08:00
世界 b0aaa86806 Minor fixes 2024-06-25 13:14:45 +08:00
世界 8a2d3fbb28 Update quic-go to v0.45.1 & Filter HTTPS ipv4/6hint 2024-06-24 11:07:32 +08:00
renovate[bot]and世界 4652019608 [dependencies] Update docker/build-push-action action to v6 2024-06-24 10:24:13 +08:00
世界 06fa5abf63 Fix non-IP queries accepted by address filter rules 2024-06-24 10:13:16 +08:00
世界 996fbbf0c3 docs: Switch to venv 2024-06-24 10:10:49 +08:00
renovate[bot]and世界 142ff1b455 [dependencies] Update actions/checkout digest to 692973e 2024-06-17 13:05:54 +08:00
世界 74d662f7a3 Fix always create package manager 2024-06-11 21:16:57 +08:00
世界 085f603377 Bump version 2024-06-09 13:20:56 +08:00
世界 460fae83dc Fix quic-go is caching dialErr since v0.43.0 2024-06-09 13:15:40 +08:00
世界 bb9bd9bff6 Fix package manager start order 2024-06-09 07:21:50 +08:00
世界 c2354ebf25 Bump version 2024-06-08 22:00:46 +08:00
世界 c1f4755c4e Fix parse UDP DNS server with addr:port address 2024-06-08 22:00:46 +08:00
世界 0ca5909b06 Stop passing device sleep events on Android and Apple platforms 2024-06-08 22:00:46 +08:00
世界 e77a8114c5 Fix rule-set start order 2024-06-08 22:00:46 +08:00
renovate[bot]and世界 f1393235ff [dependencies] Update actions/checkout digest to a5ac7e5 2024-06-08 22:00:46 +08:00
renovate[bot]and世界 bdba2365de [dependencies] Update goreleaser/goreleaser-action action to v6 2024-06-08 18:58:22 +08:00
世界 ce0da5b557 Fix typo 2024-06-08 18:58:14 +08:00
世界 3853201412 Bump version 2024-06-07 19:07:46 +08:00
世界 7003ef40a3 Fix wireguard start 2024-06-07 19:07:46 +08:00
世界 59ec92228c Fix repeatedly no route logs 2024-06-07 15:03:48 +08:00
世界 0eeb2da323 Fix reset HTTP3 DNS transport 2024-06-06 22:28:43 +08:00
世界 977b0fac02 Fix get source address from X-Forwarded-For 2024-06-06 22:21:37 +08:00
世界 51964801ff Fix enforced power listener on windows 2024-06-06 22:20:23 +08:00
世界 e08c052fc9 Fix wireguard client bind 2024-06-06 22:20:21 +08:00
世界 53927d8bbd Remove logs in router initialize 2024-06-06 22:20:19 +08:00
世界 968b9bc217 Fix crash on *bsd 2024-06-06 22:20:17 +08:00
lgjintand世界 69dc87aa6d Fix set KDE6 system proxy 2024-06-06 22:20:14 +08:00
Fei1Yangand世界 4193df375f build: Remove vendor in RPM packages 2024-05-27 19:28:15 +08:00
世界 5ff7006326 Bump version 2024-05-25 11:30:43 +08:00
世界 a89107ea9d documentation: Bump version 2024-05-23 14:57:45 +08:00
世界 9ffdbba2ed documentation: Add manuel for mitigating tunnelvision attacks 2024-05-23 14:57:27 +08:00
世界 65c71049ea documentation: Update DNS manual 2024-05-23 14:57:26 +08:00
世界 7d4e6a7f4e dialer: Allow nil router 2024-05-23 14:57:26 +08:00
世界 d612620c5d Add rule-set match command 2024-05-23 14:57:26 +08:00
世界 8a9a77a438 Add bypass_domain and search_domain platform HTTP proxy options 2024-05-23 14:57:26 +08:00
世界 a2098c18e1 Handle includeAllNetworks 2024-05-23 14:57:26 +08:00
世界 cf2181dd3a Update gVisor to 20240422.0 2024-05-23 14:57:15 +08:00
世界 5899e95ff1 Update quic-go to v0.43.1 2024-05-21 15:12:05 +08:00
世界 d7160c19cf Fixed order for Clash modes 2024-05-21 15:12:05 +08:00
世界 da9e22b4e6 Add custom prefix support in EDNS0 client subnet options 2024-05-21 15:12:05 +08:00
气息and世界 0e120f8a44 Fix DNS exchange index
Signed-off-by: 气息 <qdshizh@gmail.com>
2024-05-21 15:12:05 +08:00
dyhkwongand世界 d918863ac5 Always disable cache for fake-ip servers 2024-05-21 15:12:04 +08:00
PuerNyaand世界 2ae192305c Always disable cache for fake-ip DNS transport if independent_cache disabled 2024-05-21 15:12:03 +08:00
世界 71d1879bd6 Fix missing rule_set_ipcidr_match_source item in DNS rules 2024-05-21 15:12:03 +08:00
世界 917514e09f Improve DNS truncate behavior 2024-05-21 15:12:03 +08:00
世界 5327aeaea4 Fix DNS fallthrough incorrectly 2024-05-21 15:12:03 +08:00
世界 93ae3f7a1e Add rejected DNS response cache support 2024-05-21 15:12:03 +08:00
世界 f24a2aed7d Add support for client-subnet DNS options 2024-05-21 15:12:03 +08:00
世界 0517ceef76 Add address filter support for DNS rules 2024-05-21 15:12:02 +08:00
世界 830ea46932 Fix timezone for Android and iOS 2024-05-21 15:11:52 +08:00
世界 cd0fcd5ddc Improve loopback detector 2024-05-21 15:11:52 +08:00
世界 003176f069 Remove unused fakeip packet conn 2024-05-21 15:11:52 +08:00
世界 71d92518c1 Set the default TCP keep alive period 2024-05-21 15:11:52 +08:00
世界 b5dcd6bf59 Migrate ntp service to library 2024-05-21 15:11:52 +08:00
世界 11c7b4a866 Handle Windows power events 2024-05-21 15:11:52 +08:00
世界 ee14135298 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-05-21 15:11:41 +08:00
世界 cbcf005f37 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-05-18 17:22:14 +08:00
世界 daee0b154e badtls: Support uTLS and TLS ECH for read waiter 2024-05-18 17:22:14 +08:00
世界 d530c724c0 Bump version 2024-05-18 16:53:05 +08:00
世界 7f698c1104 Fix hysteria2 panic 2024-05-18 16:20:32 +08:00
renovate[bot]and世界 7a4a44c6d2 [dependencies] Update golangci/golangci-lint-action action to v6 2024-05-10 19:49:20 +08:00
世界 44277e5dd2 Fix urltest logic 2024-05-10 17:41:20 +08:00
世界 1f470c69c4 Update docker workflow 2024-05-03 19:33:20 +08:00
世界 742adacce7 Bump version 2024-05-03 17:38:26 +08:00
世界 32e1d5a5e2 documentation: Update package status 2024-05-03 17:38:26 +08:00
世界 cb9f4ce597 Minor fixes 2024-05-03 15:34:47 +08:00
世界 4b1a6185ba Fix DNF repo 2024-04-29 23:13:04 +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
dyhkwongand世界 3c85b8bc48 Fix fake-ip mapping 2024-04-29 11:58:20 +08:00
HystericalDragonand世界 8b8fb4344c Remove unused encoder 2024-04-29 11:58:20 +08:00
renovate[bot]and世界 e85a38e059 [dependencies] Update golangci/golangci-lint-action action to v5 2024-04-29 11:58:20 +08:00
renovate[bot]and世界 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
世界 0ae1afef44 Bump version 2024-04-23 14:14:40 +08:00
世界 a5e2a4073b Update dependencies 2024-04-23 14:03:55 +08:00
世界 b6cb3948a3 Fix initial packet MTU for QUIC protocols 2024-04-23 11:12:31 +08:00
世界 7b0f5061dc Fix loopback detector 2024-04-17 21:45:54 +08:00
世界 76f20482f7 Fix linux repo 2024-04-12 22:52:37 +08:00
世界 e735a5bdc8 Update dependencies 2024-04-12 22:52:37 +08:00
世界 70381e93c8 Bump version 2024-04-08 11:55:41 +08:00
世界 07a40716e8 Update dependencies 2024-04-08 11:45:00 +08:00
世界 5fea5956db Fix linux network monitor 2024-04-08 11:45:00 +08:00
世界 d20a389043 Fix timer usage 2024-04-08 11:45:00 +08:00
世界 4a4180bde5 Fixes for QUIC protocols 2024-04-08 11:44:55 +08:00
世界 7ecb6daabb Update dependencies 2024-03-29 04:52:06 +00:00
世界 712bdd9ae5 Fix fury release 2024-03-25 10:44:57 +08:00
世界 a3b74591a7 Fix syscall packet read waiter 2024-03-25 01:49:59 +08:00
世界 2f4abc6523 Fix canceler 2024-03-24 19:12:07 +08:00
dyhkwongandGitHub 965ab075d9 Fix source_ip_is_private matching 2024-03-24 19:06:02 +08:00
世界 ed2f8b9637 Bump version 2024-03-23 20:50:45 +08:00
世界 0f71ce5120 tun: Fix GSO batch size 2024-03-22 14:54:57 +08:00
世界 f8085ab111 Fix Makefile 2024-03-21 23:32:02 +08:00
世界 f61b272cbf Fix WireGuard client bind 2024-03-20 10:52:24 +08:00
世界 59d437b9d2 Use local legacy compiler 2024-03-19 13:53:34 +08:00
世界 a7338fdc2b Fix DNS panic 2024-03-19 12:17:32 +08:00
Puqns67and世界 d88860928e Fix the installation location of service files in prebuilded package 2024-03-19 12:13:59 +08:00
世界 20a2e38f47 Fix build for F-Droid 2024-03-17 21:43:22 +08:00
世界 acd438be23 Fix fury workflow 2024-03-17 21:43:22 +08:00
世界 e27fb51b54 Bump version 2024-03-16 12:05:58 +08:00
世界 adc38b26eb Fix Makefile 2024-03-15 18:06:37 +08:00
世界 7e943e743a Fix darwin interface monitor 2024-03-15 18:06:37 +08:00
世界 ceffcc0ad2 platform: Improve stop on apple platforms 2024-03-15 18:06:37 +08:00
世界 fdc451f7c6 platform: Fix missing log on apple platforms 2024-03-15 18:06:37 +08:00
世界 b48c471e6a Add repo release 2024-03-15 18:06:37 +08:00
世界 4b1fabd007 Fix lint workflow 2024-03-13 19:39:59 +08:00
世界 2b5eb1c59e Add sponsor link to issue template 2024-03-13 19:39:59 +08:00
世界 e2d3862e64 platform: reset network on invalid power events 2024-03-13 19:39:59 +08:00
世界 4f5e7b974d Fix crash in HTTP proxy server again 2024-03-10 16:53:58 +08:00
世界 21dedddd93 Update dependencies 2024-03-08 23:36:33 +08:00
世界 e02502bec0 Update go 1.20 2024-03-08 23:31:42 +08:00
世界 ba67633ee8 Fix missing source address in inbound logs in QUIC inbounds 2024-03-07 10:47:16 +08:00
世界 7fd9abe802 Bump version 2024-03-05 13:14:38 +08:00
世界 78a5f59202 documentation: Add link to F-Droid 2024-03-05 13:13:31 +08:00
世界 8d0da685d2 Update dependencies 2024-03-02 14:29:28 +08:00
世界 e6644f784e Fix crash in HTTP proxy server 2024-03-02 14:28:47 +08:00
世界 2b93b74d38 Fix SO_BINDTOIFINDEX usage 2024-02-29 13:03:05 +08:00
世界 dd52c26ae1 Don't return error in WireGurad client bind 2024-02-28 15:28:38 +08:00
世界 f288e3898b Bump version 2024-02-28 15:10:28 +08:00
世界 1bc893a73a documentation: Update privacy policy to make Play Store happy 2024-02-28 15:10:28 +08:00
世界 7359fdf195 platform: Upgrade NDK to the latest LTS version 2024-02-28 15:10:28 +08:00
世界 02b7041de6 Update dependencies 2024-02-26 22:53:31 +08:00
世界 96ac931b11 Fix network/interface monitor 2024-02-26 22:53:31 +08:00
世界 3077a82650 Fix reproducible builds 2024-02-24 23:19:31 +08:00
世界 de998c5119 Fix docker workflow 2024-02-24 22:49:07 +08:00
世界 d32c30c4b7 documentation: Bump version 2024-02-24 13:20:43 +08:00
世界 4823023806 Remove invalid archlinux packages from release 2024-02-24 13:20:43 +08:00
Aleksandr Razumovand世界 bb355d17b2 Add riscv64 to platform list in release 2024-02-24 13:20:43 +08:00
hiddifyand世界 aaf30bf92b platform: Fix group update interval not taking effect 2024-02-24 13:20:43 +08:00
hiddifyand世界 f8c400cffc platform: Remove duplicated close 2024-02-24 13:20:43 +08:00
hatune-mikuand世界 3c24411e14 documentation: Fix navigation menu 2024-02-24 13:20:42 +08:00
世界 4a44aa3c21 Fix HTTP inbound 2024-02-24 13:20:42 +08:00
世界 8db2ae0c83 Fix documentation 2024-02-24 13:20:42 +08:00
世界 80d1aebcb7 platform: Unify client versions 2024-02-24 13:20:27 +08:00
世界 5583e01c99 platform: Export NeedWIFIState for Android 2024-02-18 14:24:21 +08:00
世界 bca0b86549 Copy DNS message struct instead of deep copy 2024-02-10 23:49:09 +08:00
世界 8332878cdc Fix destination IP CIDR match in DNS 2024-02-10 22:37:42 +08:00
世界 d0ba69ad22 Fix TUN unaligned panic on windows 2024-02-10 21:22:02 +08:00
世界 31b8834427 documentation: Fix description for with_ech 2024-02-10 12:01:09 +08:00
renovate[bot]and世界 d0f7a59e9b [dependencies] Update golang Docker tag to v1.22 2024-02-10 11:54:40 +08:00
renovate[bot]and世界 71e7d517a8 [dependencies] Update github-actions 2024-02-10 11:54:31 +08:00
世界 e6885e9967 platform: Ignore momentary pause on iOS 2024-02-09 13:57:47 +08:00
世界 e2090923db Bump Go version 2024-02-08 20:31:40 +08:00
世界 46be319976 Fix external controller crash before started 2024-02-08 20:31:40 +08:00
renovate[bot]and世界 b27bc45cf2 [dependencies] Update actions/cache action to v4 2024-02-03 15:08:41 +08:00
世界 3d735281f4 documentation: Bump version 2024-02-02 17:51:40 +08:00
世界 8760a0d94d Fix android interface monitor 2024-02-02 17:51:40 +08:00
世界 2239b59933 Remove duplicated rules 2024-02-02 14:30:27 +08:00
世界 425a63f59d Fix rawConn not closed for hy/hy2 2024-02-02 14:30:27 +08:00
世界 b85725c009 urltest: Remember the last choice when there is no valid result 2024-02-02 11:27:36 +08:00
世界 17aebc56c1 Fix UDP DNS response not truncated 2024-02-01 14:43:59 +08:00
Devmanand世界 f76b21b02c Fix mobile build on windows
gobind executable name is not exactly `gobind` on windows it's `gobind.exe`

Signed-off-by: Devman <85770917+amir-devman@users.noreply.github.com>
2024-02-01 12:07:39 +08:00
kkocdkoandGitHub 704545a2ec Fix rule description header of domain_suffix
I read other rule_item_xxx.go files, they are all snake case. This description is showed on dashboard like yacd.

Signed-off-by: kkocdko <31189892+kkocdko@users.noreply.github.com>
2024-02-01 10:42:12 +08:00
dyhkwongandGitHub dc7b7afc06 Fix loop back detector 2024-02-01 10:41:38 +08:00
世界 e478d3c2dc Update workflow 2024-01-24 12:21:18 +08:00
世界 c8318058bb documentation: Bump version 2024-01-23 11:57:28 +08:00
世界 abca2118e7 documentation: Update geosite usage 2024-01-23 11:57:28 +08:00
世界 a8ee41715a platform: Add service error wrapper for macOS system extension 2024-01-22 19:00:09 +08:00
世界 94f76d6671 Update dependencies 2024-01-22 14:37:21 +08:00
世界 bf6cc8903c Fix missing write result in TFO open 2024-01-19 11:22:13 +08:00
世界 1b15e1692a Add sponsor button 2024-01-19 11:22:13 +08:00
世界 017372db25 Fix missing loopback detect 2024-01-19 11:22:12 +08:00
世界 216a0380fe documentation: Bump version 2024-01-16 05:50:07 +08:00
Noob Zhangand世界 71b9e4ff17 Add network-online.target in .service files
This helps the daemon work better on IoT devices
like RaspberryPi.
According to systemd's documentation,
`network.target` means there has already been
a network manager started, but the network may
not be "up". On most PCs this does not matter
because the network will turn to "up" almost
immidiately. The IoT devices' network interface
may not be set up quickly enough, so they may
meet that the sing-box daemon is started before
network is ready, which results that sing-box
cannot find a working route. The workaround
of this is restarting sing-box daemon but it
absolutely is not the perfect solution.
As `network-online.target` must be triggered by
network manager after you configured it, I keep
`network.target` so there will be no change to
those who do not enabled proper trigger service
like `NetworkManager-wait-online.service`.

See also: https://systemd.io/NETWORK_ONLINE/
2024-01-16 05:50:07 +08:00
printferand世界 9b7deb5246 Enhanced light/dark mode support in mkdocs configuration 2024-01-16 05:50:07 +08:00
世界 a850a73e1a Fix missing upstream func for read wait conn 2024-01-16 05:50:07 +08:00
世界 c4d9be9e0d Fix rule match 2024-01-14 13:01:57 +08:00
世界 f31c604b3d documentation: Bump version 2024-01-09 12:22:22 +08:00
世界 4c8a50a52b Fix TLS conn cast for vision 2024-01-09 12:22:22 +08:00
世界 b326e60998 Update dependencies 2024-01-09 12:22:22 +08:00
世界 11bec79a06 documentation: Bump version 2024-01-05 11:17:49 +08:00
世界 16eff06c37 documentation: remove usages of category-companies@cn since merged into cn 2024-01-03 12:21:53 +08:00
世界 2911eba236 documentation: Update package managers 2024-01-03 12:21:48 +08:00
世界 2e607118c3 Remove unnecessary context wrappers 2024-01-03 12:21:48 +08:00
世界 89c723e3e4 Improve read wait interface &
Refactor Authenticator interface to struct &
Update smux &
Update gVisor to 20231204.0 &
Update quic-go to v0.40.1 &
Update wireguard-go &
Add GSO support for TUN/WireGuard &
Fix router pre-start &
Fix bind forwarder to interface for systems stack
2024-01-03 12:21:47 +08:00
世界 35fd9de3ff Make generated files have SUDO_USER's permissions if possible. 2024-01-03 12:21:47 +08:00
世界 6ddcd3954d Refactor inbound/outbound options struct 2024-01-03 12:21:47 +08:00
世界 36b0f2e91a Improve configuration merge 2024-01-03 12:21:47 +08:00
世界 fe053e26b5 Update uTLS to 1.5.4 2024-01-03 12:21:47 +08:00
世界 269434cfe6 Update tfo-go 2024-01-03 12:21:47 +08:00
世界 88495a24dc Update gomobile and add tag 2024-01-03 12:21:46 +08:00
世界 d131a7c10a Update cloudflare-tls to go1.21.5 2024-01-03 12:21:46 +08:00
世界 744a5d703b Make type check strict 2024-01-03 12:21:46 +08:00
世界 09421b6378 Remove comparable limit for Listable 2024-01-03 12:21:46 +08:00
世界 21283b554a Avoid opening log output before start &
Replace tracing logs with task monitor
2024-01-03 12:21:46 +08:00
世界 25810b50c1 Update documentation 2024-01-03 12:21:37 +08:00
世界 f1e3a59db3 Add idle_timeout for URLTest outbound 2024-01-03 12:21:37 +08:00
世界 a99deb2cb5 Skip internal fake-ip queries 2024-01-03 12:21:37 +08:00
世界 38d28e0763 Migrate contentjson and badjson to library &
Add omitempty in format
2024-01-03 12:21:37 +08:00
世界 e09a94bb9e Update documentation 2024-01-03 12:21:36 +08:00
世界 a21c5324fd Independent source_ip_is_private and ip_is_private rules 2024-01-03 12:21:36 +08:00
世界 4b43acfec0 Add rule-set 2024-01-03 12:21:36 +08:00
世界 7df151e820 Update buffer usage 2024-01-03 12:21:36 +08:00
世界 5948ffb965 Allow nested logical rules 2024-01-03 12:21:36 +08:00
世界 bf4e556f67 Migrate to independent cache file 2024-01-03 12:21:36 +08:00
世界 e3f8567690 documentation: Bump version 2024-01-02 14:31:53 +08:00
世界 40c7f3e170 Fix geoip close 2024-01-02 14:31:23 +08:00
世界 c506255e0f Fix grpc lite transport encoding 2024-01-01 16:16:58 +08:00
世界 87c6fd4c0f Fix h2mux request context 2024-01-01 16:15:49 +08:00
世界 19c445d28e documentation: Bump version 2023-12-29 18:00:40 +08:00
世界 9119a5209b dcoumentation: Fix description of cipher_suites 2023-12-29 18:00:40 +08:00
世界 46c8d6e61f Fix pprof URL path 2023-12-29 18:00:40 +08:00
世界 ea17c2786d Update dependencies 2023-12-27 10:37:18 +08:00
世界 12ababd911 Fix mux test 2023-12-27 10:30:19 +08:00
世界 0523845833 Update issue reporting templates
Enhanced the issue reporting templates for both English and Chinese versions by adding more structured and comprehensive guideline checkboxes. This aims to ensure contributors provide sufficient and beneficial information for reproducing and resolving issues, thereby improving the quality of reports and making issue tracking more efficient.
2023-12-26 19:05:19 +08:00
renovate[bot]and世界 57794919fa [dependencies] Update actions/upload-artifact action to v4 2023-12-26 19:04:51 +08:00
世界 f5bb5cf343 Fix missing marshal for udp_timeout 2023-12-26 10:52:46 +08:00
世界 3eed614dea Fix ACME ALPN conflict 2023-12-26 09:02:58 +08:00
世界 76a295a660 Fix missing nil check for URLTest 2023-12-26 09:02:58 +08:00
世界 082e3fb8df Fix V2Ray transport path validation behavior 2023-12-26 09:02:58 +08:00
世界 a0cab4f563 Fix websocket client initialize 2023-12-22 20:38:06 +08:00
世界 aeb7308e81 documentation: Bump version 2023-12-21 15:25:19 +08:00
世界 bb1ebfda83 documentation: Fix link format 2023-12-21 15:24:05 +08:00
世界 c05c798221 Fix missing UDP timeout for QUIC protocols 2023-12-21 15:16:36 +08:00
世界 55b1bcc6a5 Migrate udp_timeout from seconds to duration format 2023-12-21 14:50:33 +08:00
世界 d6eddce420 Fix missing handshake timeout for multiplex 2023-12-21 14:21:59 +08:00
世界 4bf057139b Fix DNS dial context 2023-12-21 14:19:27 +08:00
世界 a1b28b8282 Try to fix HTTP server leak again 2023-12-21 14:16:16 +08:00
世界 d0aaf71770 Fix direct UDP override 2023-12-18 21:48:59 +08:00
世界 2f31202c6b documentation: Update shadowsocks example
Remove the information on password generation for `2022-blake3-aes-128-gcm` cipher from the Server Example section in the shadowsocks.md file as it is no longer needed.
2023-12-14 21:05:41 +08:00
renovate[bot]and世界 e4cc510712 [dependencies] Update github-actions 2023-12-14 15:14:22 +08:00
世界 e329bf6865 Update dependencies 2023-12-14 15:09:03 +08:00
世界 2badcec765 platform: Fix check config 2023-12-12 20:26:41 +08:00
世界 e71c13b1a2 documentation: Bump version 2023-12-12 13:54:23 +08:00
世界 a959a67ed3 FIx error handling for netlink banned in Android 2023-12-12 13:54:23 +08:00
世界 a1044af579 platform: Fix VPN route 2023-12-11 21:59:59 +08:00
世界 a64b57451a Update dependencies 2023-12-11 21:40:11 +08:00
世界 f0e2318cbd Fix auto-route IPv6 on darwin 2023-12-11 21:39:29 +08:00
世界 ebec308fd8 documentation: Bump version 2023-12-09 00:22:27 +08:00
世界 ca094587be Fix incorrect dependency 2023-12-09 00:22:27 +08:00
世界 ca3b86c781 Update bug report template 2023-12-08 21:56:30 +08:00
世界 5a1d0047b9 documentation: Bump version 2023-12-08 21:38:34 +08:00
世界 4669854039 Fix method check for v2ray HTTP transport 2023-12-08 21:12:52 +08:00
世界 2eecdc38a4 Fix gun conn setup 2023-12-08 21:10:36 +08:00
世界 83581b7c1a Update dependencies 2023-12-08 11:18:52 +08:00
世界 d346f0023d Fix HTTP connect client again 2023-12-08 11:18:52 +08:00
世界 47b7a29cbd Fix fallback packet conn 2023-12-06 18:47:50 +08:00
世界 cffc07579d Fix missing omitempty for NTP server fields 2023-12-05 18:32:21 +08:00
世界 0ef268637e Prevent nil LocalAddr or RemoteAddr 2023-12-05 15:11:09 +08:00
世界 50f5a76380 Update dependencies 2023-12-04 21:06:15 +08:00
世界 20ca05dd36 Fix crash on websocket concurrent request 2023-12-04 20:42:01 +08:00
世界 5a792b186a documentation: Bump version 2023-12-03 16:54:49 +08:00
世界 3f458064a3 Fix not set Host header for HTTP outbound 2023-12-03 16:54:49 +08:00
世界 5269231df0 Fix URLTest outbound 2023-12-02 17:55:58 +08:00
世界 fc8e49994c documentation: Bump version 2023-12-01 20:39:01 +08:00
世界 e911d4aa4b Fix URLTest group early start 2023-12-01 20:39:01 +08:00
世界 01f6e70bc5 Fix deadline usage 2023-12-01 20:39:01 +08:00
世界 5f1e39a42c documentation: Bump version 2023-11-29 21:01:28 +08:00
世界 4f7770e254 Update dependencies 2023-11-29 21:01:19 +08:00
世界 e8c4c942c0 documentation: Bump version & Refactor docs 2023-11-28 11:21:57 +08:00
世界 253976d6c0 Add wifi_ssid and wifi_bssid route and DNS rules 2023-11-28 11:21:44 +08:00
世界 f0571b4122 Update quic-go to v0.40.0 2023-11-28 11:21:44 +08:00
世界 1b71e52e90 Migrate multiplex and UoT server to inbound & Add tcp-brutal support for multiplex 2023-11-28 11:21:44 +08:00
世界 6d24be23da Add support for v2ray http upgrade transport 2023-11-28 11:21:44 +08:00
世界 2a45c178fa Add exclude route support for tun &
Update gVisor to 20231113.0
2023-11-28 11:21:43 +08:00
世界 81e214812f Add udp_disable_domain_unmapping inbound listen option 2023-11-28 11:21:43 +08:00
世界 4d23773a25 Migrate to gobwas/ws 2023-11-28 11:21:43 +08:00
世界 40a0b69918 Fix dhcp reset 2023-11-28 11:20:48 +08:00
世界 a7b37c5953 documentation: Bump version 2023-11-24 20:58:48 +08:00
世界 03663a5093 Fix cachefile permission 2023-11-24 20:58:48 +08:00
世界 b08226a850 Fix "Fix HTTP server leak" 2023-11-24 19:58:31 +08:00
世界 edbae5dc4d Fix missing UDP user context on TUIC/Hysteria2 inbounds 2023-11-24 19:56:43 +08:00
世界 0f8ad0234b Remove unused code 2023-11-24 19:55:53 +08:00
世界 661eadc3bd documentation: Bump version 2023-11-21 10:22:44 +08:00
世界 50c1290567 Update dependencies 2023-11-21 10:22:44 +08:00
世界 eaccc9759a Fix platform API check 2023-11-21 10:22:44 +08:00
世界 925214869b Add test for ss2022 EIH 2023-11-20 18:36:44 +08:00
世界 6a2bfd26d0 Fix QUIC sniffer 2023-11-16 22:48:16 +08:00
世界 72a81afb76 Fix "Fix Linux IPv6 auto route rules" 2023-11-16 18:25:07 +08:00
世界 240abe204c Fix zero TTL was incorrectly reset 2023-11-16 18:25:07 +08:00
世界 7c49196792 build: Fix bad environment key 2023-11-16 01:42:24 +08:00
嫦悅and世界 3a2808cff6 documentation: Fix typo
The old meaning is wrong. Correct the meaning according to the English documentation and the actual effect of the option.

Signed-off-by: 嫦悅 <lomombwlo@gmail.com>
2023-11-16 01:12:26 +08:00
guangwuandGitHub 005d6cf4cf chore: unnecessary use of fmt.Sprintf 2023-11-16 01:10:52 +08:00
世界 36dff630d6 documentation: Bump version 2023-11-15 14:10:37 +08:00
世界 1825869124 platform: Refactor log interface 2023-11-15 14:10:37 +08:00
世界 3cadc90375 Fix TUIC authentication failed error message 2023-11-14 20:15:41 +08:00
renovate[bot]世界renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2c6967d7f9 dependencies: Update actions/checkout digest to b4ffde6
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 20:15:41 +08:00
世界 fe866b123a Fix sing-tun version 2023-11-14 20:15:41 +08:00
世界 cbef1b1e59 Remove apk build due to missing openrc configuration 2023-11-14 20:15:41 +08:00
世界 e21f84932c build: Fix missing linux/386 2023-11-14 10:35:27 +08:00
0x7d274284andGitHub 7a679bc328 Fix Dockerfile
Keep the .git folder at compile time to get the correct version

Signed-off-by: 0x7d274284 <112329548+0x7d274284@users.noreply.github.com>
2023-11-14 10:34:38 +08:00
世界 6635dd9abc documentation: Bump version 2023-11-13 21:50:36 +08:00
世界 ce164724ea build: Add apk and archlinux package builds 2023-11-13 15:28:28 +08:00
世界andmaskedeken a3ef7a7d88 Fix trojan-go mux context
Co-authored-by: maskedeken <maskedeken@yahoo.com>
Co-authored-by: 世界 <i@sekai.icu>
2023-11-13 14:12:35 +08:00
世界 71218ef0d3 build: Unify build tags 2023-11-13 14:12:35 +08:00
世界andMahdi-zarei e777b4c6dc Fix not closing outConn
Co-authored-by: Mahdi-zarei  <mahdi.zrei@gmail.com>
Co-authored-by: 世界 <i@sekai.icu>
2023-11-13 13:54:03 +08:00
世界 6815f94180 build: Update Go to 1.20.11 for legacy builds 2023-11-13 13:47:15 +08:00
世界 b013acd89d tun: Fix broadcast filter not applied to mixed stack 2023-11-13 13:35:10 +08:00
世界 f7c2eb6e76 Fix v2ray ws crash 2023-11-13 13:34:31 +08:00
世界 3ef9b1b343 Update protobuf generated binary 2023-11-10 10:56:25 +08:00
SakuraWaldand世界 2224c68959 Fix issue template 2023-11-10 10:36:46 +08:00
Kumiko as a ServiceandGitHub bb7d03d1db Use golang's cross-compilation capabilities 2023-11-10 10:36:32 +08:00
世界 50036924e8 documentation: Bump version 2023-11-10 10:24:18 +08:00
世界 c2c3f7284f Revert "Fix Host ignored in v2ray websocket transport"
This reverts commit aaa6702863.
2023-11-09 16:55:47 +08:00
世界 f6fee53676 Fix mux client close 2023-11-09 16:55:47 +08:00
世界 63b8e8ed23 platform: Increase HTTP timeout to 15s 2023-11-09 16:55:47 +08:00
世界 6ae86eda98 build: Update gradle command 2023-11-09 16:55:47 +08:00
世界 267d9617b7 build: Fix tag calculate 2023-11-07 22:27:37 +08:00
世界 0a06ccae50 platform: Fix legacy code 2023-11-07 22:14:23 +08:00
世界 8de0fad9f5 documentation: Bump version 2023-11-07 10:20:05 +08:00
世界 e05bf6308e Fix build script 2023-11-07 10:20:05 +08:00
世界 a20a0cb455 Add broadcast filter 2023-11-07 10:20:05 +08:00
世界 d29f7475d2 documentation: Bump version 2023-11-06 19:37:45 +08:00
世界 aaa6702863 Fix Host ignored in v2ray websocket transport 2023-11-05 23:27:11 +08:00
世界 bb928f096a Fix missing default next proto in hysteria2 2023-11-05 23:11:40 +08:00
johnthecoderproand世界 9f01d5c5b4 Fix download geo resources 2023-11-05 16:03:15 +08:00
世界 11629a931b Update release script 2023-11-05 16:02:18 +08:00
世界 126f825241 Update dependencies 2023-11-05 16:02:10 +08:00
世界 998cc7bd22 Add multicast filter for tun 2023-11-04 08:04:17 +08:00
世界 3efccaa8f5 Update dependencies 2023-10-31 18:24:58 +08:00
世界 d57b35ec30 documentation: Add privacy policy for android 2023-10-31 17:32:18 +08:00
世界 e82dab027d documentation: Bump version 2023-10-30 13:59:49 +08:00
世界 9350f3983b docs: Remove obsolete fields 2023-10-30 13:59:49 +08:00
世界 53b123241f android: Add build info tools for debug 2023-10-30 12:41:24 +08:00
世界 97286eea1e Add TLS self sign generate command 2023-10-30 12:41:23 +08:00
世界 343e24969d Add brutal debug option for Hysteria2 2023-10-30 12:41:23 +08:00
世界 31c294d998 Update BBR and Hysteria congestion control & Migrate legacy Hysteria protocol to library 2023-10-30 12:41:22 +08:00
世界 3b161ab30c Fix netip.Prefix usage 2023-10-30 12:41:22 +08:00
septsand世界 41fd1778a7 Improve HTTP headers option 2023-10-30 12:41:22 +08:00
septsand世界 ac930cf1aa Improve naive auth logical 2023-10-30 12:41:22 +08:00
世界 e143fc510d Update gVisor to 20230814.0 2023-10-30 12:41:21 +08:00
世界 bea177a4cd Improve linux bind interface 2023-10-30 12:41:21 +08:00
世界 aa05a4d050 Remove deprecated features 2023-10-30 12:41:21 +08:00
世界 a8112ff824 Update workflows 2023-10-30 12:40:52 +08:00
世界 a7710c3845 documentation: Bump version 2023-10-30 10:42:42 +08:00
世界 cb2e15f8a7 Fix UDP domain NAT 2023-10-28 21:41:39 +08:00
世界 23aa8a0543 Add legacy builds for old Windows and macOS versions 2023-10-26 14:02:24 +08:00
世界 edf7d046eb Fix outbound not found message 2023-10-26 14:02:19 +08:00
世界 de0b5cc1c2 Fix Linux IPv6 auto route rules 2023-10-26 12:02:00 +08:00
世界 2686e8afea Fix TUIC server TLS config not started 2023-10-26 12:01:28 +08:00
世界 d9853ca2be Update dependencies 2023-10-26 11:57:18 +08:00
世界 b617eb5adf documentation: Bump version 2023-10-23 14:09:09 +08:00
世界 ddf38799e2 makefile: Fix release command 2023-10-23 14:09:06 +08:00
世界 5291d43dc8 makefile: Add -allowProvisioningUpdates to Apple build commands 2023-10-21 17:51:00 +08:00
世界 a634830d85 Fix invalid address check in UoT conn 2023-10-21 17:23:30 +08:00
世界 e5d191ca73 Add retry for bbolt open 2023-10-14 19:24:05 +08:00
世界 2371f0fd51 Update dependencies 2023-10-14 17:36:35 +08:00
世界 cfdce7a96f Fix bbolt panic on arm32 2023-10-14 17:36:13 +08:00
世界 dc8ac01dec documentation: Bump version 2023-10-11 12:05:31 +08:00
世界 5f18738b2b Fix task cancel context 2023-10-11 12:05:27 +08:00
世界 7b4e4ca2d0 Fix compatibility with Android 14 2023-10-10 15:09:49 +08:00
世界 01ba4668b6 platform: Also reset connections on wake 2023-10-10 15:08:18 +08:00
dyhkwongand世界 e782d21806 Fix connect domain for IP outbound 2023-10-10 15:08:16 +08:00
世界 00155d61fc documentation: Bump version 2023-10-07 10:04:10 +08:00
世界 8f2273a2b4 documentation: Bump version 2023-10-06 17:10:53 +08:00
世界 0d0526afa2 Update dependencies 2023-10-06 17:10:31 +08:00
世界 ac2d07b61a Fix UDP dialer network 2023-10-03 11:08:31 +08:00
世界 d35487f422 Fix ip_version does not take effect 2023-10-03 11:01:25 +08:00
世界 2749f4a013 documentation: Bump version 2023-10-03 09:22:29 +08:00
世界 45c679648e platform: Fix log server 2023-10-03 09:22:29 +08:00
世界 5f2f7fc8b9 Fix HTTP inbound leak 2023-10-01 14:39:58 +08:00
世界 83c79102cf Update xcode version script 2023-10-01 14:05:51 +08:00
世界 8b95292e53 Update dependencies 2023-09-30 22:34:54 +08:00
世界 3de7a2ddd3 Fix concurrent access on task returnError 2023-09-30 21:52:11 +08:00
Shanoa IceandGitHub 8437a6cb4e Fix set KDE system proxy 2023-09-30 16:44:58 +08:00
世界 9c4d08c6e1 documentation: Bump version 2023-09-28 16:02:54 +08:00
世界 e26096085e Remove invalid code 2023-09-28 15:52:05 +08:00
世界 2f1b2199c5 Fix DHCPv4 listen address 2023-09-27 18:25:23 +08:00
世界 af791db01f documentation: Bump version 2023-09-27 14:16:04 +08:00
世界 abcf030d89 Update dependencies 2023-09-27 14:16:04 +08:00
世界 7840dc73e3 Fix resolve dialer 2023-09-27 13:17:16 +08:00
世界 df9050400e android: Fix netlink check 2023-09-26 17:41:07 +08:00
世界 fdd38d6cf8 documentation: Bump version 2023-09-25 21:56:32 +08:00
世界 9891fd672f Reject SOCKS4 unauthenticated request 2023-09-25 21:16:14 +08:00
世界 92a84ee112 Update dependencies 2023-09-25 17:56:21 +08:00
世界 992331f17e documentation: Bump version 2023-09-24 14:40:03 +08:00
世界 4fb227ed86 Fix payload not return to pool 2023-09-24 14:40:03 +08:00
世界 5a1ddea100 Fix dns log 2023-09-24 12:38:33 +08:00
世界 fbaa2f9de9 Fix merge command 2023-09-24 12:12:35 +08:00
世界 97ab9bb194 Fix shadow-tls user context 2023-09-24 12:12:35 +08:00
世界 61ac141124 Improve URLTest delay calculate 2023-09-23 20:27:43 +08:00
世界 d4d49d9df5 Fix ACME DNS01 DNS challenge 2023-09-23 20:26:46 +08:00
世界 c60a944aac Fix missing context in geo resources download 2023-09-23 20:26:46 +08:00
世界 17584c245f documentation: Bump version 2023-09-22 12:08:09 +08:00
世界 6e84b694a4 Minor fixes 2023-09-22 12:07:39 +08:00
世界 34a93171f0 Update dependencies 2023-09-20 22:20:40 +08:00
世界 678f6ef72f Fix debug.SetMemoryLimit usage 2023-09-20 22:01:58 +08:00
世界 ae8187ed15 documentation: Bump version 2023-09-20 14:15:54 +08:00
世界 12dd1ac87f Improve conntrack 2023-09-20 14:15:00 +08:00
世界 85c8f00885 documentation: Bump version 2023-09-19 19:59:29 +08:00
世界 e7b7ae811f Add merge command 2023-09-19 19:59:07 +08:00
世界 a9743b77f6 Don't return success as an error when the lookup result is empty 2023-09-19 19:05:23 +08:00
世界 4068871d97 Update quic-go 2023-09-19 18:33:44 +08:00
世界 f05afcea39 Update dependencies 2023-09-19 18:33:06 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
688e9daef4 [dependencies] Update github-actions
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-17 13:12:03 +08:00
世界 64edacffb7 Bump version 2023-09-17 01:09:48 +08:00
世界 743df5373b Fix hysteria2 mbps calculation 2023-09-17 01:09:48 +08:00
世界 e80084316d Fix panic on create system proxy failed 2023-09-17 01:09:41 +08:00
世界 9dcd427743 Fix v2ray websocket transport 2023-09-17 01:09:41 +08:00
世界 d17e93384b Add ACME DNS01 challenge support via libdns 2023-09-17 01:09:41 +08:00
世界 c1ffcf365e Fix test 2023-09-16 23:45:47 +08:00
世界 3040e97222 Fix gomobile build on macOS 2023-09-16 00:09:45 +08:00
世界 5f063fb0b5 Update Makefile 2023-09-16 00:09:41 +08:00
世界 a7dadd8671 documentation: Update Clash default_mode description 2023-09-16 00:09:41 +08:00
世界 c320be75a7 Add interrupt support for outbound groups 2023-09-16 00:09:41 +08:00
世界 bd7adcbb7e Migrate QUIC wrapper and protocol implementations to library 2023-09-16 00:09:41 +08:00
世界 1d6d3edec5 documentation: Update changelog for stable versions 2023-09-15 17:34:39 +08:00
世界 46bfeb574c documentation: Bump version 2023-09-12 15:57:33 +08:00
世界 a1449ee40e Mark deprecated features 2023-09-12 13:26:23 +08:00
世界 8cb41b5fa6 documentation: Add hysteria2 2023-09-12 13:26:22 +08:00
世界 53475c7390 Add hysteria2 protocol 2023-09-12 13:26:21 +08:00
世界 5d8af150a7 Improve system proxy API 2023-09-12 13:26:21 +08:00
69499a51a5 Add KDE set system proxy support
Co-authored-by: Hiddify <114227601+hiddify1@users.noreply.github.com>
2023-09-12 13:26:20 +08:00
世界 4c050d7f4b Add ECH support for QUIC based protocols 2023-09-12 13:26:20 +08:00
世界 533fca9fa3 documentation: Update TLS ECH struct 2023-09-12 13:26:20 +08:00
世界 187bf2f7bc Enable with_ech by default 2023-09-12 13:26:19 +08:00
世界 983a4222ad Add ECH keypair generator 2023-09-12 13:26:19 +08:00
世界 2ea506aeb8 Remove legacy NTP usages 2023-09-12 13:26:19 +08:00
世界 5b343d4c72 Improve ECH support 2023-09-12 13:26:19 +08:00
世界 be61ca64d4 Fix SOCKS outbound 2023-09-12 13:26:03 +08:00
世界 efe33cf48d Fix QUIC DNS 2023-09-12 13:14:21 +08:00
世界 fe8d46cce5 Fix TFO async write 2023-09-09 19:52:13 +08:00
世界 b1f289bce5 Fix TUIC context 2023-09-09 11:41:04 +08:00
世界 a8beb80876 Update Makefile 2023-09-07 22:37:55 +08:00
世界 ff209471d8 Fix QUIC defragger 2023-09-07 21:35:25 +08:00
unknownand世界 806f7d0a2b Fix QUIC stream usage 2023-09-07 21:34:36 +08:00
世界 6b943caf37 Reject invalid connection 2023-09-07 21:34:36 +08:00
世界 4ea2d460f4 Fix router close 2023-09-07 21:34:35 +08:00
世界 c84c18f960 platform: Fix crash on android 2023-09-07 21:34:35 +08:00
世界 1402bdab41 Fix connect domain for IP outbounds 2023-09-07 21:34:35 +08:00
renovate[bot]and世界 7082cf277e [dependencies] Update actions/checkout action to v4 2023-09-07 21:34:35 +08:00
世界 b9310154a7 clash-api: Move default mode to first 2023-09-07 21:34:35 +08:00
世界 55c34e3fb0 platform: Improve client 2023-09-07 21:34:35 +08:00
世界 68f2202eec documentation: Bump version 2023-08-31 23:32:44 +08:00
renovate[bot]世界renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5057e50bb8 [dependencies] Update actions/stale action to v8
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-31 23:32:44 +08:00
世界 23e1a69955 Update Makefile 2023-08-31 23:32:44 +08:00
世界 b83c6c9d20 Fix return nil addr in conn 2023-08-30 21:28:03 +08:00
世界 67deac6d44 Fix hysteria packet write 2023-08-30 18:23:17 +08:00
世界 ea3731162b Update Makefile 2023-08-30 18:23:17 +08:00
世界 c75e32e722 documentation: Update changelog 2023-08-29 10:26:11 +08:00
世界 e7b35be5f6 Update Makefile 2023-08-29 10:26:11 +08:00
世界 5a309266f0 Fix TUIC client 2023-08-28 19:58:02 +08:00
世界 05669eaaad documentation: Update changelog 2023-08-25 20:33:16 +08:00
世界 e91a6e5439 Update dependencies 2023-08-25 20:21:14 +08:00
世界 43f72a6419 Add store_mode and platform Clash mode selector 2023-08-25 20:21:14 +08:00
世界 6dcacf3b5e Fix sniffer 2023-08-24 21:53:06 +08:00
世界 edad4d1ce7 Update dependencies 2023-08-24 11:31:29 +08:00
世界 262842c87d Fix test 2023-08-22 11:22:13 +08:00
世界 376f527742 documentation: Bump version 2023-08-21 18:24:31 +08:00
世界 c0bbb3849d Fix TUIC UDP 2023-08-21 18:16:38 +08:00
世界 738c25d818 Fix Makefile 2023-08-21 18:14:27 +08:00
dyhkwongandGitHub 027af4d4ee Fix SOCKS5 UDP sniffing accidentially enabled 2023-08-20 19:06:37 +08:00
世界 6011f4483a Remove bad scripts 2023-08-20 17:57:39 +08:00
世界 fc22466e3b documentation: Bump version 2023-08-20 17:29:22 +08:00
世界 975e13a313 Add [include/exclude]_interface iproute2 options 2023-08-20 17:29:22 +08:00
世界 f46732bc0e Add udp over stream support for TUIC 2023-08-20 14:15:22 +08:00
世界 5c5c25e3ad Update tfo-go 2023-08-20 13:32:07 +08:00
世界 53a0bf2d11 minor: Remove unused parameter 2023-08-20 13:32:07 +08:00
renovate[bot]and世界 7b79d98f59 [dependencies] Update golang Docker tag to v1.21 2023-08-20 13:31:56 +08:00
世界 1dd2c26f31 Fix UDP route 2023-08-20 13:31:55 +08:00
armv9and世界 d14170348d Fix process search with fakeip 2023-08-20 13:31:55 +08:00
世界 9f94b21687 platform: Add group expand status 2023-08-20 13:31:55 +08:00
世界 cf57e46d69 Add new issue template 2023-08-20 13:31:49 +08:00
世界 b459001600 Update documentation 2023-08-20 13:31:48 +08:00
世界 73267fd6ad Fix ci build 2023-08-20 13:31:48 +08:00
世界 1019ecfdcf Add TCP MultiPath support 2023-08-20 13:31:48 +08:00
世界 81b847faca Pause recurring tasks when no network 2023-08-20 13:31:48 +08:00
世界 ce4c76cdd2 documentation: Add TUIC 2023-08-20 13:31:47 +08:00
世界 917420e79a Add TUIC protocol 2023-08-20 13:31:40 +08:00
世界 0b14dc3228 Update quic-go 2023-08-20 13:31:40 +08:00
世界 cbdaf3272b Update dependencies 2023-08-20 13:31:36 +08:00
世界 d51ab2b0a7 Fix missing HandshakeConn interface 2023-08-20 13:31:31 +08:00
世界 1363e16312 platform: Enable Clash API support by default 2023-08-20 13:31:29 +08:00
世界 f43d0141f3 Save fakeip metadata immediately 2023-08-20 13:31:27 +08:00
世界 90b3aad83a Fix network monitor 2023-08-20 13:30:50 +08:00
世界 2675aff98a Fix tag detect 2023-08-07 22:07:24 +08:00
世界 09ffa2c66e documentation: Update changelog 2023-08-05 21:37:08 +08:00
世界 9fba4f02b6 Update dependencies 2023-08-05 21:37:08 +08:00
世界 59987747e5 platform: Improve status 2023-08-04 21:10:32 +08:00
世界 c40140bbae Fix UDP async write 2023-08-04 12:38:51 +08:00
世界 2123b216c0 Fix http proxy server again 2023-08-04 12:38:51 +08:00
世界 1983f54907 platform: Add sleep support for NetworkExtension 2023-08-04 12:38:51 +08:00
世界 8d629ef323 documentation: Update changelog 2023-07-31 09:49:07 +08:00
世界 f57bee2f4b Update quic-go 2023-07-31 09:49:07 +08:00
世界 679739683e Update dependencies 2023-07-31 09:07:32 +08:00
世界 4fcce1f073 Fix http proxy server 2023-07-31 09:04:55 +08:00
世界 ff14220e08 platform: Update profile binary format 2023-07-30 20:55:27 +08:00
世界 a7b7a5c3c5 documentation:Add tvOS page 2023-07-29 21:09:15 +08:00
世界 b054441f34 platform: Add support for tvOS 2023-07-29 21:01:43 +08:00
世界 1e31d26e03 documentation: Update installation 2023-07-29 21:01:43 +08:00
世界 ffe515d0e0 documentation: Update changelog 2023-07-25 13:21:15 +08:00
世界 aad021f521 Fix gVisor UDP 2023-07-25 08:28:24 +08:00
世界 4a986459ee documentation: Update changelog 2023-07-24 17:56:39 +08:00
世界 9532d0cba4 Fix cache file 2023-07-24 16:51:03 +08:00
世界 cadc34f3ad Add support for macOS system extension 2023-07-24 16:51:03 +08:00
世界 db23a48b36 Update dependencies 2023-07-23 14:23:51 +08:00
世界 407cf68e59 Fix certmagic usage 2023-07-20 20:03:20 +08:00
世界 e0058ca9c5 Fix fakeip unsaved state 2023-07-20 19:59:04 +08:00
世界 8140af01aa Fix download geo resources 2023-07-20 19:41:22 +08:00
世界 98bf696d01 Fix cache file 2023-07-20 19:41:22 +08:00
世界 e075bb5c8d Update changelog 2023-07-19 14:59:30 +08:00
世界 c6baabedef Update dependencies 2023-07-19 14:45:30 +08:00
世界 6e6998dab7 Improve platform status 2023-07-16 14:08:45 +08:00
世界 1a29c23263 documentation: Update changelog 2023-07-15 14:53:48 +08:00
世界 0f87396ab6 Fix abx reader for some malformed formats 2023-07-15 14:46:15 +08:00
世界 ffde948860 Update support page 2023-07-15 14:46:09 +08:00
世界 69b5dbdcc3 Build memory limiter for android 2023-07-15 14:46:06 +08:00
世界 1121517755 Fix hysteria inbound context 2023-07-11 20:58:20 +08:00
世界 6879def619 Fix test 2023-07-11 15:44:03 +08:00
世界 5c0f6d0a6f Fix vmess legacy server 2023-07-11 15:44:03 +08:00
世界 d74abbd20e Fix v2ray websocket transport 2023-07-11 15:44:03 +08:00
世界 120dae4eed Fix fakeip lookup 2023-07-11 15:44:02 +08:00
世界 bb651db2d2 platform: Fix output format 2023-07-09 12:24:43 +08:00
世界 e929dde13e documentation: Update changelog 2023-07-09 07:54:08 +08:00
世界 9d75385bbb Fix async FakeIP save 2023-07-08 16:21:11 +08:00
世界 1c526feec1 Update dependencies 2023-07-08 16:19:28 +08:00
世界 7df26986de documentation: Update changelog 2023-07-07 14:23:45 +08:00
世界 5f2d23a12d Fix multi error 2023-07-07 13:57:28 +08:00
世界 d9e65c0969 Fix syscall copy packet 2023-07-07 13:42:42 +08:00
世界 ec1160924f Fix save FakeIP cache 2023-07-07 12:51:38 +08:00
世界 230e8f895d Fix close quic.Listener 2023-07-07 12:43:22 +08:00
世界 af79378734 Update dependencies 2023-07-03 21:47:32 +08:00
世界 07ce5e0d22 Remove stack buffer usage 2023-07-03 21:45:32 +08:00
世界 9c8565cf21 platform: Add group interface 2023-07-02 18:46:41 +08:00
世界 5ad0ea2b5a Try fix StreamDomainNameQuery 2023-07-02 16:38:38 +08:00
世界 e482053c8a documentation: Update changelog 2023-06-27 11:31:24 +08:00
世界 945713d886 Update dependencies 2023-06-27 11:13:30 +08:00
世界 9bb62ad6b5 Check duplicated outbound tag 2023-06-26 18:47:52 +08:00
世界 c2bda9fbde Fix DNS rewrite_ttl logic 2023-06-23 16:12:25 +08:00
世界 1d1db62a44 Prevent write packet IPv6 packet to tun IPv4 connection 2023-06-21 13:29:24 +08:00
世界 39405373f8 documentation: Update changelog 2023-06-19 14:11:41 +08:00
世界 22a7988d3f Update dependencies 2023-06-19 14:11:41 +08:00
世界 b2092fafb7 Fix ios build
Cannot use errno as method and variable due to conflict with objc
2023-06-19 14:11:40 +08:00
世界 cc7b5d8280 Unwrap 4in6 address received by client packet conn 2023-06-19 13:29:41 +08:00
世界 702d96a738 platform: Improve local DNS transport 2023-06-18 10:00:32 +08:00
世界 b9f34f1309 documentation: Update changelog 2023-06-17 12:21:18 +08:00
世界 07724a0ddd Update dependencies 2023-06-17 12:17:43 +08:00
世界 83c3454685 Update quic-go 2023-06-15 14:52:25 +08:00
世界 7d263eb733 documentation: Update changelog 2023-06-14 16:28:44 +08:00
世界 222687d9c5 Update goreleaser usage 2023-06-14 09:39:13 +08:00
世界 07d3652e30 Build with_dhcp by default 2023-06-14 09:14:45 +08:00
世界 8d5b9d240a Fix outbound start sequence 2023-06-13 22:38:05 +08:00
世界 4f12eba944 Fix hysteria outbound 2023-06-13 21:41:33 +08:00
世界 a7f77d59c1 Update documentation 2023-06-11 22:38:37 +08:00
shadow750d6and世界 597248130f Reconnect once if hysteria request fails
This allows graceful recovery when network isn't good enough.

[Original hysteria source
code](https://github.com/apernet/hysteria/blob/13d46da99876c2c9feb1083ff5f2da201d9d0a1e/core/cs/client.go#L182)
has similar mechanism.
2023-06-11 22:21:32 +08:00
世界 3c2c9cf317 Migrate gVisor to fork 2023-06-11 22:07:36 +08:00
世界 e572b9d0cd Update dependencies 2023-06-11 20:58:59 +08:00
世界 52e9059a8d Fix fakeip routing 2023-06-11 20:58:59 +08:00
世界 0cb9cff690 Fix shadowsocks none client 2023-06-08 10:23:39 +08:00
世界 c0669cb2a5 Fix TLS 1.2 support for shadow-tls client 2023-06-07 21:03:39 +08:00
世界 c5902f2473 Fix using v2ray websocket transport with detour 2023-06-07 21:03:21 +08:00
世界 22028602e8 Improve read waiter interface 2023-06-07 21:03:11 +08:00
世界 bd54608473 Fix DNS outbound 2023-06-07 21:03:08 +08:00
世界 3741394269 Add cache_id option for Clash cache file 2023-06-07 21:03:06 +08:00
世界 6266d2df7e Fix shadowsocks AEAD UDP server 2023-06-07 21:02:52 +08:00
世界 01dfba722a Use API to create windows firewall rule 2023-06-07 21:01:29 +08:00
世界 f8d5f01665 Reimplemented shadowsocks client 2023-06-07 20:57:07 +08:00
Hellojackand世界 ad999d4791 Fix UVariantLen usage 2023-06-07 20:56:57 +08:00
世界 6f1b258501 Improve DNS caching 2023-06-07 20:56:55 +08:00
世界 f949ddc0ab Set TCP keepalive for WireGuard gVisor TCP connections 2023-06-07 20:53:26 +08:00
Weltolkand世界 f53007cbf3 documentation: Fix fakeip link broken 2023-06-07 20:53:13 +08:00
世界 c287731df9 Improve direct copy 2023-06-07 20:53:00 +08:00
世界 bc32c78d03 Improve multiplex 2023-06-07 20:46:34 +08:00
世界 daee0db7bb clash-api: Reset outbounds in DELETE /connections 2023-06-07 20:45:39 +08:00
世界 91fbf4c79b Add multiplexer for VLESS outbound 2023-06-07 20:45:39 +08:00
世界 54d9ef2f2a Update gVisor to 20230417.0 2023-06-07 20:45:25 +08:00
世界 e056d4502b Add debug http server 2023-06-07 20:45:25 +08:00
世界 98c2c439aa Add filemanager api 2023-06-07 20:45:25 +08:00
世界 b6068cea6b Update wireguard-go 2023-06-07 20:38:30 +08:00
世界 9c9affa719 Ignore system tun stack bind interface error 2023-06-07 20:35:02 +08:00
世界 8eb7dd0059 Improve VLESS request 2023-06-07 20:35:00 +08:00
世界 a62ad44883 Add deadline interface 2023-06-07 20:34:56 +08:00
世界 2850354070 shadowsocks: Multi-user support for legacy AEAD inbound
Signed-off-by: wwqgtxx <wwqgtxx@gmail.com>
2023-06-07 20:34:54 +08:00
世界 0a4abcbbc8 Add headers option for HTTP outbound 2023-06-07 20:34:52 +08:00
世界 b491c350ae URLTest improvements 2023-06-07 20:33:56 +08:00
世界 1fbe7c54bf Fix wireguard reconnect 2023-06-07 20:33:53 +08:00
世界 9d32fc9bd1 Use HTTPS URLTest source 2023-06-07 20:33:50 +08:00
世界 542612129d clash-api: Add Clash.Meta APIs 2023-06-07 20:33:41 +08:00
世界 750f87bb0a clash api: download clash-dashboard if external-ui directory is empty 2023-06-07 20:33:06 +08:00
世界 e168de79c7 Add multi-peer support for wireguard outbound 2023-06-07 20:33:04 +08:00
世界 9bca5a517f Add fakeip support 2023-06-07 20:31:26 +08:00
世界 aa94cfb876 Refactor rules 2023-06-07 20:28:21 +08:00
世界 52b776b561 Add dns reverse mapping 2023-06-07 20:19:46 +08:00
世界 c74d3a53d4 documentation: Update changelog 2023-05-19 15:48:35 +08:00
世界 fe7ac80a6c Update dependencies 2023-05-19 15:48:35 +08:00
世界 e50b334b9a Fix uTLS ALPN 2023-05-19 15:41:18 +08:00
XYenonand世界 a0d8e374fb Fix incorrect use of sort.Slice 2023-05-19 15:40:48 +08:00
Larvan2and世界 d3a67cb5ae Enable mkdocs search in documentation
Signed-off-by: Larvan2 <78135608+Larvan2@users.noreply.github.com>
2023-05-19 15:40:42 +08:00
世界 e69e98b185 Fix documentation 2023-05-19 15:40:13 +08:00
世界 5e1499d67b Update badtls 2023-05-19 15:39:40 +08:00
世界 e8dad1afeb Fix grpc request 2023-04-22 19:51:04 +08:00
世界 6ce4e31fc8 documentation: Update changelog 2023-04-22 08:26:09 +08:00
世界 d2d4faf520 Revert LRU cache changes 2023-04-22 08:23:49 +08:00
世界 438de36749 Make v2ray http2 conn public 2023-04-22 08:14:55 +08:00
世界andarmv9 df0eef770e Fix http response check
Co-authored-by: armv9 <48624112+arm64v8a@users.noreply.github.com>
2023-04-22 08:14:55 +08:00
世界andarmv9 bbdd495ed5 Fix v2ray-plugin TLS server name
Co-authored-by: armv9 <48624112+arm64v8a@users.noreply.github.com>
2023-04-21 17:48:36 +08:00
世界andarmv9 d686172854 Fix grpc lite request host
Co-authored-by: armv9 <48624112+arm64v8a@users.noreply.github.com>
2023-04-21 17:48:36 +08:00
H1JKand世界 e1d96cb64e Add BaseContext to http servers 2023-04-21 17:48:29 +08:00
H1JKand世界 d5f94b65b7 Fix gRPC service name escape 2023-04-21 17:48:29 +08:00
Hellojackand世界 ec2d0b6b3c Remove TLS requirement for gRPC client 2023-04-21 17:48:29 +08:00
世界 3a92bf993d platform: Add UsePlatformAutoDetectInterfaceControl 2023-04-21 17:47:17 +08:00
armv9and世界 ec13965fd0 Fix HTTP sniffer 2023-04-19 21:58:58 +08:00
世界 ddf747006e Update to uuid v5 2023-04-19 21:58:58 +08:00
世界 4382093868 Prepare deadline interface 2023-04-19 21:58:58 +08:00
世界 a5322850b3 documentation: Update client notes 2023-04-19 21:58:58 +08:00
世界 407b08975c Remove legacy warnings 2023-04-19 21:58:58 +08:00
世界 c7067ff5e8 Fix default interface monitor for darwin 2023-04-19 21:58:58 +08:00
世界 9b2384b296 Add udpnat test 2023-04-19 21:43:13 +08:00
世界 b498a22972 Fix interface monitor for android 2023-04-19 21:42:40 +08:00
世界 20e9da5c67 Fix udp timeout 2023-04-19 21:42:10 +08:00
世界 ec8974673b Fix platform interface monitor & Fix system tun stack for ios 2023-04-19 21:40:03 +08:00
世界 5e6e7923e4 Fix shadowsocksr build 2023-04-17 18:06:43 +08:00
世界 de1b5971e1 Update documentation 2023-04-16 16:28:41 +08:00
世界 5c20d0b4d5 Update dependencies 2023-04-16 16:28:41 +08:00
世界 9df96ac7f1 Fix deadline usage on websocket conn 2023-04-16 16:28:40 +08:00
世界 87cd925144 Fix conntrack return pointer 2023-04-14 21:00:45 +08:00
世界 fecb796000 android: Remove Seq.Delete warning 2023-04-14 21:00:40 +08:00
世界 cfb6c804aa Print sniff result 2023-04-14 21:00:01 +08:00
世界 11c50c7558 Fix processing domain address in packet 2023-04-14 20:59:57 +08:00
世界 34cc7f176e Fix parsing query in http path 2023-04-14 20:59:16 +08:00
Xiaokang Wang (Shelikhoo)and世界 b54da9c6af Fix '?' at end of WebSocket path get escaped
This fix align sing-box's behaviour with V2Ray when it comes to processing ? at the end of WebSocket's path.
2023-04-14 20:58:12 +08:00
世界 f44f86b832 Fix workflows 2023-04-14 20:57:08 +08:00
世界 4ebf40f582 Fix find process user 2023-04-14 20:56:58 +08:00
世界 53e4302143 Fix set HTTP TLS ALPN 2023-04-14 20:56:55 +08:00
世界 cf778eda4f Fix v2ray http transport server read request 2023-04-14 20:56:51 +08:00
世界 bb63429079 Update cancel context usage 2023-04-14 20:56:16 +08:00
世界 f7f9a7ae20 Fix write log to stderr 2023-04-14 20:55:57 +08:00
世界 8699412a4c platform: Add stderr redirect 2023-04-14 20:55:45 +08:00
世界 0d7aa19cd1 Fix write http status after response sent 2023-04-14 20:55:20 +08:00
世界 50a7295360 Replace usages of uber/atomic 2023-04-14 20:55:05 +08:00
世界 e57b6ae98d Update dependencies 2023-04-14 20:54:56 +08:00
世界 6843970536 Add loopback check 2023-04-08 09:13:50 +08:00
世界 62425ad3e4 Add close monitor 2023-04-08 08:10:03 +08:00
世界 e1e217854e Add start and close track message 2023-04-08 08:09:28 +08:00
世界 5bf177b021 platform: Fix build on windows 2023-04-07 21:10:16 +08:00
世界 72dbf2e2b4 documentation: Update changelog 2023-04-07 19:18:26 +08:00
世界 46c318c6fe Fix v2ray HTTP/1.1 transport compatibility 2023-04-07 18:20:07 +08:00
世界 05bb1b88c3 dns: Fix rewrite TTL 2023-04-07 16:19:34 +08:00
世界 5176ea9fe0 Update dependencies 2023-04-07 16:19:34 +08:00
世界 36d349acd2 dns: Fix calculate TTL 2023-04-07 13:12:16 +08:00
世界 4feee983b5 Update reality protocol 2023-04-06 19:05:05 +08:00
世界 9b12e3e389 Update client documentation 2023-04-06 12:51:26 +08:00
世界 afd3464216 Minor fixes 2023-04-05 21:41:06 +08:00
世界 8b64446274 platform: Fixes and improvements 2023-04-05 19:54:20 +08:00
世界 28aa4c4d1f Refactor log factory constructor 2023-04-03 20:24:13 +08:00
世界 0be3cdc8fb platform: Add http client 2023-04-03 15:12:44 +08:00
armv9and世界 f8be484019 conntrack: Fix missing tracking for udp conn 2023-04-02 12:06:03 +08:00
世界 35f03f092d Improve UDP domain destination NAT 2023-04-02 12:05:59 +08:00
世界 c3d7401ead platform: Add check config func 2023-04-02 10:35:03 +08:00
世界 4db7eb9d9e documentation: Update changelog 2023-03-31 16:29:08 +08:00
世界 fd4efd6104 Fix dns transport read 2023-03-31 14:31:35 +08:00
世界 19a35ec6a4 Fix http2 transport close 2023-03-31 14:31:35 +08:00
世界 2012c0ca1e Update release scripts 2023-03-31 14:31:35 +08:00
世界 187421c754 Append time to session log 2023-03-31 14:31:35 +08:00
世界 b3fb86d415 Accept "any" outbound in dns rule 2023-03-31 14:31:35 +08:00
世界 88fafd4e30 Fix dns routing context 2023-03-31 09:14:04 +08:00
世界 8056932f9c Update documentation 2023-03-27 08:23:01 +08:00
世界 c8af003bfc Update dependencies 2023-03-27 08:22:56 +08:00
世界 4999441a85 Fix missing default host in v2ray http transport`s request 2023-03-27 08:20:59 +08:00
世界 09b001e795 Revert remove install shell 2023-03-27 08:20:55 +08:00
世界 3b3a251008 Update LICENSE 2023-03-27 08:20:51 +08:00
世界 2e4eb9aa39 Update dockerfile 2023-03-24 08:29:11 +08:00
世界 77fd284703 documentation: Update changelog 2023-03-24 08:04:36 +08:00
世界 0a4517f4b7 Update dependencies 2023-03-24 07:06:45 +08:00
世界 4395db3206 documentation: Update set_system_proxy usage 2023-03-23 21:27:50 +08:00
世界 dd5b0abc67 Fix slow open 2023-03-23 17:14:38 +08:00
世界 466800aa3a Fix wireguard mutex 2023-03-23 15:43:17 +08:00
世界 4328c535a9 Improve timeout canceler 2023-03-23 15:39:12 +08:00
世界 f9516709da Update documentation 2023-03-23 07:54:24 +08:00
世界 5dce722879 Update dependencies 2023-03-23 07:49:14 +08:00
世界 9324a39d4e Fix import format 2023-03-20 23:01:54 +08:00
世界 84904c5206 Create working directory if not exists 2023-03-20 19:33:00 +08:00
世界 fe4b429fc2 hysteria: Accept inbound configuration without users 2023-03-20 19:22:46 +08:00
世界 f680d0acaf Add with_reality_server to release build tags 2023-03-20 17:36:59 +08:00
世界 4baff5aeb1 documentation: Update changelog 2023-03-20 17:32:59 +08:00
世界 f25296fb23 Update dependencies 2023-03-20 17:27:48 +08:00
世界 e717852c73 Fix optional listen address 2023-03-19 20:46:22 +08:00
世界 13dc70f649 Fix make build 2023-03-19 16:57:07 +08:00
世界 46040a71c3 Fix vision padding overflow 2023-03-19 10:25:35 +08:00
世界 0558b3fc5c ntp: Add write_to_system service option 2023-03-18 23:11:40 +08:00
世界 99b2ab5526 Add command to fetch a URL 2023-03-18 21:02:29 +08:00
世界 e5f3bb6344 Add command to connect an address 2023-03-18 20:27:38 +08:00
世界 c7f89ad88e Add multiple configuration support 2023-03-18 20:27:38 +08:00
世界 e0d9f79445 Fix test 2023-03-18 17:02:55 +08:00
世界 b6dbb69fc4 Fix write nil in buffered vectorised writer 2023-03-18 16:32:28 +08:00
世界 b76fabee65 documentation: Fix broken link 2023-03-18 16:31:15 +08:00
世界 872bcfd1c0 readme: Add packaging status 2023-03-17 17:58:08 +08:00
世界 b033c13ca2 documentation: Update stable changelog 2023-03-17 17:58:08 +08:00
renovate[bot]世界renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2db188f3a1 dependencies: Update actions/setup-go action to v4
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-17 17:58:08 +08:00
世界 11de271c8f Add experimental debug options 2023-03-17 17:58:08 +08:00
世界 40c800c57c documentation: Fix typo 2023-03-17 13:34:36 +08:00
世界 91b0540e95 documentation: Update UoT application support status 2023-03-17 13:28:05 +08:00
世界 ce6d186345 Update documentation 2023-03-17 13:07:22 +08:00
世界 32bc4450a7 Update dependencies 2023-03-17 12:59:12 +08:00
世界 43f31b40ba Update UoT protocol 2023-03-17 12:57:48 +08:00
世界 a3a5185b15 platform: Fix bytes format 2023-03-16 11:28:54 +08:00
世界 14a0f180c8 ios: Add with_quic tag in build 2023-03-16 11:28:54 +08:00
世界 cc9cb0b477 platform: Add oom killer 2023-03-16 11:28:54 +08:00
世界 2cb0e37f50 platform: Add low memory interface 2023-03-16 00:36:04 +08:00
世界 dbd5be55b0 tun: Create gVisor stack by default in Apple Network Extension 2023-03-15 21:50:18 +08:00
世界 f674b4fbd5 Fix build embed tor for mobile 2023-03-15 20:59:45 +08:00
世界 5a4e8fea81 Fix lint 2023-03-15 14:56:06 +08:00
世界 78e02b52ca Update UoT protocol 2023-03-15 14:52:32 +08:00
世界 ffdaae90d7 Update dependencies 2023-03-15 11:59:15 +08:00
世界 c77681ea17 Fix close platform tun 2023-03-13 19:47:00 +08:00
世界 d824390167 Fix cross make build 2023-03-13 19:46:20 +08:00
世界 70cf681ff2 Remove length limit on short_id for reality TLS config 2023-03-13 19:46:16 +08:00
wwqgtxxand世界 b004b9ec81 Fix stack wireguard device returning non-nil interface containing nil pointer 2023-03-13 19:46:16 +08:00
世界 657b05fd96 Print command to shell error 2023-03-13 19:46:16 +08:00
世界 caad60da45 Apply --disable-color to global logger 2023-03-13 11:23:00 +08:00
世界 7d22cf9b45 Support $schema in configuration file 2023-03-13 10:58:29 +08:00
世界 5cb178ca93 Update documentation 2023-03-12 23:07:38 +08:00
世界 16788008b6 Update dependencies 2023-03-12 23:07:24 +08:00
世界 6ec7a33046 Fix make install 2023-03-11 19:24:19 +08:00
世界 6af9c2b3ca Add health check support for http-based v2ray transport 2023-03-11 15:49:02 +08:00
世界 bdc620dab1 Fix http server usage 2023-03-11 15:05:07 +08:00
世界 a88820af31 Fix missing default shadowtls version 2023-03-11 10:12:46 +08:00
世界 3688f2e114 Update documentation 2023-03-10 11:15:00 +08:00
世界 a183958d53 Update dependencies 2023-03-09 23:24:05 +08:00
世界 1c8a9e91b7 Generate version during compilation 2023-03-09 23:24:05 +08:00
世界 325f6c71ff Fix windows interface monitor 2023-03-09 16:00:57 +08:00
世界 6c6c0792ad Update reality and uTLS 2023-03-09 10:51:01 +08:00
世界 9264f2307c Fix link broken in installation documentation page 2023-03-08 15:56:41 +08:00
世界 87dd328700 Fix build check 2023-03-08 15:23:46 +08:00
世界 0cec92dd0f Update documentation 2023-03-08 14:59:09 +08:00
世界 e88afa9665 Fix vmess server buffer 2023-03-07 17:07:37 +08:00
世界 3883a81315 Check constant.Version before build release 2023-03-06 16:34:44 +08:00
Dmitry Rand世界 c919ad079a systemd: Add reload command 2023-03-06 16:32:54 +08:00
世界 83593aee70 Fix vless read cache 2023-03-06 11:19:38 +08:00
世界 ac7cc09694 Update documentation 2023-03-05 23:37:12 +08:00
世界 d032e3568b Update dependencies 2023-03-05 21:38:02 +08:00
世界 c24df037ac Add documentation for tun platform options 2023-03-05 15:19:13 +08:00
世界 a2d43b3746 Fix open cache file 2023-03-05 14:57:50 +08:00
世界 5b3b74bd0f Fix vision read 2023-03-05 14:57:50 +08:00
世界 d24d3b26dc Fix uTLS randomized fingerprint 2023-03-05 14:57:50 +08:00
seiunekoand世界 5db3cd7781 Fix documentation typo 2023-03-05 14:57:50 +08:00
世界 c88af8b081 Fix documentation 2023-03-05 14:57:50 +08:00
世界 45852ca3e7 Fix check config 2023-03-05 14:57:50 +08:00
Hellojackand世界 03ce555104 Add generate commands 2023-03-05 11:21:32 +08:00
世界 dd0a07624e Add stop platform command 2023-03-04 00:40:47 +08:00
世界 b9b2b77814 Add reload platform command 2023-03-03 21:59:54 +08:00
世界 2366835121 Fix close conn 2023-03-03 19:27:30 +08:00
database64128 42e1dea7d2 Update .gitignore 2023-03-03 18:51:33 +08:00
Ella Hollywoodand世界 13d7716b02 Fix documentation typo 2023-03-03 16:35:06 +08:00
世界 7ecb9fc738 Minor fixes 2023-03-03 16:31:07 +08:00
世界 19b15e0d10 Fix UoT UDP address 2023-03-03 11:34:51 +08:00
database64128 0b15de461b Update tfo-go 2023-03-03 10:16:38 +08:00
世界 27aba99e6c Fix command client connect 2023-03-02 16:40:28 +08:00
世界 8151bcfd6b Add ios memory limit 2023-03-02 15:04:59 +08:00
世界 e8802357e1 Fix vless tests 2023-03-02 00:31:56 +08:00
世界 6e22c004f6 Improve server error handling 2023-03-02 00:18:35 +08:00
世界 20e1caa531 Fix custom tls server listener 2023-03-02 00:01:40 +08:00
世界 32ad3c3db3 Remove okhttp form modern fingerprint list 2023-03-01 21:17:30 +08:00
世界 1f5f8a7dde Fixed user flow in vless server 2023-03-01 20:28:40 +08:00
世界 6da1460795 Fix geo resource download path 2023-03-01 19:09:21 +08:00
世界 b14ae51f71 Fix create badhttp2 server 2023-03-01 19:09:21 +08:00
世界 5af8d001ae Refactor platform command api 2023-03-01 19:09:21 +08:00
世界 0ca344df5f Fix uTLS ALPN 2023-02-28 21:16:31 +08:00
世界 49f568abbd Separate uTLS random fingerprint 2023-02-28 21:10:11 +08:00
世界 3b4e811907 Add reality client fallback 2023-02-28 20:55:14 +08:00
世界 d0e9443031 Enable XUDP by default in VLESS 2023-02-28 20:52:26 +08:00
世界 f7e9d9ab1f Fix check early conn 2023-02-28 20:16:15 +08:00
世界 7834d6bca7 Add tun platform options 2023-02-28 19:02:27 +08:00
世界 ed50257735 Add custom TLS server support for http based v2ray transports 2023-02-28 13:03:44 +08:00
世界 f15f525c5c Merge tls interface to library 2023-02-28 11:30:46 +08:00
世界 e4bff0460d Update vision protocol 2023-02-27 15:07:15 +08:00
世界 5ce3ddee9b Add early conn interface 2023-02-26 23:08:20 +08:00
世界 22bf7a9509 Update reality server 2023-02-26 20:55:36 +08:00
世界 842730707c Update TUN creation 2023-02-26 20:55:15 +08:00
世界 a8f13bd956 Fix documentation 2023-02-25 17:25:56 +08:00
世界 cd5c2a7999 Update documentation 2023-02-25 16:28:39 +08:00
世界andGitHub fbc94b9e3e Add VLESS server, vision flow and reality TLS 2023-02-25 16:24:08 +08:00
zakuwakiandGitHub e766f25d55 Fix private ip will never be matched 2023-02-24 13:31:49 +08:00
世界 140ed9a4cb Fix platform wrapper 2023-02-24 13:00:49 +08:00
世界 60094884cd Update documentation 2023-02-22 11:45:31 +08:00
H3arnandGitHub 0e8a4d141a Fix incorrect NTP server address 2023-02-21 23:08:05 +08:00
世界 17b78a6339 Fix documentation 2023-02-21 22:06:12 +08:00
世界 e99741159b Update documentation 2023-02-21 20:54:25 +08:00
世界 6b9603227b Add strict mode support for shadowtls v3 2023-02-21 20:51:26 +08:00
世界 23e8d282a3 Add multiple server names and multi-user support for shadowtls 2023-02-21 16:09:06 +08:00
世界 611d6bbfc5 Add NTP service 2023-02-21 16:09:06 +08:00
世界 f26785c0ba Add uTLS support for shadowtls v3 2023-02-20 21:04:07 +08:00
世界 5bcfb71737 Update dependencies 2023-02-20 21:04:07 +08:00
世界 4135c4974f Merge shadowtls to library 2023-02-20 13:53:06 +08:00
世界 222196b182 Add libbox wrapper 2023-02-20 11:07:49 +08:00
世界 86e55c5c1c Fix tproxy inbound 2023-02-19 18:56:38 +08:00
世界 73c068b96f Update documentation 2023-02-19 17:49:05 +08:00
世界 f516026540 Fix shadowtls in go versiojns below 1.20 2023-02-19 12:02:11 +08:00
dyhkwongandGitHub 3c5bc842ed Update QUIC v2 version number and initial salt 2023-02-18 23:51:55 +08:00
世界 d8270a66f4 Update release script 2023-02-18 21:14:17 +08:00
世界 123c383eae Fix documentation 2023-02-18 19:33:35 +08:00
世界 67814faf92 Remove TLS min version for shadowtls v3 2023-02-18 19:26:05 +08:00
世界 ec4a0c8497 Update documentation 2023-02-18 15:02:27 +08:00
世界andGitHub 21cb227bc2 Add ShadowTLS protocol v3 2023-02-18 14:55:47 +08:00
世界 1610bdc5dd Update workflow 2023-02-18 14:28:21 +08:00
世界 3296a2f7b2 Update dependencies 2023-02-18 14:28:21 +08:00
世界 2bd91baad0 Add fallback support for v2ray transport 2023-02-18 14:28:21 +08:00
世界 a624cd9b49 Disable vmess header protection if transport enabled 2023-02-13 05:15:26 +08:00
Tim XylonandGitHub 02afba132f Replace deprecated 'set-output' 2023-02-09 22:07:00 +08:00
世界 99890a1af0 Fix socks connect response 2023-02-09 21:25:00 +08:00
世界 437f1f819c Fix lint 2023-02-09 21:01:48 +08:00
世界 92a79e6158 Remove cancel-workflow-action 2023-02-09 18:04:49 +08:00
renovate[bot]世界renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c9efd0a74f [dependencies] Update golang Docker tag to v1.20
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 18:04:16 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9da349748a [dependencies] Update github-actions
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 17:42:06 +08:00
世界 2423cbbbfe Add renovate config 2023-02-09 17:39:15 +08:00
Gavin Luoand世界 4833f6d5db Fix systemd service caps for process sniffing 2023-02-09 13:32:31 +08:00
世界 9db3cb5cb7 Update scripts 2023-02-09 13:27:05 +08:00
shadow750d6andGitHub c14b353a29 Fix parse hysteria UDP message 2023-02-09 13:20:16 +08:00
世界 19d08b55c8 Update documentation 2023-02-08 17:35:50 +08:00
世界 39514b3ca0 Add v2ray user stats api 2023-02-08 16:50:15 +08:00
世界 7ea9d48987 Add DHCP DNS server support 2023-02-08 16:43:29 +08:00
lyc8503andGitHub df3a982141 Add SSH outbound host key validation 2023-02-08 16:20:48 +08:00
世界andGitHub 687b4509df Add query_type DNS rule item 2023-02-08 16:18:40 +08:00
世界 41ec2e7944 Add support for clash DNS query API 2023-02-08 14:13:33 +08:00
世界 1bd3a9144d Upgrade tfo-go 2023-02-08 14:13:33 +08:00
世界 6e852cc99b Update dependencies 2023-02-08 14:13:15 +08:00
世界 8320dd0b51 Improve vmess request 2023-02-07 14:53:08 +08:00
世界 960d04d172 Fix match geoip 2023-02-07 12:21:00 +08:00
世界 86ea035bdd Fix ipv6 redir port 2023-02-05 14:48:02 +08:00
世界 9b6449dcf4 Fix find NDK on macOS 2023-02-02 16:30:50 +08:00
世界 4e22ac1a35 Update documentation 2023-02-02 16:11:29 +08:00
世界 8a779f6e94 Update dependencies 2023-02-02 15:38:48 +08:00
世界 d461768ffb Fix build with go1.20 2023-02-02 15:25:34 +08:00
Dmitry Rand世界 5d41e328d4 ignore domain case in route rules 2023-02-02 15:25:34 +08:00
世界 fe492904e9 Fix auth_user route for naive inbound 2023-01-19 10:47:22 +08:00
世界 168253b851 Fix inbound default DF 2023-01-19 10:36:25 +08:00
HellojackandGitHub 05620a369e Fix gRPC lite header
Manually set the first byte to 0x00 (No Compression) since we can not ensure that the buffer is not polluted before.
2023-01-16 16:23:06 +08:00
世界 8e0fe55363 Fix wireguard events 2023-01-15 19:48:50 +08:00
世界 59e521c1db Fix convert netaddr 2023-01-14 20:04:15 +08:00
世界 f32c149738 Bump version 2023-01-14 16:01:07 +08:00
世界 23a35b3c06 Fix create UDP DNS transport from plain IPv6 address 2023-01-13 11:51:20 +08:00
世界 044f9c5d4f Fix write to h2 conn after closed 2023-01-08 15:43:12 +08:00
世界 54f9625bdc Fix DNS log 2023-01-03 17:04:10 +08:00
世界 ff0693be32 Bump version 2023-01-03 10:53:38 +08:00
世界 53d9ad93e3 Improve DNS log 2023-01-03 10:36:18 +08:00
世界 f5c5570bec Skip set windows system proxy bypass list 2022-12-26 12:33:08 +08:00
世界 53f19a6ead Fix override packet conn 2022-12-21 21:58:03 +08:00
世界 cfaf15f429 Fix DNS response TTL 2022-12-19 13:10:57 +08:00
世界 9e67f3b4a5 Fix user from stream packet conn 2022-12-18 16:08:49 +08:00
isnowlyand世界 4d2185a2d4 Fix http proxy auth 2022-12-18 16:08:49 +08:00
世界 33f22263ca Update dependencies 2022-12-18 15:40:19 +08:00
世界 d09aa07d21 Fix android i686 compiler 2022-12-11 15:01:54 +08:00
世界 8afb8ca7eb Update documentation 2022-12-11 14:40:03 +08:00
世界 80ed5bf8fb Fix android package 2022-12-11 14:38:01 +08:00
世界 81e7b0b320 Fix linux package 2022-12-11 11:51:25 +08:00
世界 a828c3b5da Fix acme config 2022-12-06 13:36:42 +08:00
世界 c95e4a13a1 Fix vmess packet conn 2022-12-06 13:02:28 +08:00
世界 726a7e19eb Suppress quic-go set DF error 2022-12-06 12:51:52 +08:00
世界 8953ddc6e0 Update workflow 2022-12-03 17:03:04 +08:00
世界 7ebbd58b00 Update documentation 2022-12-03 14:38:52 +08:00
世界 d0095fd0f4 Fix close clash cache 2022-12-03 13:29:37 +08:00
世界 66d8d563eb Add WorkingDirectory for systemd service 2022-11-28 18:30:50 +08:00
世界 4bf96c7eb5 Fix quic stub 2022-11-28 16:06:54 +08:00
世界 f687c25fa9 Update documentation 2022-11-28 13:11:07 +08:00
世界 a92412ecac Fix router 2022-11-28 13:11:07 +08:00
世界 8dcafa5b33 Add trojan-go multiplex support for trojan inbound 2022-11-28 12:51:23 +08:00
世界 7a02cb83a7 Revert "Fix listen packet on address"
This reverts commit d1fe17a4db.
2022-11-28 12:51:23 +08:00
世界 51ce672076 Fix crash when input bad method in shadowsocks multi-user inbound 2022-11-28 12:51:23 +08:00
世界 7734afc40c Update dependencies 2022-11-28 12:51:23 +08:00
世界 ee3cd49aa5 Fix tls config for h2 server 2022-11-26 14:55:51 +08:00
世界 bf20ff84b5 Fix lint 2022-11-26 11:21:24 +08:00
世界 c58302554c Fix documentation 2022-11-26 11:06:57 +08:00
世界 05ed88aba8 Update documentation 2022-11-25 22:59:30 +08:00
世界 9f5cc0442b Fix dockerfile 2022-11-25 22:59:30 +08:00
世界 2641a43ad8 Remove test on pull request 2022-11-25 21:12:45 +08:00
世界 4a6ab5e9fd Fix cancel on start 2022-11-25 21:12:45 +08:00
世界 d1fe17a4db Fix listen packet on address 2022-11-25 21:12:45 +08:00
世界 7c910165ef Cleanup code 2022-11-24 12:37:29 +08:00
世界 8c1fddcf8d Remove connect packet conn 2022-11-24 12:01:25 +08:00
HellojackandGitHub 01b4769852 Cleanup gun conn code 2022-11-23 14:56:31 +08:00
世界 a401828ed5 Fix shadowtls server detection 2022-11-22 22:15:38 +08:00
世界 ffd54eef6c Update documentation 2022-11-21 21:20:44 +08:00
世界 c16e4316d6 Fix shadowtls server 2022-11-21 21:20:44 +08:00
世界 8b7fe20b7f Include uTLS in release 2022-11-21 15:25:49 +08:00
世界 696c1065b6 Update stable documentation 2022-11-21 14:57:22 +08:00
世界 5d690f4147 Update documentation 2022-11-21 13:18:04 +08:00
世界 f906641a82 Add uTLS to makefile default tags 2022-11-21 13:18:04 +08:00
世界 89913dfa8c Improve shadowtls server 2022-11-21 13:18:04 +08:00
世界 468778f67f Update dependencies 2022-11-21 13:18:04 +08:00
世界 22a22aebe2 Fix default dns transport strategy 2022-11-21 13:18:04 +08:00
世界 a2d2ec9b45 Update documentation 2022-11-15 17:36:42 +08:00
世界 2695b3516e Update issue template 2022-11-13 11:45:24 +08:00
世界 3a9ef8fac0 Remove unused 2022-11-13 11:30:48 +08:00
世界 ebad363201 Fix create TLS config 2022-11-13 11:24:37 +08:00
世界 11076d52cd Fix dns buffer & quic retry 2022-11-13 11:16:10 +08:00
世界 5eb132063e Fix connect packet connection for mux client 2022-11-12 03:53:42 +08:00
世界 13ab5d3348 Remove follow in update script 2022-11-11 22:32:24 +08:00
世界 ce1ddc400f Support x/h2 v0.2.0 deadline 2022-11-11 22:08:20 +08:00
arm64v8aand世界 2c9d25e853 Fix websocket alpn 2022-11-11 20:01:49 +08:00
世界 3d76777760 Fix tor geoip 2022-11-10 22:42:05 +08:00
世界 24f4dfea04 Fix hysteria test 2022-11-10 21:10:18 +08:00
世界 2fc1a0a9dd Update documentation 2022-11-10 16:33:10 +08:00
世界 617aba84e4 Add multi user support for hysteria inbound 2022-11-09 21:00:08 +08:00
世界 5510c474c7 Fix h2c transport 2022-11-09 12:15:14 +08:00
世界 eb2e8a0b40 Add custom tls client support for std grpc 2022-11-09 11:46:29 +08:00
世界 972491c19d Fix default local DNS server behavior 2022-11-09 10:35:16 +08:00
世界 7358ca4a52 Fix vmess request buffer 2022-11-09 10:16:22 +08:00
世界 61c274045a Update install go script 2022-11-08 23:19:53 +08:00
世界 f205140b04 Fix smux keep alive 2022-11-08 16:45:38 +08:00
世界 1db8e03c86 Fix format 2022-11-08 14:54:19 +08:00
世界 2ecf86c2bc Update patched quic-go 2022-11-08 13:54:01 +08:00
世界 999a847e86 Add custom wireguard worker size option 2022-11-08 13:48:14 +08:00
世界 1f63ce5dee Fix reset outbound 2022-11-06 10:36:19 +08:00
世界 0ad1bbea11 Fix wireguard close 2022-11-06 10:20:23 +08:00
世界 b2cd78d279 Move WFP manipulation to strict route 2022-11-06 10:16:07 +08:00
世界 d5bb58a0b4 Update documentation 2022-11-06 10:16:07 +08:00
世界 7f84936050 Split bind_address 2022-11-06 10:16:07 +08:00
Dreamacroand世界 6adfea0a72 Fix macOS Ventura process name match 2022-11-06 10:16:07 +08:00
Hellojackand世界 10f213bf3d Adjust uTLS wrapper 2022-11-06 10:16:07 +08:00
世界 6e8c4f6576 Update documentation 2022-10-31 13:59:52 +08:00
世界 9779dc0154 Fix test 2022-10-31 13:59:52 +08:00
世界 a2abe31298 Fix uTLS config 2022-10-31 13:59:52 +08:00
世界 930d177dd0 Update dependencies 2022-10-31 13:59:52 +08:00
Fei1Yangand世界 f3d1b59173 Update container action 2022-10-29 18:01:32 +08:00
世界 14452f3049 Update documentation 2022-10-29 18:00:05 +08:00
世界 4119c8647b Update dependencies 2022-10-29 17:56:21 +08:00
世界 90a94a8c63 Improve local dns transport 2022-10-29 17:37:11 +08:00
世界 b0c39ac7ff Suppress no network error 2022-10-28 09:54:04 +08:00
世界 8703e1ff98 Fix decrypt xplus packet 2022-10-28 09:53:57 +08:00
世界 35886b88d7 Add option for custom wireguard reserved bytes 2022-10-28 09:53:57 +08:00
永雏塔菲and世界 d583b35717 Add s390x architecture support
* Update debug.yml

Signed-off-by: 永雏塔菲 <108621198+taffychan@users.noreply.github.com>
2022-10-28 09:53:57 +08:00
Hellojackand世界 217ffb2f95 Update uTLS usage
* Update new uTLS fingerprints

* Update documentation
2022-10-28 09:53:57 +08:00
世界 22f06f582b Fix v2ray api 2022-10-26 20:06:13 +08:00
世界 f2b5098fa0 Update documentation 2022-10-25 21:26:28 +08:00
世界 0ca3290364 Add go1.18 debug build 2022-10-25 21:25:55 +08:00
世界 43d5b8598b Fix shadowtls conn 2022-10-25 21:25:42 +08:00
世界 f3e1d1defc Fix h3 dns transport 2022-10-20 11:04:03 +08:00
世界 95c03c9373 Fix copy pipe 2022-10-20 10:57:57 +08:00
世界 7e0958b4ac Update documentation 2022-10-19 10:55:06 +08:00
Skyximand世界 6a26737508 Check destination before udp connect 2022-10-19 10:22:46 +08:00
世界 92a92f39c5 Fix naive overflow 2022-10-18 17:52:52 +08:00
世界 fc533cd38d Fix DF for hysteria 2022-10-18 17:27:50 +08:00
世界 68e286499d Update dependencies 2022-10-18 17:27:50 +08:00
世界 f5c1900aad Add message for tfo error 2022-10-18 17:27:50 +08:00
世界 6591dd58ca Remove strict route on windows
replaced by custom route
2022-10-12 16:24:45 +08:00
XYenonandGitHub 54af113363 Add custom route support (#147) 2022-10-12 16:20:17 +08:00
世界 3f1fe814ef Fix sniff fragmented quic client hello 2022-10-12 16:11:42 +08:00
世界 5a2cebebd1 Remove unused 2022-10-10 14:23:34 +08:00
世界 b8009d61b2 Fix tfo headroom 2022-10-10 13:33:48 +08:00
世界 a61a64bf9e Add shadowtls inbound test 2022-10-10 11:31:03 +08:00
世界 7d17c52fea Add more messages to darwin route error 2022-10-09 21:22:07 +08:00
世界 f5b15b392b Fix ssh outbound 2022-10-09 20:43:01 +08:00
世界 8a53846efd Fix uTLS handshake 2022-10-08 20:31:01 +08:00
世界 badc454452 Fix test 2022-10-08 20:30:52 +08:00
世界 a01bb569d1 Fix websocket headroom 2022-10-08 20:09:36 +08:00
世界 89ff9f8368 Fix interface monitor 2022-10-08 20:09:36 +08:00
世界 7f816a2ebc Add sniff_timeout 2022-10-08 20:09:36 +08:00
世界 39c141651a Update documentation 2022-10-06 23:33:57 +08:00
世界 b0ad9bb6f1 Add shadowtls v2 support 2022-10-06 22:47:11 +08:00
世界 d135d0f287 Update tfo-go usage 2022-10-06 21:58:50 +08:00
世界 b183ccf23d Fix wfp filter weight 2022-10-05 20:24:27 +08:00
世界 c2969bc186 Update documentation 2022-10-03 04:36:54 +08:00
世界 bd86bfcd22 Fix check system stack packet 2022-10-03 04:36:54 +08:00
世界 8aec64b855 Add v2ray mux support for all connections 2022-10-03 04:34:59 +08:00
世界 1445bdba37 Fix trojan fallback 2022-10-01 11:41:15 +08:00
世界 29d08e63b5 Fix clash tracker 2022-10-01 11:29:46 +08:00
世界 1173fdea64 Improve tls writer 2022-10-01 11:29:46 +08:00
世界 968430c338 Minor fixes 2022-09-30 21:08:07 +08:00
世界 3e5bee6faf Fix windows route 2022-09-30 00:36:42 +08:00
世界 aa613cba73 Fix dns close 2022-09-29 09:12:13 +08:00
世界 1e510511ae Fix random seed 2022-09-29 08:49:34 +08:00
世界 1b44faed17 Add v2ray stats api 2022-09-29 08:49:34 +08:00
世界 c7a485815c Add binary to .gitignore 2022-09-26 19:36:51 +08:00
世界 7f9c870bba Add direct io option for clash api 2022-09-26 15:31:02 +08:00
世界 b5564ef3d3 Fix bind control 2022-09-26 13:50:54 +08:00
世界 8ce244dd04 Fix documentation
Signed-off-by: 世界 <i@sekai.icu>
Signed-off-by: unknowndevQwQ <unknowndevQwQ@pm.me>
2022-09-26 12:25:18 +08:00
世界 0f57b93925 Update documentation 2022-09-25 22:29:18 +08:00
世界 c90a77a185 Refine 4in6 processing 2022-09-25 22:29:18 +08:00
世界 c6586f19fa Fix read source address from grpc-go 2022-09-25 22:29:18 +08:00
世界 cbab86ae38 Refine tproxy write back 2022-09-25 22:29:18 +08:00
世界 17b5f031f1 Fix shadowsocks plugins 2022-09-25 16:43:12 +08:00
世界 b00b6b9e25 Fix fqdn socks5 outbound connection 2022-09-25 14:42:39 +08:00
世界 fb6b3b0401 Fix missing source address from transport connection 2022-09-23 18:55:28 +08:00
世界 22ea878fe9 Improve websocket writer 2022-09-23 18:55:07 +08:00
世界 abe3dc6039 Add self sign cert support 2022-09-23 17:13:18 +08:00
世界 852829b9dc Add VMess benchmark result 2022-09-23 16:13:29 +08:00
世界 407509c985 Fix leaks and add test 2022-09-23 13:14:31 +08:00
世界 9856b73cb5 Update documentation 2022-09-23 10:30:07 +08:00
世界 f42356fbcb Fix system stack ipv4 overflow 2022-09-23 10:29:15 +08:00
世界 d0b467671a Merge VLESS to library 2022-09-23 10:28:51 +08:00
世界 c18c545798 Add stdio test 2022-09-23 10:28:24 +08:00
世界 693ef293ac Update buffer usage 2022-09-23 10:27:48 +08:00
世界 a006627795 Disable DF on direct outbound by default 2022-09-23 10:27:46 +08:00
世界 0738b184e4 Fix url test interval 2022-09-23 10:27:42 +08:00
世界 42524ba04e Fix dns sniffer 2022-09-17 16:59:28 +08:00
世界 63fc95b96d Add mux server and XUDP client for VMess 2022-09-17 11:54:04 +08:00
世界 ab436fc137 Update documentation 2022-09-16 15:48:31 +08:00
世界 1546770bfd Skip bind on local addr 2022-09-16 15:35:29 +08:00
世界 f4b2099488 Fix tun log 2022-09-16 15:32:50 +08:00
世界 a2c4d68031 Fix create UDP transport 2022-09-15 16:46:53 +08:00
世界 cfe14f2817 Suppress bad http2 error 2022-09-15 15:34:52 +08:00
世界 a5402ffb69 Add back urltest outbound 2022-09-15 15:22:08 +08:00
世界 4d24cf5ec4 Update documentation 2022-09-15 13:25:51 +08:00
世界 668d354771 Make gVisor optional 2022-09-15 12:24:08 +08:00
世界 ad14719b14 Fix clash api proxy type 2022-09-14 23:02:11 +08:00
世界 d9aa0a67d6 Fix port rule match logic 2022-09-14 22:03:26 +08:00
世界 92bf784f4f Move shadowsocksr implementation to clash 2022-09-14 21:57:40 +08:00
世界 395b13103a Fix test 2022-09-14 18:02:51 +08:00
世界 628cf56d3c Fix close grpc conn 2022-09-14 18:02:37 +08:00
世界 ac5582537f Add back test workflow 2022-09-14 18:02:37 +08:00
世界 9aa7a20d96 Print tags in version command 2022-09-14 18:02:37 +08:00
世界 189f02c802 Refactor bind control 2022-09-14 18:02:37 +08:00
世界 2373281c41 Fix clash store-selected 2022-09-13 17:34:37 +08:00
世界 e8f4c2d36f Redirect clash hello to external ui 2022-09-13 17:29:57 +08:00
世界 07b6db23c1 Update install go script 2022-09-13 16:24:44 +08:00
世界 9a3360e5d0 Fix build on go1.18 2022-09-13 16:23:20 +08:00
世界 007a278ac8 Refactor to miekg/dns 2022-09-13 16:18:39 +08:00
世界 1db7f45370 Update documentation 2022-09-13 11:24:33 +08:00
世界 b271e19a23 Fix concurrent write 2022-09-13 10:41:10 +08:00
世界andarm64v8a 79b6bdfda1 Skip wait for hysteria tcp handshake response
Co-authored-by: arm64v8a <48624112+arm64v8a@users.noreply.github.com>
2022-09-13 10:40:26 +08:00
世界 38088f28b0 Add vless outbound and xudp 2022-09-12 21:59:27 +08:00
世界 dfb8b5f2fa Fix hysteria inbound 2022-09-12 18:35:36 +08:00
世界 9913e0e025 Add shadowsocksr outbound 2022-09-12 18:35:36 +08:00
世界 ce567ffdde Add obfs-local and v2ray-plugin support for shadowsocks outbound 2022-09-12 14:55:00 +08:00
世界 5a9913eca5 Fix socks4 client 2022-09-12 11:33:38 +08:00
世界 eaf1ace681 Update documentation 2022-09-11 22:48:42 +08:00
世界 a2d1f89922 Add custom tls client support for v2ray h2/grpclite transports 2022-09-11 22:44:35 +08:00
世界 7e09beb0c3 Minor fixes 2022-09-11 22:44:35 +08:00
世界 ebf5cbf1b9 Update documentation 2022-09-10 23:31:07 +08:00
世界 d727710d60 Run build on main branch 2022-09-10 22:54:53 +08:00
世界 0e31aeea00 Fix socks4 request 2022-09-10 22:54:50 +08:00
世界 2f437a0382 Add uTLS client 2022-09-10 22:10:45 +08:00
世界 3ad4370fa5 Add ECH TLS client 2022-09-10 22:10:45 +08:00
世界 a3bb9c2877 Import cloudflare tls 2022-09-10 22:10:45 +08:00
世界 ee7e976084 Refactor TLS 2022-09-10 22:10:45 +08:00
世界 099358d3e5 Add clash persistence support 2022-09-10 14:42:14 +08:00
世界 5297273937 Add clash mode support 2022-09-10 14:15:11 +08:00
世界 80cfc9a25b Fix processing empty dns result 2022-09-10 14:15:11 +08:00
世界 2ae4da524e Fix tun documentation 2022-09-10 10:21:42 +08:00
世界 bbe7f28545 Fix system stack crash 2022-09-09 19:44:13 +08:00
世界 78ddd497ee Fix no_gvisor build 2022-09-09 19:44:13 +08:00
世界 8d044232af Update documentation 2022-09-09 15:42:33 +08:00
世界 aa7e85caa7 Update dependencies
Add half close for smux
Update gVisor to 20220905.0
2022-09-09 14:44:18 +08:00
zakuwakiand世界 46a8f24400 Optional proxyproto header 2022-09-09 14:44:18 +08:00
世界 87bc292296 Add comment filter for config 2022-09-09 14:44:18 +08:00
世界 ac539ace70 Add system tun stack 2022-09-09 14:44:18 +08:00
世界 a15b13978f Set default tun mtu to 9000 like clash
IDK why, maybe faster in a local speed test?
2022-09-09 14:44:18 +08:00
世界 0c975db0a6 Set udp dontfrag by default 2022-09-09 14:44:18 +08:00
世界 cb4fea0240 Refactor wireguard & add tun support 2022-09-09 14:44:18 +08:00
世界 8e7957d440 Add support for use with android VPNService 2022-09-09 14:44:18 +08:00
世界 f7bed32c6f Bump version 2022-09-09 14:43:42 +08:00
世界 ef7f2d82c0 Fix match 4in6 address in ip_cidr 2022-09-09 14:07:02 +08:00
世界 7aa97a332e Fix documentation 2022-09-09 13:54:02 +08:00
世界 7c30dde96b Minor fixes 2022-09-08 18:33:59 +08:00
GyDiandGitHub 9cef2a0a8f Fix clashapi log level format error 2022-09-08 18:04:06 +08:00
世界 f376683fc3 Update documentation 2022-09-07 23:10:36 +08:00
世界 4b61d6e875 Fix hysteria stream error 2022-09-07 19:16:20 +08:00
世界 7d83e350fd Refine test 2022-09-07 19:16:20 +08:00
世界 500ba69548 Fix processing vmess termination signal 2022-09-07 19:16:20 +08:00
世界 9a422549b1 Fix json format error message 2022-09-07 13:23:26 +08:00
世界 3b48fa455e Fix naive inbound temporary 2022-09-07 12:30:54 +08:00
zakuwakiand世界 ef013e0639 Suppress accept proxyproto failed #65 2022-09-06 23:16:31 +08:00
世界 8f8437a88d Fix wireguard reconnect 2022-09-06 00:11:43 +08:00
世界 1b091c9b07 Update documentation 2022-09-04 13:15:10 +08:00
世界 4801b6f057 Fix DNS routing 2022-09-04 12:49:38 +08:00
世界 9078bc2de5 Fix write trojan udp 2022-09-03 16:58:55 +08:00
世界 b69464dfe9 Update documentation for dial fields 2022-09-03 13:02:41 +08:00
世界 62fa48293a Merge dialer options 2022-09-03 12:55:10 +08:00
世界 b206d0889b Fix dial parallel in direct outbound 2022-09-03 12:01:48 +08:00
世界 ee691d81bf Fix write zero 2022-09-03 09:25:30 +08:00
void aire()and世界 56876a67cc Fix documentation typo (#60) 2022-09-02 19:04:03 +08:00
世界 4a0df713aa Add ws compatibility test 2022-09-01 20:32:47 +08:00
世界 ef801cbfbe Fix server install script 2022-09-01 20:32:47 +08:00
世界 9378fc88d2 Add with_wireguard to default server tag 2022-09-01 20:16:20 +08:00
世界 f46bfcc3d8 Move unstable branch to dev-next 2022-08-31 23:45:42 +08:00
0x7d274284andGitHub ccdb238843 Fix documentation typo (#57) 2022-08-31 23:42:36 +08:00
世界 f1f61b4e2b Fix install documentation 2022-08-31 23:37:30 +08:00
世界 a44cb745d9 Fix write log timestamp 2022-08-31 23:35:43 +08:00
世界 f5f5cb023c Update documentation 2022-08-31 14:34:32 +08:00
世界andGitHub 5813e0ce7a Add shadowtls (#49)
* Add shadowtls outbound

* Add shadowtls inbound

* Add shadowtls example

* Add shadowtls documentation
2022-08-31 14:21:53 +08:00
dyhkwongandGitHub 5a9c2b1e80 darwin pf support (#52) 2022-08-31 14:21:37 +08:00
世界 bda34fdb3b Refactor outbound documentation 2022-08-31 13:42:30 +08:00
世界 426b677eb8 Fix process_name rule item 2022-08-31 12:51:38 +08:00
世界 67c7e9fd86 Refactor inbound documetation 2022-08-31 12:50:26 +08:00
世界 d8028a8632 Fix smux session status 2022-08-31 10:00:15 +08:00
dyhkwongandGitHub 374743d022 Add process_path rule item (#51)
* process matching supports full path
* Remove strings.ToLower
2022-08-30 10:44:40 +08:00
世界 cd98ea5008 Fix socksaddr type condition 2022-08-29 19:58:58 +08:00
世界 dbda0ed98a Add chained inbound support 2022-08-29 19:50:28 +08:00
世界 f5e0ead01c Fix inject conn 2022-08-29 19:02:41 +08:00
0x7d274284andGitHub 44818701bc Fix issue template (#48)
The correct command to get the version is `sing-box version`
2022-08-29 16:52:15 +08:00
世界 e0f7387dff Fix search android package in non-owner users 2022-08-29 12:02:29 +08:00
世界 d440a01792 Add grpc compatibility test 2022-08-29 10:15:25 +08:00
世界 665c84ee42 Fix log item on document menu 2022-08-28 12:47:23 +08:00
HellojackandGitHub e0de96eb4c Minor fixes (#45)
* Cleanup code
* Fix documentation typo
2022-08-28 12:40:44 +08:00
世界 c6ef276811 Update dependencies 2022-08-28 12:21:22 +08:00
世界 1701aaf78c Add docker image 2022-08-28 00:23:41 +08:00
世界 122daa4bfb Simplify server installation 2022-08-28 00:23:41 +08:00
世界 561a9e5275 Update documentation 2022-08-28 00:23:41 +08:00
HellojackandGitHub de2453fce9 Add gun-lite gRPC implementation (#44) 2022-08-27 21:05:15 +08:00
世界 d59d40c118 Fix sniff override destination 2022-08-27 14:37:14 +08:00
rand0mgh0standGitHub 3469df001f Fix documentation for socks inbound (#42) 2022-08-27 13:16:04 +08:00
世界 0d8cfa3031 Add vmess packetaddr option 2022-08-27 11:28:01 +08:00
世界 0289586880 Add documentation for strict_route 2022-08-27 09:31:17 +08:00
rand0mgh0standGitHub e46427c7fc docs-zh-CN: use English for License section (#40) 2022-08-26 23:21:32 +08:00
世界 3ea59d9a8e Move documentation branch to main 2022-08-26 21:53:46 +08:00
世界 e85dfc6adf Add strict_route option 2022-08-26 21:53:08 +08:00
世界 d0703b78fa Fix dns hijack on android
iproute2 on android does not support port rules
2022-08-26 21:05:45 +08:00
世界 432e6adf3e Fix TLS documentation 2022-08-26 18:36:56 +08:00
世界 a057754035 Revert linux process searcher 2022-08-26 17:36:06 +08:00
世界 0348ace253 Initial release 2022-08-26 16:40:37 +08:00
世界 c5e38203eb Fix read DNS message 2022-08-26 13:35:27 +08:00
世界 9ac31d0233 Fix ipv6 route on linux 2022-08-26 12:30:31 +08:00
世界 9d8d1cd69d Update documentation 2022-08-26 11:10:02 +08:00
世界 07a0381f8b Cleanup vmessws 2022-08-26 10:22:29 +08:00
世界 f841459004 Cleanup vmesshttp 2022-08-26 08:41:45 +08:00
世界 78a26fc139 Update documentation 2022-08-25 22:49:23 +08:00
世界 9f6628445e Improve ip_cidr rule 2022-08-25 22:23:26 +08:00
世界 fa017b5977 Add contributing documentation 2022-08-25 21:08:29 +08:00
世界 58f4a970f2 Fix route connections 2022-08-25 20:48:59 +08:00
世界 021aa8faed Fix ipv6 route on linux 2022-08-25 18:57:36 +08:00
世界 83f6e037d6 Fix http proxy with compressed response 2022-08-25 18:40:13 +08:00
世界 baf153434d Fix issue template 2022-08-25 18:40:13 +08:00
世界 d481bd7993 Fix bind_address 2022-08-25 14:50:10 +08:00
Steven TangandGitHub e859c0a6ef Fix typo in features.md (#32) 2022-08-25 13:42:22 +08:00
zakuwakiand世界 59a39e66b1 Add trojan fallback for ALPN #31 2022-08-25 13:37:32 +08:00
世界 fd5ac69a35 Let vmess use zero instead of auto if TLS enabled 2022-08-25 11:51:17 +08:00
世界 a940703ae1 Suppress expected error 2022-08-25 11:02:27 +08:00
世界 350729cde8 Remove TLS requirement on gRPC server 2022-08-25 10:52:16 +08:00
世界 2e14cd6d66 Close websocket conn gracefully 2022-08-25 10:46:14 +08:00
世界 f703524f04 Add stale workflow 2022-08-25 10:24:11 +08:00
世界 aa4435c775 Update documentation 2022-08-25 10:04:51 +08:00
ReeceandGitHub 31a2e368cc Fix zh-CN document symbol and format (#29) 2022-08-25 09:45:22 +08:00
世界 97e284e65e Initial zh-CN document translation: outbound 2022-08-24 21:02:28 +08:00
世界 a6baab92f3 Fix early close on windows and catch any 2022-08-24 19:03:15 +08:00
世界 7c76e0c3ee Initial zh-CN document translation: inbound 2022-08-24 18:43:39 +08:00
世界 591a4fcf8e Initial zh-CN document translation: shared 2022-08-24 17:39:37 +08:00
世界 71dac85600 Add ACME EAB support 2022-08-24 17:06:28 +08:00
世界 ad90ddd327 Initial zh-CN document translation: route 2022-08-24 16:56:29 +08:00
世界 03f457f3d0 Initial zh-CN document translation: DNS 2022-08-24 16:37:06 +08:00
HellojackandGitHub a878256367 Fix TLS insecure (#27) 2022-08-24 16:11:41 +08:00
世界 553f78ed55 Fix close non-duplex connections 2022-08-24 14:32:18 +08:00
世界 1bc7d2237e Initial zh-CN document translation: examples 2022-08-24 13:14:12 +08:00
世界 132222013b Initial zh-CN document translation: FAQ 2022-08-24 13:04:47 +08:00
世界 2008fb552a Initial zh-CN document translation 2022-08-24 12:45:51 +08:00
世界 236c034c62 Fix unix search path 2022-08-24 12:27:36 +08:00
世界 f87baf08d3 Fix naive padding 2022-08-24 10:21:56 +08:00
世界 22aa0c2f40 Update documentation 2022-08-24 00:39:25 +08:00
世界 88469d4aaa Check configuration before reload 2022-08-23 23:44:44 +08:00
世界 1413c5022a Add proxy protocol support 2022-08-23 21:07:35 +08:00
世界 aa8cdaee22 Handle SIGHUP signal 2022-08-23 19:56:28 +08:00
世界 9f6ff54a76 Parse X-Forward-For in HTTP requests 2022-08-23 19:53:04 +08:00
世界 e750c747c6 Fix test naive inbound with nginx 2022-08-23 14:41:31 +08:00
世界 9edfe7d9d3 Accept HTTP1 in naive inbound 2022-08-23 13:25:03 +08:00
世界 c9b7acd22c Add v2ray transport to trojan 2022-08-23 13:24:52 +08:00
世界 2ba2f0298c Free memory after start 2022-08-22 23:17:08 +08:00
世界 a24a2b475a Allow http1 in v2ray HTTP transport 2022-08-22 23:02:25 +08:00
世界 4005452772 Add v2ray HTTP transport 2022-08-22 22:20:19 +08:00
世界 d4b7e221f0 Add v2ray QUIC transport 2022-08-22 22:20:19 +08:00
世界 77c98fd042 Add v2ray WebSocket transport 2022-08-22 22:20:18 +08:00
世界 082872b2f3 Prepare v2ray client/server transport 2022-08-22 18:57:05 +08:00
世界 6253e2e24c Fix clash server early close 2022-08-22 16:33:33 +08:00
世界 4216afe62f Minor fixes 2022-08-22 16:14:53 +08:00
世界 8fec78a5cd Apply bind address to udp connect 2022-08-22 14:35:05 +08:00
世界 7ba0a14e97 Add bind address to outbound options 2022-08-22 14:28:23 +08:00
世界 3a442347a5 Update documentation 2022-08-22 14:19:32 +08:00
世界 c4f4fd97d6 Fix tests 2022-08-22 12:02:16 +08:00
世界 ac0ead1473 Add strategy setting for each dns server 2022-08-22 12:01:50 +08:00
世界 83cea9475d Fix vectorised writer 2022-08-21 22:35:58 +08:00
世界 dc6bb7ab1b Add ssh outbound 2022-08-21 22:30:48 +08:00
世界 c71f6ba377 Add FAQ page 2022-08-21 22:26:08 +08:00
世界 b1b1ab5350 Update release config 2022-08-21 13:03:19 +08:00
世界 7613b8dbfe Fix gvisor udp write back 2022-08-21 11:40:04 +08:00
世界 e4cece6095 Add tor outbound 2022-08-21 01:06:34 +08:00
世界 bcefe8716f Fix typo in documentation 2022-08-20 21:16:14 +08:00
世界 746b5d8be0 Add trojan connection fallback 2022-08-20 21:08:53 +08:00
世界 f13ecbd9bb Wait a second before check route update 2022-08-20 13:42:28 +08:00
世界 e839beb73b Skip bind connection with private destination to interface 2022-08-20 13:31:15 +08:00
世界 b797cdf91e Fix write socks5 username password auth request 2022-08-20 13:26:49 +08:00
世界 84e4677a94 Improve process searcher 2022-08-20 12:11:27 +08:00
世界 0377a11719 Fix route on android 2022-08-20 10:27:13 +08:00
世界 d0fa79044a Start outbounds before router 2022-08-20 09:13:00 +08:00
世界 f381f8d35a Fix read packages in android 13 2022-08-20 03:05:50 +08:00
世界 92e1e5b893 Attempt to unwrap ip-in-fqdn socksaddr 2022-08-20 00:01:08 +08:00
世界 8e8b4dba22 Update documentation 2022-08-19 22:30:12 +08:00
世界 767cd55817 Fix acme issuer 2022-08-19 18:42:12 +08:00
世界 eb0ef439d6 Add with_acme to server scripts 2022-08-19 17:48:56 +08:00
世界 0bf78c0a8a Update gVisor to 20220815.0 2022-08-19 17:47:54 +08:00
世界 12d7e19f32 Allow read config from stdin 2022-08-19 15:43:13 +08:00
世界andGitHub d1c3dd0ee1 Add hysteria and acme TLS certificate issuer (#18)
* Add hysteria client/server
* Add acme TLS certificate issuer
2022-08-19 15:42:57 +08:00
世界 3dfa99efe1 Add back dns concurrent write lock 2022-08-19 10:51:26 +08:00
世界 d7bd221a47 Fix darwin tun 2022-08-19 08:35:08 +08:00
世界 1b7a3b4a74 Fix log to file 2022-08-19 08:26:26 +08:00
世界 c8424ed8fd Fix format 2022-08-19 08:26:26 +08:00
世界 150df1ae8e Add write lock to shadowsocks aead writer 2022-08-19 08:26:26 +08:00
世界 5ca9d77176 Fix close shadowsocks server conn 2022-08-18 23:16:05 +08:00
世界 aa89fcc29d Fix find process with lwip stack 2022-08-18 10:10:30 +08:00
Tianling ShenandGitHub 7ead0de26b Fix geosite path (#17)
`geoIPOptions` -> `geositeOptions`

Signed-off-by: Tianling Shen <i@cnsztl.eu.org>
2022-08-18 10:00:56 +08:00
世界 f22c2690ec Fix lint 2022-08-17 20:15:35 +08:00
世界 738bb0eabc Improve async dns transports 2022-08-17 20:10:59 +08:00
世界 002a519a17 Update documentation 2022-08-17 15:19:10 +08:00
世界 f51128f772 Add ip_version rule item 2022-08-16 23:47:14 +08:00
世界 d6a0aa7ccf Add wireguard outbound and test 2022-08-16 23:39:11 +08:00
世界 ca94a2ddcb Improve tproxy udp write back 2022-08-16 18:37:37 +08:00
世界 835ae1217b Update exec/control usage 2022-08-16 18:19:48 +08:00
世界 c165969399 Fix include_android_user option 2022-08-16 12:16:59 +08:00
世界 88c69a06dc Fix copy stream 2022-08-15 16:53:12 +08:00
世界 cd5e7055d2 Add android package rules support in tun routing 2022-08-15 11:44:59 +08:00
世界 3157593b6b Add uid and android user rules support in tun routing 2022-08-15 11:41:00 +08:00
世界 c8399a297e Improve cmd 2022-08-13 18:37:51 +08:00
HellojackandGitHub 529cfe2d9a Fix documentation typo (#13) 2022-08-13 11:01:22 +08:00
世界 50869c6cd2 Fix dns concurrent write 2022-08-13 11:00:15 +08:00
世界 44fcfab9aa Improve build 2022-08-12 22:58:28 +08:00
世界 340fce9f1c Add UoT option to socks outbound too 2022-08-12 17:55:52 +08:00
世界 51bbf93ff2 Improve smux write 2022-08-12 16:49:25 +08:00
HellojackandGitHub f8d13d79c7 Add CGO hint in version cmd (#12) 2022-08-12 15:46:26 +08:00
世界 b0ed1dc106 Minor fixes 2022-08-12 12:13:57 +08:00
世界 ef8dde2b70 Update dependencies 2022-08-12 10:58:16 +08:00
世界 97870c9288 Refactor bufio 2022-08-11 23:59:22 +08:00
世界 c9226aeaaf Show memory stats in debug 2022-08-11 12:42:17 +08:00
世界 7b30815938 Enable QUIC in server scripts 2022-08-11 11:45:33 +08:00
世界 517a89fa9c Add back UoT support 2022-08-11 10:36:28 +08:00
ReeceandGitHub cf80073f27 Fix documentation typo (#10) 2022-08-11 10:06:10 +08:00
世界 43353ca5a4 Update documentation 2022-08-10 21:21:02 +08:00
世界 b79b19c470 Add naive inbound and test 2022-08-10 20:36:29 +08:00
iKirbyandGitHub ccdfab378a Fix default dns server option (#9) 2022-08-10 12:18:03 +08:00
世界 0e6b4df8f1 Remove incorrect warning 2022-08-09 17:27:22 +08:00
世界 79a4b18ec7 Update dependencies 2022-08-09 15:55:16 +08:00
世界 e05ee55545 Improve cmd 2022-08-09 14:49:17 +08:00
世界 ecaddd897e Fix direct connect 2022-08-09 14:48:08 +08:00
世界 8ca6c246a8 Improve wintun read 2022-08-08 21:35:59 +08:00
世界 55d9a0ef2f Update documentation 2022-08-08 21:10:37 +08:00
世界 4067e0f25c Fix copy early conn 2022-08-08 20:56:53 +08:00
世界 6d78cf6b58 Add trojan inbound/outbound 2022-08-08 09:08:12 +08:00
世界 df6635c620 Simplify vmess test 2022-08-08 09:08:12 +08:00
世界 2c6d239525 Fix mux overflow 2022-08-08 08:09:17 +08:00
世界 0f74f6cd60 Add optional LWIP tun stack support 2022-08-07 17:21:49 +08:00
世界 6ee10c03d1 Update gVisor to 20220801.0 2022-08-07 14:58:07 +08:00
世界 587739e95c Fix linux unprivileged tun usage 2022-08-07 11:21:10 +08:00
世界 01bace7769 Fix wininet wrapper 2022-08-06 17:28:51 +08:00
世界 dfa10d4ebe Add tun support for macOS 2022-08-05 17:02:51 +08:00
世界 f691bd5ce1 Add set system proxy support for macOS 2022-08-05 16:55:59 +08:00
世界 64dbac8138 Add multiplexer for vmess 2022-08-04 10:38:20 +08:00
世界 1c3c154d6d Improve multiplex log 2022-08-04 09:12:57 +08:00
世界 32201cacda Add unsafe tag to multiplexer writer 2022-08-04 00:00:22 +08:00
世界 5f566b140f Add documentation for simple linux installation 2022-08-03 22:23:40 +08:00
世界 03890151d7 Improve multiplexer 2022-08-03 22:01:18 +08:00
世界 8e4de29409 Improve dns log 2022-08-03 20:17:05 +08:00
世界 f6f3390490 Update WriteToUDPAddrPort usage since fixed by go1.18.5 2022-08-03 17:49:04 +08:00
世界 d4cce1b5b9 Update task usage 2022-08-03 17:44:19 +08:00
世界 44068500bf Replace netlink with fork 2022-08-03 12:02:22 +08:00
世界 8ce263669e Fix windows tun leak memory 2022-08-03 10:14:00 +08:00
世界 6b4824ffba Minor fixes 2022-08-02 18:47:23 +08:00
世界 9a8918cb9e Improve mux server 2022-08-02 15:11:51 +08:00
世界 b1c2440371 Fix buffer usage 2022-08-02 13:43:25 +08:00
世界 37b11e614c Fix dns sniff 2022-08-02 13:42:31 +08:00
世界 14b6200fd8 Add documentation for vmess 2022-08-01 17:02:13 +08:00
世界 7966b80476 Add vmess legacy server and test 2022-08-01 12:23:34 +08:00
世界 b526ab2746 Fix netlink subscription leak 2022-07-31 19:58:32 +08:00
世界 0e0a892b7e Make socks request buffered 2022-07-31 19:58:32 +08:00
世界 fe3649cd27 Close tun endpoint faster 2022-07-31 19:58:32 +08:00
世界 e014220508 Add retry for mux stream open 2022-07-31 18:08:24 +08:00
世界 d06fd03dd8 Fix tcp keep alive 2022-07-31 09:53:29 +08:00
世界 0eed0ca11a Fix dns outbound 2022-07-31 08:48:56 +08:00
世界 c57ea9e47c Add omitempty for listen_port 2022-07-30 22:05:06 +08:00
世界 70b4577dbe Add TLS certificate reload 2022-07-30 22:04:01 +08:00
世界 5f1f55fbe7 Add documentation for shadowsocks multiplexer 2022-07-30 21:23:45 +08:00
世界 2d3d46eb34 Fix copy with src buffer to headroom writer 2022-07-30 21:23:45 +08:00
世界 2ce09b6ffd Minor fixes 2022-07-30 14:50:33 +08:00
世界 d3378a575c Improve error processing 2022-07-30 09:57:02 +08:00
世界 9b9b5ebb72 Add linux server scripts 2022-07-30 09:04:01 +08:00
世界 0f7f800e95 Use connect for quic/dns udp connections 2022-07-30 09:04:01 +08:00
世界 457de86819 Add multiplexer 2022-07-30 09:04:01 +08:00
世界 83154eadd3 Hide dns outbound in clash-dashboard 2022-07-28 16:40:06 +08:00
世界 c0a2f77258 Remove urltest outbound 2022-07-28 16:36:31 +08:00
世界 c240f1b359 Add shadowsocks-multiuser control api 2022-07-27 21:59:40 +08:00
世界 aa074a2063 Update documentation 2022-07-27 12:13:31 +08:00
世界 f008d0bde3 Add endpoint independent nat support for tun inbound 2022-07-27 11:59:36 +08:00
世界 0347a7c038 Remove go-json 2022-07-26 13:53:25 +08:00
世界 75508bccb5 Add optional DoT, DoH3 support 2022-07-26 12:48:10 +08:00
世界 593799a988 Fix clash tracker timeout 2022-07-26 06:56:24 +08:00
世界 816d7b734c Improve udp timeout 2022-07-25 22:15:16 +08:00
世界 5491895a60 Print stack if no context 2022-07-25 16:18:22 +08:00
世界 9394674b63 Fix format command 2022-07-25 16:18:11 +08:00
世界 146008a631 Fix direct udp outbound 2022-07-25 16:18:11 +08:00
世界 cc78f0347d Improve config struct 2022-07-25 16:18:11 +08:00
世界 1f05420745 Improve tls dialer and listener 2022-07-25 16:18:11 +08:00
世界 32e2730ec6 Add runtime warnings 2022-07-25 07:19:15 +08:00
世界 29c329dc52 Add retry for linux process search 2022-07-24 21:43:05 +08:00
世界 7d8a7c5c7d Add default tcp keep alive settings 2022-07-24 21:29:39 +08:00
世界 9e9e6f7ee6 Improve udp dns close 2022-07-24 21:25:41 +08:00
世界 fde33fbb30 Add lint workflow 2022-07-24 21:22:19 +08:00
世界 67edc163cb Add with_std_json build tag 2022-07-24 21:22:19 +08:00
世界 fe8e984608 Add route.default_mark option 2022-07-24 17:46:25 +08:00
世界 7d340e7ef9 Add source_port_range/port_range rule item 2022-07-24 16:21:35 +08:00
世界 af19ba6119 Add disable_cache option to dns rule 2022-07-24 16:21:31 +08:00
世界 8666631732 Add rcode dns transport 2022-07-24 16:21:31 +08:00
世界 ce4b7231e2 Add invert rule item 2022-07-24 16:21:31 +08:00
世界 21641be9d1 Fix direct inbound 2022-07-24 13:42:58 +08:00
世界 5f6f33c464 Add process_name/package_name/user/user_id rule item 2022-07-23 21:28:13 +08:00
世界 4abf669d09 Fix urltest log 2022-07-23 10:28:32 +08:00
世界 187de6c738 Update documentations 2022-07-23 09:29:37 +08:00
世界 884c0cf595 Deprecate dns_hijack and dns inbound 2022-07-23 09:15:47 +08:00
世界 9f8978bbcf Improve 4in6 processing 2022-07-22 17:57:23 +08:00
世界 bcdf71deb3 Fix tproxy inbound 2022-07-22 16:18:56 +08:00
世界 7bc7b72c61 Fix log format 2022-07-22 14:28:29 +08:00
世界 e531e89b4b Fix dns inbound 2022-07-22 14:25:04 +08:00
世界 e5e24ef51d Add documentation for selector/urltest outbound 2022-07-22 14:07:27 +08:00
世界 c4e46c35b5 Add urltest outbound 2022-07-22 13:51:08 +08:00
世界 139127f1e4 Expand env in clash external-ui 2022-07-22 09:49:35 +08:00
世界 3838d3070d Fix integration with clash-dashboard 2022-07-22 09:41:12 +08:00
世界 8004ff51f0 Add selector outbound 2022-07-21 21:13:16 +08:00
世界 385c42e638 Improve socksaddr 2022-07-20 22:05:11 +08:00
世界 6327c4b40c Minor fixes 2022-07-20 13:46:47 +08:00
世界 45643fbed1 Add documentation for clash_api 2022-07-20 07:37:50 +08:00
世界 6ac1b395cf Make clash api and gVisor optional 2022-07-20 07:12:40 +08:00
世界 c5b3e8b042 Add basic clash api 2022-07-19 22:45:55 +08:00
世界 c7fabe40ed Improve connection timeout 2022-07-18 20:53:13 +08:00
世界 3fb011712b Add vmess compatibility test 2022-07-18 20:14:53 +08:00
世界 6b1a68908d Add vmess inbound/outbound 2022-07-18 12:32:31 +08:00
世界 d1e83882e5 Add user rule item 2022-07-17 17:38:11 +08:00
世界 cf845d946e Exclude gVisor for unsupported arch 2022-07-17 11:16:13 +08:00
世界 4094c94971 Disable gVisor log 2022-07-17 11:15:56 +08:00
世界 ae36e35de7 Improve workflow build 2022-07-17 09:54:34 +08:00
世界 a4b5c61e25 Update dependencies 2022-07-17 09:18:36 +08:00
世界 9caa37c12a Add debug build for all arch 2022-07-17 09:11:23 +08:00
世界 9871ed955b Fix build 2022-07-17 08:48:57 +08:00
世界 afc2f509a4 Minor fixes 2022-07-16 22:03:35 +08:00
世界 fe5618c35d Add stun sniffer 2022-07-16 12:01:02 +08:00
世界 8619e07d66 Fix private addr check 2022-07-16 10:19:18 +08:00
世界 eb35d6793e Fix linux tun 2022-07-15 22:40:42 +08:00
世界 a25db09aac Fix set_system_proxy when using sudo 2022-07-15 18:30:01 +08:00
世界 8969a15858 Fix tun auto_route on android 2022-07-15 18:29:29 +08:00
世界 377f3f83a2 Add route.default_interface option 2022-07-15 15:00:54 +08:00
世界 5a3de62c50 Add ss aead tests 2022-07-15 11:18:19 +08:00
世界 2c2eb31e18 Add redir tproxy and dns inbound 2022-07-15 08:42:02 +08:00
世界 e13b72afca Improve bind interface 2022-07-14 23:11:53 +08:00
世界 b9086b31e6 Add set_system_proxy for linux and android 2022-07-14 20:32:17 +08:00
世界 de2db7c2d2 Add documentation for set_system_proxy 2022-07-14 14:41:35 +08:00
世界 238afda9da Add set_system_proxy option for windows 2022-07-14 14:41:35 +08:00
世界 e7d557fd9e Add tun inbound for windows 2022-07-13 22:41:21 +08:00
世界 4fc763cfa2 Refactor log 2022-07-12 17:44:12 +08:00
世界 b47f3adbb3 Improve copy early conn 2022-07-11 20:55:14 +08:00
世界 862e3c430c Fix tcp sniffing 2022-07-11 20:37:57 +08:00
世界 dc127e2994 Migrate components to library 2022-07-11 18:44:59 +08:00
世界 3c1190e2c3 Make dns.strategy take effect in dns exchange 2022-07-11 13:21:17 +08:00
世界 a104d18277 Fix hijack_dns 2022-07-11 12:56:57 +08:00
世界 6048b1e270 Remove ToString0[T] usage to fix golangci-lint 2022-07-10 22:00:28 +08:00
世界 0ef2e330e3 Fix create gVisor endpoint 2022-07-10 19:17:44 +08:00
世界 b417bd5be4 Add documentation and example for linux tun 2022-07-10 16:44:12 +08:00
世界 7f84191748 Minor fixes 2022-07-10 16:19:42 +08:00
世界 29f78248dc Add hijack_dns for tun 2022-07-10 10:14:45 +08:00
世界 638f8a52d1 Add auto_route and auto_detect_interface for linux 2022-07-10 08:18:52 +08:00
世界 4432cc2253 Fix quic sniff irl 2022-07-10 07:52:33 +08:00
世界 730144cc26 Add tun inbound for linux 2022-07-09 22:44:18 +08:00
世界 c463d0cf80 Fix pages 2022-07-09 15:09:50 +08:00
世界 8eecae92b2 Add benchmark page 2022-07-09 15:00:31 +08:00
世界 6832451561 Fix direct udp 2022-07-09 10:28:22 +08:00
世界 41925b6606 Add bug template 2022-07-09 09:34:16 +08:00
世界 211d97ff8a Declare required fields in the documentation 2022-07-09 09:28:54 +08:00
世界 8fa953a516 Add debug workflow 2022-07-09 09:02:06 +08:00
世界 7f8c9ffa30 Add shadowsocks tests 2022-07-09 08:59:34 +08:00
世界 f448b6b977 Update gci format 2022-07-08 23:03:57 +08:00
世界 e0cfc33fe2 Fix handle missing err on quic sniff 2022-07-08 22:49:17 +08:00
世界 76236a0b75 Add examples 2022-07-08 22:45:06 +08:00
世界 0cb9d79044 Add route documentation 2022-07-08 20:20:38 +08:00
世界 eeaee94e5e Add outbound documentation 2022-07-08 19:58:56 +08:00
世界 ddbdac7d97 Add inbound documentation 2022-07-08 18:42:29 +08:00
世界 b44a1cd823 Add README 2022-07-08 18:41:18 +08:00
世界 d6d02b9924 Add log and dns documentation 2022-07-08 18:41:18 +08:00
世界 3699a57847 Add dial parallel for outbound dialer 2022-07-08 13:08:29 +08:00
世界 d45007b501 Improve load geosite 2022-07-08 11:00:46 +08:00
世界 9c256afc1a Add resolver for inbound 2022-07-07 23:45:05 +08:00
世界 538a1f5909 Add resolver for outbound dialer 2022-07-07 21:47:21 +08:00
世界 ecac383477 Add disableCache/disableExpire option for dns client 2022-07-06 23:43:20 +08:00
世界 8a761d7e3b Add dns client 2022-07-06 23:14:19 +08:00
世界 651c4b539a Add dns transports 2022-07-06 19:01:46 +08:00
世界 81330d32e0 Remove lint action 2022-07-06 15:45:13 +08:00
世界 3696e81eb4 Update gci format 2022-07-06 15:01:09 +08:00
世界 46f28a9de9 Add protect path dialer option 2022-07-06 14:45:56 +08:00
世界 dcd7ca78fc Rename find path 2022-07-06 14:44:51 +08:00
世界 86a38a1c7e Add domain sniffer 2022-07-06 12:39:44 +08:00
世界 2d9203ee74 Refactor geo resources 2022-07-05 13:23:47 +08:00
世界 8392567962 Add geosite 2022-07-05 09:05:35 +08:00
世界 f76102dab5 Add geosite protocol 2022-07-04 19:39:58 +08:00
世界 43cf0441db Fix route 2022-07-04 19:34:45 +08:00
世界 792dc83778 Add version command 2022-07-04 17:14:15 +08:00
世界 718b4afbf3 Add check/format command 2022-07-04 16:59:27 +08:00
世界 13f41f59d6 Refine log output 2022-07-04 16:45:32 +08:00
世界 ca5b782106 Add domain_regex rule 2022-07-04 15:51:41 +08:00
世界 8e7f215514 Shadowsocks multi-user/relay inbound 2022-07-04 15:34:43 +08:00
世界 4fc4eb09b0 Add http/block outbound & Improve route 2022-07-04 08:16:25 +08:00
世界 18e3f43df3 Refactor struct & Add override dialer options 2022-07-03 20:59:25 +08:00
世界 28b865acf0 Refactor json 2022-07-03 19:43:27 +08:00
世界 dd56b2584b Add internal private geoip rule 2022-07-03 15:57:09 +08:00
世界 70c0812606 Add socks outbound 2022-07-03 13:14:49 +08:00
世界 ef5cfd59d4 Ordered json output & Disallow unknown fields 2022-07-03 11:28:15 +08:00
世界 85a695caa1 Add format config support 2022-07-03 03:42:57 +08:00
世界 30444057bd Invalid config check 2022-07-03 01:57:04 +08:00
世界 6eae8e361f Implement route rules 2022-07-02 23:19:14 +08:00
世界 7c57eb70e8 Inbound rule support 2022-07-02 14:07:50 +08:00
世界 9f4c0ff624 Refactor adapter 2022-07-01 19:37:41 +08:00
世界 60691819b1 Init commit 2022-07-01 16:58:18 +08:00
248 changed files with 9237 additions and 2483 deletions
+6 -2
View File
@@ -1,12 +1,16 @@
-s dir
--name sing-box
--name sing-box-extended
--category net
--license GPL-3.0-or-later
--description "The universal proxy platform."
--description "The universal proxy platform (extended)."
--url "https://sing-box.sagernet.org/"
--maintainer "nekohasekai <contact-git@sekai.icu>"
--no-deb-generate-changes
--provides sing-box
--conflicts sing-box
--replaces sing-box
--config-files /etc/config/sing-box
--config-files /etc/sing-box/config.json
+1 -1
View File
@@ -1 +1 @@
2faf34666c2cc8234f10f2ab6d4c4d6104d34ae2
98d539ce67568fb911654e66a14cf4247ed833ec
+5 -7
View File
@@ -27,10 +27,7 @@ fi
PROJECT=$(cd "$(dirname "$0")/.."; pwd)
# Convert version to APK format:
# 1.13.0-beta.8 -> 1.13.0_beta8-r0
# 1.13.0-rc.3 -> 1.13.0_rc3-r0
# 1.13.0 -> 1.13.0-r0
APK_VERSION=$(echo "$VERSION" | sed -E 's/-([a-z]+)\.([0-9]+)/_\1\2/')
APK_VERSION=$(echo "$VERSION" | sed -E 's/-([a-z]+)\.([0-9]+)/_\1\2/' | sed -E 's/-[a-z]+-/./g')
APK_VERSION="${APK_VERSION}-r0"
ROOT_DIR=$(mktemp -d)
@@ -78,15 +75,16 @@ done < "$PACKAGES_DIR/.conffiles" > "$PACKAGES_DIR/.conffiles_static"
# Build APK
apk --root "$APK_ROOT_DIR" mkpkg \
--info "name:sing-box" \
--info "name:sing-box-extended" \
--info "version:${APK_VERSION}" \
--info "description:The universal proxy platform." \
--info "description:The universal proxy platform (extended)." \
--info "arch:${ARCHITECTURE}" \
--info "license:GPL-3.0-or-later" \
--info "origin:sing-box" \
--info "origin:sing-box-extended" \
--info "url:https://sing-box.sagernet.org/" \
--info "maintainer:nekohasekai <contact-git@sekai.icu>" \
--info "depends:ca-bundle kmod-inet-diag kmod-tun firewall4 kmod-nft-queue" \
--info "provides:sing-box" \
--info "provider-priority:100" \
--script "pre-deinstall:${PROJECT}/release/config/openwrt.prerm" \
--files "$ROOT_DIR" \
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -e -o pipefail
VERSION="$1"
TARGET="$2"
BINARY_PATH="$3"
PROJECT=$(cd "$(dirname "$0")/.."; pwd)
DIST="$PROJECT/dist"
case "$TARGET" in
linux_amd64*) ARCHITECTURES="x86_64" ;;
linux_arm64*) ARCHITECTURES="aarch64_cortex-a53 aarch64_cortex-a72 aarch64_cortex-a76 aarch64_generic" ;;
linux_386*softfloat) ARCHITECTURES="i386_pentium-mmx" ;;
linux_386*) ARCHITECTURES="i386_pentium4" ;;
linux_arm_7*) ARCHITECTURES="arm_cortex-a5_vfpv4 arm_cortex-a7_neon-vfpv4 arm_cortex-a7_vfpv4 arm_cortex-a8_vfpv3 arm_cortex-a9_neon arm_cortex-a9_vfpv3-d16 arm_cortex-a15_neon-vfpv4" ;;
linux_arm_6*) ARCHITECTURES="arm_arm1176jzf-s_vfp" ;;
linux_arm_5*) ARCHITECTURES="arm_arm926ej-s arm_cortex-a7 arm_cortex-a9 arm_fa526 arm_xscale" ;;
linux_mips64_*) ARCHITECTURES="mips64_mips64r2 mips64_octeonplus" ;;
linux_mips64le*) ARCHITECTURES="mips64el_mips64r2" ;;
linux_mipsle*hardfloat) ARCHITECTURES="mipsel_24kc_24kf" ;;
linux_mipsle*) ARCHITECTURES="mipsel_24kc mipsel_74kc mipsel_mips32" ;;
linux_mips_*) ARCHITECTURES="mips_24kc mips_4kec mips_mips32" ;;
linux_riscv64*) ARCHITECTURES="riscv64_generic" ;;
linux_loong64*) ARCHITECTURES="loongarch64_generic" ;;
*) echo "Unknown target: $TARGET"; exit 1 ;;
esac
PKG_VERSION="${VERSION//-/\~}"
FPM_DIR=$(mktemp -d)
sed "s|release/|$PROJECT/release/|g;s|^LICENSE|$PROJECT/LICENSE|" "$PROJECT/.fpm_openwrt" > "$FPM_DIR/.fpm"
trap 'rm -rf "$FPM_DIR"' EXIT
for ARCH in $ARCHITECTURES; do
TMP_DEB=$(mktemp -p "$DIST" _openwrt_XXXXXX.deb)
rm -f "$TMP_DEB"
(cd "$FPM_DIR" && fpm -t deb \
-v "$PKG_VERSION" \
-p "$TMP_DEB" \
--architecture all \
"$BINARY_PATH=/usr/bin/sing-box")
bash "$PROJECT/.github/deb2ipk.sh" \
"$ARCH" \
"$TMP_DEB" \
"$DIST/sing-box-extended_${VERSION}_openwrt_${ARCH}.ipk"
rm -f "$TMP_DEB"
if command -v apk &>/dev/null; then
bash "$PROJECT/.github/build_openwrt_apk.sh" \
"$ARCH" "$VERSION" "$BINARY_PATH" \
"$DIST/sing-box-extended_${VERSION}_openwrt_${ARCH}.apk"
fi
echo "Built: sing-box-extended_${VERSION}_openwrt_${ARCH} (.ipk/.apk)"
done
+1 -1
View File
@@ -2,7 +2,7 @@
set -euo pipefail
VERSION="1.25.9"
VERSION="1.25.10"
PATCH_COMMITS=(
"afe69d3cec1c6dcf0f1797b20546795730850070"
"1ed289b0cf87dc5aae9c6fe1aa5f200a83412938"
+1 -1
View File
@@ -2,7 +2,7 @@
set -euo pipefail
VERSION="1.25.9"
VERSION="1.25.10"
PATCH_COMMITS=(
"466f6c7a29bc098b0d4c987b803c779222894a11"
"1bdabae205052afe1dadb2ad6f1ba612cdbc532a"
+19 -7
View File
@@ -47,7 +47,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Check input version
if: github.event_name == 'workflow_dispatch'
run: |-
@@ -124,7 +124,7 @@ jobs:
if: ${{ ! matrix.legacy_win7 }}
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Cache Go for Windows 7
if: matrix.legacy_win7
id: cache-go-for-windows7
@@ -240,7 +240,8 @@ jobs:
if: matrix.variant == 'purego' && matrix.naive
run: |
cd ~/cronet-go
CGO_ENABLED=0 go run -v ./cmd/build-naive extract-lib --target ${{ matrix.os }}/${{ matrix.arch }} -o $GITHUB_WORKSPACE/dist
CGO_ENABLED=0 go build -v -o "$RUNNER_TEMP/build-naive" ./cmd/build-naive
GOPROXY=direct GOSUMDB=off "$RUNNER_TEMP/build-naive" extract-lib --target ${{ matrix.os }}/${{ matrix.arch }} -o $GITHUB_WORKSPACE/dist
- name: Build (glibc)
if: matrix.variant == 'glibc'
run: |
@@ -594,8 +595,15 @@ jobs:
if: matrix.naive
run: |
$CRONET_GO_VERSION = Get-Content .github/CRONET_GO_VERSION
git init "$env:RUNNER_TEMP/cronet-go"
git -C "$env:RUNNER_TEMP/cronet-go" remote add origin https://github.com/sagernet/cronet-go.git
git -C "$env:RUNNER_TEMP/cronet-go" fetch --depth=1 origin "$CRONET_GO_VERSION"
git -C "$env:RUNNER_TEMP/cronet-go" checkout FETCH_HEAD
$env:CGO_ENABLED = "0"
go run -v "github.com/sagernet/cronet-go/cmd/build-naive@$CRONET_GO_VERSION" extract-lib --target windows/${{ matrix.arch }} -o dist
go -C "$env:RUNNER_TEMP/cronet-go" build -v -o "$env:RUNNER_TEMP/build-naive.exe" ./cmd/build-naive
$env:GOPROXY = "direct"
$env:GOSUMDB = "off"
& "$env:RUNNER_TEMP/build-naive.exe" extract-lib --target windows/${{ matrix.arch }} -o dist
- name: Archive
if: matrix.naive
run: |
@@ -641,7 +649,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Setup Android NDK
id: setup-ndk
uses: nttld/setup-ndk@v1
@@ -673,6 +681,10 @@ jobs:
run: |-
cd clients/android
git checkout dev
- name: Checkout submodule recursive
run: |-
cd clients/android
git submodule update --init --recursive -v
- name: Gradle cache
uses: actions/cache@v4
with:
@@ -731,7 +743,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Setup Android NDK
id: setup-ndk
uses: nttld/setup-ndk@v1
@@ -830,7 +842,7 @@ jobs:
if: matrix.if
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Set tag
if: matrix.if
run: |-
+1 -1
View File
@@ -55,7 +55,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Clone cronet-go
if: matrix.naive
run: |
+2 -2
View File
@@ -29,7 +29,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Check input version
if: github.event_name == 'workflow_dispatch'
run: |-
@@ -72,7 +72,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ~1.25.9
go-version: ~1.25.10
- name: Clone cronet-go
if: matrix.naive
run: |
+64 -1
View File
@@ -26,8 +26,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
env:
@@ -63,6 +65,8 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_profiler
- badlinkname
- tfogo_checklinkname0
targets:
@@ -121,8 +125,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
- with_naive_outbound
@@ -153,8 +159,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
- with_naive_outbound
@@ -185,8 +193,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
- with_naive_outbound
@@ -217,8 +227,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
- with_naive_outbound
@@ -249,8 +261,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
- with_naive_outbound
@@ -297,8 +311,10 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_manager
- with_admin_panel
- with_profiler
- badlinkname
- tfogo_checklinkname0
- with_naive_outbound
@@ -353,6 +369,8 @@ builds:
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_profiler
- badlinkname
- tfogo_checklinkname0
targets:
@@ -393,6 +411,51 @@ builds:
- android_arm64
- android_386
- android_amd64
- id: openwrt
<<: *template
hooks:
post:
- cmd: bash .github/build_openwrt_packages.sh "{{ .Version }}" "{{ .Target }}" "{{ .Path }}"
targets:
- linux_amd64_v1
- linux_arm64
- linux_386
- linux_arm_7
- linux_arm_6
- linux_riscv64
- linux_loong64
- id: openwrt-mips
<<: *template
tags:
- with_gvisor
- with_quic
- with_dhcp
- with_wireguard
- with_utls
- with_acme
- with_clash_api
- with_tailscale
- with_masque
- with_mtproxy
- with_ccm
- with_ocm
- with_openvpn
- with_trusttunnel
- with_sudoku
- with_snell
- with_profiler
- badlinkname
- tfogo_checklinkname0
hooks:
post:
- cmd: bash .github/build_openwrt_packages.sh "{{ .Version }}" "{{ .Target }}" "{{ .Path }}"
targets:
- linux_arm_5
- linux_mips_softfloat
- linux_mips64_softfloat
- linux_mipsle_softfloat
- linux_mipsle_hardfloat
- linux_mips64le
upx:
- enabled: true
ids:
@@ -496,5 +559,5 @@ release:
- archive-naive-purego-windows-amd64
- archive-naive-purego-windows-arm64
- archive-compressed
- package
- archive-openwrt
skip_upload: true
+12 -7
View File
@@ -1,18 +1,23 @@
FROM --platform=$BUILDPLATFORM golang:1.26-alpine AS builder
FROM --platform=$BUILDPLATFORM golang:1.26 AS builder
LABEL maintainer="shtorm-7"
COPY . /go/src/github.com/sagernet/sing-box
WORKDIR /go/src/github.com/sagernet/sing-box
ARG TARGETOS TARGETARCH
ARG GOPROXY=""
ENV GOPROXY ${GOPROXY}
ENV CGO_ENABLED=0
ARG CRONET_GO_PATH=/go/src/github.com/sagernet/sing-box/cronet-go
ENV GOPROXY=${GOPROXY}
ENV CGO_ENABLED=1
ENV GOOS=$TARGETOS
ENV GOARCH=$TARGETARCH
ENV CRONET_GO_PATH=${CRONET_GO_PATH}
RUN set -ex \
&& apk add git build-base \
&& export COMMIT=$(git rev-parse --short HEAD) \
&& export VERSION=$(go run ./cmd/internal/read_tag) \
&& export TAGS=$(cat release/DEFAULT_BUILD_TAGS_OTHERS) \
&& git config --global --add safe.directory /go/src/github.com/sagernet/sing-box \
&& export GOTOOLCHAIN=local \
&& export CGO_ENABLED=1 GOOS=$TARGETOS GOARCH=$TARGETARCH \
&& eval "$(CGO_ENABLED=0 GOOS= GOARCH= go run -C "$CRONET_GO_PATH" ./cmd/build-naive --target=$GOOS/$GOARCH --libc=musl env --export)" \
&& export CGO_LDFLAGS="$CGO_LDFLAGS -Wl,-z,notext -Wl,-z,execstack" \
&& export VERSION=$(CGO_ENABLED=0 GOOS= GOARCH= go run ./cmd/internal/read_tag) \
&& export TAGS=$(cat release/DEFAULT_BUILD_TAGS_DOCKER) \
&& export LDFLAGS_SHARED=$(cat release/LDFLAGS) \
&& go build -v -trimpath -tags "$TAGS" \
-o /go/bin/sing-box \
+5 -1
View File
@@ -27,7 +27,6 @@ CRONET_GO_PATH ?= $(shell pwd)/cronet-go
.PHONY: test release docs build
build:
export GOTOOLCHAIN=local && \
go build $(MAIN_PARAMS) $(MAIN)
build_admin_panel:
@@ -94,6 +93,8 @@ release: build_admin_panel build_naive
mkdir dist/release
mv dist/*.tar.gz \
dist/*.zip \
dist/*.ipk \
dist/*.apk \
dist/release
ghr --replace --draft --prerelease -p 5 "v${VERSION}" dist/release
./codeberg-release.sh --replace --draft --prerelease -p 5 "v${VERSION}" dist/release
@@ -123,6 +124,9 @@ build_android:
upload_android:
mkdir -p dist/release_android
cp ../sing-box-for-android/app/build/outputs/apk/other/release/*.apk dist/release_android
VERSION_CODE=$$(grep VERSION_CODE ../sing-box-for-android/version.properties | cut -d= -f2); \
VERSION_NAME=$$(grep VERSION_NAME ../sing-box-for-android/version.properties | cut -d= -f2); \
printf '{\n "version_code": %s,\n "version_name": "%s"\n}\n' "$$VERSION_CODE" "$$VERSION_NAME" > dist/release_android/SFA-version-metadata.json
ghr --replace --draft --prerelease -p 5 "v${VERSION}" dist/release_android
./codeberg-release.sh --replace --draft --prerelease -p 5 "v${VERSION}" dist/release_android
rm -rf dist/release_android
+3
View File
@@ -3,6 +3,7 @@
[![license](https://img.shields.io/badge/license-GPLv3-blue.svg)](LICENSE)
[![go](https://img.shields.io/badge/go-1.26-00ADD8.svg)](go.mod)
[![codeberg](https://img.shields.io/badge/mirror-codeberg-2185D0.svg)](https://codeberg.org/shtorm-7/sing-box-extended)
[![telegram](https://img.shields.io/badge/telegram-chat-26A5E4.svg)](https://t.me/sing_box_extended)
Sing-box with extended features.
@@ -16,6 +17,8 @@ Sing-box with extended features.
- **OpenVPN** — OpenVPN client with tls-auth, tls-crypt and tls-crypt-v2 support
- **TrustTunnel** — AdGuard's obfuscated VPN protocol, indistinguishable from HTTPS traffic
- **Sudoku** — Traffic obfuscation protocol based on 4×4 Sudoku puzzles with low-entropy fingerprints
- **Snell** — Lightweight encrypted proxy (v1–v5) with TLS / HTTP obfuscation
- **SSH** — SSH client and server with certificate authentication and upstream fallback
- **VPN** — Routed tunnel over any TCP sing-box protocol
- **Bond** — Link aggregation for increasing throughput
- **Fallback** — Outbound group with priority-based switching
+2 -2
View File
@@ -233,7 +233,7 @@ func (m *Manager) Remove(tag string) error {
if m.defaultOutbound == outbound {
if len(m.outbounds) > 0 {
m.defaultOutbound = m.outbounds[0]
m.logger.Info("updated default outbound to ", m.defaultOutbound.Tag())
m.logger.Notice("updated default outbound to ", m.defaultOutbound.Tag())
} else {
m.defaultOutbound = nil
}
@@ -303,7 +303,7 @@ func (m *Manager) Create(ctx context.Context, router adapter.Router, logger log.
if tag == m.defaultTag || (m.defaultTag == "" && m.defaultOutbound == nil) {
m.defaultOutbound = outbound
if m.started {
m.logger.Info("updated default outbound to ", outbound.Tag())
m.logger.Notice("updated default outbound to ", outbound.Tag())
}
}
return nil
+1
View File
@@ -13,6 +13,7 @@ type PlatformInterface interface {
UsePlatformAutoDetectInterfaceControl() bool
AutoDetectInterfaceControl(fd int) error
BindInterfaceControl(fd int, interfaceName string) error
UsePlatformInterface() bool
OpenInterface(options *tun.Options, platformOptions option.TunPlatformOptions) (tun.Tun, error)
+11 -1
View File
@@ -289,11 +289,21 @@ func uniquifyTags(opts []option.Outbound) {
func removeEmojisFromTags(opts []option.Outbound) {
for i, opt := range opts {
cleaned := emojiRegex.ReplaceAllString(opt.Tag, "")
cleaned := flagRegex.ReplaceAllStringFunc(opt.Tag, flagToCountryCode)
cleaned = emojiRegex.ReplaceAllString(cleaned, "")
cleaned = multiSpaceRegex.ReplaceAllString(cleaned, " ")
opts[i].Tag = strings.TrimSpace(cleaned)
}
}
func flagToCountryCode(flag string) string {
runes := []rune(flag)
if len(runes) == 2 {
return string(rune(runes[0]-0x1F1E6+'A')) + string(rune(runes[1]-0x1F1E6+'A')) + " "
}
return ""
}
var flagRegex = regexp.MustCompile(`[\x{1F1E6}-\x{1F1FF}]{2}`)
var emojiRegex = regexp.MustCompile(`[\x{1F1E0}-\x{1F1FF}\x{1F300}-\x{1F9FF}\x{2600}-\x{27BF}\x{FE00}-\x{FE0F}\x{200D}]+`)
var multiSpaceRegex = regexp.MustCompile(`\s{2,}`)
+45
View File
@@ -0,0 +1,45 @@
package provider
import (
"testing"
"github.com/sagernet/sing-box/option"
)
func TestFlagToCountryCodeAllFlags(t *testing.T) {
for first := 'A'; first <= 'Z'; first++ {
for second := 'A'; second <= 'Z'; second++ {
flag := string(rune(0x1F1E6+(first-'A'))) + string(rune(0x1F1E6+(second-'A')))
expected := string(first) + string(second)
result := flagToCountryCode(flag)
// flagToCountryCode appends a space
if result != expected+" " {
t.Errorf("flagToCountryCode(%q) = %q, want %q", expected, result, expected+" ")
}
}
}
}
func TestRemoveEmojisFromTags(t *testing.T) {
tests := []struct {
input string
expected string
}{
{"🇺🇸 United States", "US United States"},
{"🇷🇺 Россия", "RU Россия"},
{"🇩🇪 Germany 🚀", "DE Germany"},
{"🇫🇷🇬🇧 France-UK", "FR GB France-UK"},
{"No emojis here", "No emojis here"},
{"🌍 World", "World"},
{"🇯🇵 Tokyo ⚡ Fast", "JP Tokyo Fast"},
{"Germany 🇩🇪", "Germany DE"},
{"Server 🇺🇸 Node", "Server US Node"},
}
for _, tt := range tests {
opts := []option.Outbound{{Tag: tt.input}}
removeEmojisFromTags(opts)
if opts[0].Tag != tt.expected {
t.Errorf("removeEmojisFromTags(%q) = %q, want %q", tt.input, opts[0].Tag, tt.expected)
}
}
}
+2 -2
View File
@@ -458,7 +458,7 @@ func (s *Box) PreStart() error {
s.Close()
return err
}
s.logger.Info("sing-box pre-started (", F.Seconds(time.Since(s.createdAt).Seconds()), "s)")
s.logger.Notice("sing-box pre-started (", F.Seconds(time.Since(s.createdAt).Seconds()), "s)")
return nil
}
@@ -477,7 +477,7 @@ func (s *Box) Start() error {
s.Close()
return err
}
s.logger.Info("sing-box started (", F.Seconds(time.Since(s.createdAt).Seconds()), "s)")
s.logger.Notice("sing-box started (", F.Seconds(time.Since(s.createdAt).Seconds()), "s)")
return nil
}
+1 -1
View File
@@ -63,7 +63,7 @@ func init() {
sharedFlags = append(sharedFlags, "-ldflags", "-X github.com/sagernet/sing-box/constant.Version="+currentTag+" -X internal/godebug.defaultGODEBUG=multipathtcp=0 -s -w -buildid= -checklinkname=0")
debugFlags = append(debugFlags, "-ldflags", "-X github.com/sagernet/sing-box/constant.Version="+currentTag+" -X internal/godebug.defaultGODEBUG=multipathtcp=0 -checklinkname=0")
sharedTags = append(sharedTags, "with_gvisor", "with_quic", "with_wireguard", "with_masque", "with_mtproxy", "with_trusttunnel", "with_openvpn", "with_sudoku", "with_utls", "with_naive_outbound", "with_clash_api", "badlinkname", "tfogo_checklinkname0")
sharedTags = append(sharedTags, "with_gvisor", "with_quic", "with_wireguard", "with_masque", "with_mtproxy", "with_trusttunnel", "with_openvpn", "with_sudoku", "with_snell", "with_utls", "with_naive_outbound", "with_clash_api", "badlinkname", "tfogo_checklinkname0")
darwinTags = append(darwinTags, "with_dhcp", "grpcnotrace")
// memcTags = append(memcTags, "with_tailscale")
sharedTags = append(sharedTags, "with_tailscale", "ts_omit_logtail", "ts_omit_ssh", "ts_omit_drive", "ts_omit_taildrop", "ts_omit_webclient", "ts_omit_doctor", "ts_omit_capture", "ts_omit_kube", "ts_omit_aws", "ts_omit_synology", "ts_omit_bird")
+1
View File
@@ -179,6 +179,7 @@ func run() error {
for {
osSignal := <-osSignals
if osSignal == syscall.SIGHUP {
log.Notice("received SIGHUP, reloading...")
err = check()
if err != nil {
log.Error(E.Cause(err, "reload service"))
@@ -1,4 +1,4 @@
package trusttunnel
package congestion
import (
"time"
@@ -12,7 +12,7 @@ import (
E "github.com/sagernet/sing/common/exceptions"
)
func NewCongestionControl(name string, cwnd int, bbrProfile string, timeFunc func() time.Time) (func(conn *quic.Conn) congestion.CongestionControl, error) {
func NewCongestionControl(name string, cwnd int, timeFunc func() time.Time) (func(conn *quic.Conn) congestion.CongestionControl, error) {
if timeFunc == nil {
timeFunc = time.Now
}
+14 -3
View File
@@ -70,9 +70,20 @@ func NewDefault(ctx context.Context, options option.DialerOptions) (*DefaultDial
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 platformInterface != nil && platformInterface.UsePlatformAutoDetectInterfaceControl() {
interfaceName := options.BindInterface
bindFunc := func(network, address string, conn syscall.RawConn) error {
return control.Raw(conn, func(fd uintptr) error {
return platformInterface.BindInterfaceControl(int(fd), interfaceName)
})
}
dialer.Control = control.Append(dialer.Control, bindFunc)
listener.Control = control.Append(listener.Control, bindFunc)
} else {
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 {
+3 -3
View File
@@ -182,10 +182,10 @@ func (d *DefaultDialer) listenSerialInterfacePacket(ctx context.Context, listene
func selectInterfaces(networkManager adapter.NetworkManager, strategy C.NetworkStrategy, interfaceType []C.InterfaceType, fallbackInterfaceType []C.InterfaceType) (primaryInterfaces []adapter.NetworkInterface, fallbackInterfaces []adapter.NetworkInterface) {
interfaces := networkManager.NetworkInterfaces()
myInterface := networkManager.InterfaceMonitor().MyInterface()
if myInterface != "" {
myInterfaces := networkManager.InterfaceMonitor().MyInterfaces()
if len(myInterfaces) > 0 {
interfaces = common.Filter(interfaces, func(it adapter.NetworkInterface) bool {
return it.Name != myInterface
return !common.Contains(myInterfaces, it.Name)
})
}
switch strategy {
+164
View File
@@ -0,0 +1,164 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package list
// Element is an element of a linked list.
type Element[T any] struct {
next, prev *Element[T]
list *List[T]
Value T
}
func (e *Element[T]) Next() *Element[T] {
if p := e.next; e.list != nil && p != &e.list.root {
return p
}
return nil
}
func (e *Element[T]) Prev() *Element[T] {
if p := e.prev; e.list != nil && p != &e.list.root {
return p
}
return nil
}
func (e *Element[T]) Remove() bool {
if e.list == nil {
return false
}
e.list.remove(e)
return true
}
type List[T any] struct {
root Element[T]
len int
}
func (l *List[T]) Init() *List[T] {
l.root.next = &l.root
l.root.prev = &l.root
l.len = 0
return l
}
func New[T any]() *List[T] { return new(List[T]).Init() }
func (l *List[T]) Len() int { return l.len }
func (l *List[T]) Front() *Element[T] {
if l.len == 0 {
return nil
}
return l.root.next
}
func (l *List[T]) Back() *Element[T] {
if l.len == 0 {
return nil
}
return l.root.prev
}
func (l *List[T]) lazyInit() {
if l.root.next == nil {
l.Init()
}
}
func (l *List[T]) insert(e, at *Element[T]) *Element[T] {
e.prev = at
e.next = at.next
e.prev.next = e
e.next.prev = e
e.list = l
l.len++
return e
}
func (l *List[T]) insertValue(v T, at *Element[T]) *Element[T] {
return l.insert(&Element[T]{Value: v}, at)
}
func (l *List[T]) remove(e *Element[T]) {
e.prev.next = e.next
e.next.prev = e.prev
e.next = nil
e.prev = nil
e.list = nil
l.len--
}
func (l *List[T]) Remove(e *Element[T]) T {
if e.list == l {
l.remove(e)
}
return e.Value
}
func (l *List[T]) PushFront(v T) *Element[T] {
l.lazyInit()
return l.insertValue(v, &l.root)
}
func (l *List[T]) PushBack(v T) *Element[T] {
l.lazyInit()
return l.insertValue(v, l.root.prev)
}
func (l *List[T]) InsertBefore(v T, mark *Element[T]) *Element[T] {
if mark.list != l {
return nil
}
return l.insertValue(v, mark.prev)
}
func (l *List[T]) InsertAfter(v T, mark *Element[T]) *Element[T] {
if mark.list != l {
return nil
}
return l.insertValue(v, mark)
}
func (l *List[T]) MoveToFront(e *Element[T]) {
if e.list != l || l.root.next == e {
return
}
l.move(e, &l.root)
}
func (l *List[T]) MoveToBack(e *Element[T]) {
if e.list != l || l.root.prev == e {
return
}
l.move(e, l.root.prev)
}
func (l *List[T]) MoveBefore(e, mark *Element[T]) {
if e.list != l || e == mark || mark.list != l {
return
}
l.move(e, mark.prev)
}
func (l *List[T]) MoveAfter(e, mark *Element[T]) {
if e.list != l || e == mark || mark.list != l {
return
}
l.move(e, mark)
}
func (l *List[T]) move(e, at *Element[T]) {
if e == at {
return
}
e.prev.next = e.next
e.next.prev = e.prev
e.prev = at
e.next = at.next
e.prev.next = e
e.next.prev = e
}
+1 -1
View File
@@ -77,7 +77,7 @@ func (l *Listener) ListenTCP() (net.Listener, error) {
if err != nil {
return nil, err
}
l.logger.Info("tcp server started at ", tcpListener.Addr())
l.logger.Notice("tcp server started at ", tcpListener.Addr())
l.tcpListener = tcpListener
return tcpListener, err
}
+1 -1
View File
@@ -54,7 +54,7 @@ func (l *Listener) ListenUDP() (net.PacketConn, error) {
}
l.udpConn = udpConn.(*net.UDPConn)
l.udpAddr = bindAddr
l.logger.Info("udp server started at ", udpConn.LocalAddr())
l.logger.Notice("udp server started at ", udpConn.LocalAddr())
return udpConn, err
}
@@ -1,4 +1,4 @@
package sqlite
package sql
import (
"encoding/json"
+29
View File
@@ -0,0 +1,29 @@
package sql
import (
"encoding/json"
"fmt"
)
type SliceJSON[T any] []T
func (s *SliceJSON[T]) Scan(src interface{}) error {
if src == nil {
*s = nil
return nil
}
var data []byte
switch v := src.(type) {
case []byte:
data = v
case string:
data = []byte(v)
default:
return fmt.Errorf("sliceJSON.Scan: unsupported type %T", src)
}
if len(data) == 0 {
*s = nil
return nil
}
return json.Unmarshal(data, (*[]T)(s))
}
+53
View File
@@ -0,0 +1,53 @@
package sql
import (
"time"
"github.com/huandu/go-sqlbuilder"
E "github.com/sagernet/sing/common/exceptions"
)
const timestampFormat = "2006-01-02 15:04:05.000"
func FormatTimestamp(t time.Time) string {
return t.UTC().Format(timestampFormat)
}
func ParseTimestamp(value string) (time.Time, error) {
return time.ParseInLocation(timestampFormat, value, time.UTC)
}
func ParseFilterTimestamp(value string) (time.Time, error) {
if t, err := time.Parse(time.RFC3339Nano, value); err == nil {
return t, nil
}
if t, err := time.Parse(time.RFC3339, value); err == nil {
return t, nil
}
if t, err := ParseTimestamp(value); err == nil {
return t, nil
}
return time.Time{}, E.New("invalid timestamp: ", value)
}
func TimestampGreaterEqualThanFilter(field string) Filter {
return func(sb *sqlbuilder.SelectBuilder, value []string) error {
t, err := ParseFilterTimestamp(value[0])
if err != nil {
return err
}
sb.Where(sb.GreaterEqualThan(field, FormatTimestamp(t)))
return nil
}
}
func TimestampLessEqualThanFilter(field string) Filter {
return func(sb *sqlbuilder.SelectBuilder, value []string) error {
t, err := ParseFilterTimestamp(value[0])
if err != nil {
return err
}
sb.Where(sb.LessEqualThan(field, FormatTimestamp(t)))
return nil
}
}
+3 -3
View File
@@ -168,9 +168,9 @@ func (e *RealityClientConfig) ClientHandshake(ctx context.Context, conn net.Conn
}
binary.BigEndian.PutUint64(hello.SessionId, uint64(nowTime.Unix()))
hello.SessionId[0] = 1
hello.SessionId[1] = 8
hello.SessionId[2] = 1
hello.SessionId[0] = 26
hello.SessionId[1] = 7
hello.SessionId[2] = 11
binary.BigEndian.PutUint32(hello.SessionId[4:], uint32(time.Now().Unix()))
copy(hello.SessionId[8:], e.shortID[:])
if debug.Enabled {
+3 -3
View File
@@ -164,7 +164,7 @@ func (c *STDServerConfig) certificateUpdated(path string) error {
config.Certificates = []tls.Certificate{keyPair}
c.config = config
c.access.Unlock()
c.logger.Info("reloaded TLS certificate")
c.logger.Notice("reloaded TLS certificate")
} else if common.Contains(c.clientCertificatePath, path) {
clientCertificateCA := x509.NewCertPool()
var reloaded bool
@@ -188,7 +188,7 @@ func (c *STDServerConfig) certificateUpdated(path string) error {
config.ClientCAs = clientCertificateCA
c.config = config
c.access.Unlock()
c.logger.Info("reloaded client certificates")
c.logger.Notice("reloaded client certificates")
} else if path == c.echKeyPath {
echKey, err := os.ReadFile(c.echKeyPath)
if err != nil {
@@ -198,7 +198,7 @@ func (c *STDServerConfig) certificateUpdated(path string) error {
if err != nil {
return err
}
c.logger.Info("reloaded ECH keys")
c.logger.Notice("reloaded ECH keys")
}
return nil
}
+2 -3
View File
@@ -9,7 +9,6 @@ import (
"strings"
"time"
Xbadoption "github.com/sagernet/sing-box/common/xray/json/badoption"
"github.com/sagernet/sing/common/json/badoption"
)
@@ -69,8 +68,8 @@ func DecodeBase64URLSafe(content string) (string, error) {
return string(result), nil
}
func ParseXHTTPRange(value string) (Xbadoption.Range, error) {
result := Xbadoption.Range{}
func ParseXHTTPRange(value string) (badoption.Range[int], error) {
result := badoption.Range[int]{}
encoded, err := json.Marshal(value)
if err != nil {
return result, err
-83
View File
@@ -1,83 +0,0 @@
package badoption
import (
"encoding/json"
"fmt"
"strconv"
"strings"
"github.com/sagernet/sing-box/common/xray/crypto"
E "github.com/sagernet/sing/common/exceptions"
)
type Range struct {
From int32 `json:"from"`
To int32 `json:"to"`
}
func (c *Range) Build() *Range {
return (*Range)(c)
}
func (c *Range) MarshalJSON() ([]byte, error) {
if c.From == c.To {
return json.Marshal(c.From)
}
return json.Marshal(fmt.Sprintf("%d-%d", c.From, c.To))
}
func (c *Range) UnmarshalJSON(content []byte) error {
var rangeValue struct {
From int32 `json:"from"`
To int32 `json:"to"`
}
var stringValue string
err := json.Unmarshal(content, &stringValue)
if err == nil {
parts := strings.Split(stringValue, "-")
if len(parts) != 2 {
from, err := strconv.ParseInt(parts[0], 10, 32)
if err != nil {
return err
}
rangeValue.From, rangeValue.To = int32(from), int32(from)
} else {
from, err := strconv.ParseInt(parts[0], 10, 32)
if err != nil {
return err
}
to, err := strconv.ParseInt(parts[1], 10, 32)
if err != nil {
return err
}
rangeValue.From, rangeValue.To = int32(from), int32(to)
}
} else {
var int32Value int32
err := json.Unmarshal(content, &int32Value)
if err == nil {
rangeValue.From, rangeValue.To = int32Value, int32Value
} else {
err := json.Unmarshal(content, &rangeValue)
if err != nil {
return err
}
}
}
if rangeValue.From > rangeValue.To {
return E.New("invalid range")
}
*c = Range{rangeValue.From, rangeValue.To}
return nil
}
func (c *Range) String() string {
if c.From == c.To {
return strconv.FormatInt(int64(c.From), 10)
}
return fmt.Sprintf("%d-%d", c.From, c.To)
}
func (c Range) Rand() int32 {
return int32(crypto.RandBetween(int64(c.From), int64(c.To)))
}
+6
View File
@@ -28,6 +28,7 @@ const (
TypeMieru = "mieru"
TypeAnyTLS = "anytls"
TypeSudoku = "sudoku"
TypeSnell = "snell"
TypeShadowsocksR = "shadowsocksr"
TypeVLESS = "vless"
TypeTUIC = "tuic"
@@ -41,6 +42,7 @@ const (
TypeBandwidthLimiter = "bandwidth-limiter"
TypeTrafficLimiter = "traffic-limiter"
TypeRateLimiter = "rate-limiter"
TypeFairQueue = "fair-queue"
TypeAdminPanel = "admin-panel"
TypeManagerAPI = "manager-api"
TypeNodeManagerAPI = "node-manager-api"
@@ -129,6 +131,8 @@ func ProxyDisplayName(proxyType string) string {
return "AnyTLS"
case TypeSudoku:
return "Sudoku"
case TypeSnell:
return "Snell"
case TypeFallback:
return "Fallback"
case TypeTailscale:
@@ -145,6 +149,8 @@ func ProxyDisplayName(proxyType string) string {
return "Traffic Limiter"
case TypeRateLimiter:
return "Rate Limiter"
case TypeFairQueue:
return "Fair Queue"
case TypeVPNClient:
return "VPN Client"
case TypeVPNServer:
+1
View File
@@ -10,6 +10,7 @@ const (
ReadPayloadTimeout = 300 * time.Millisecond
DNSTimeout = 10 * time.Second
UDPTimeout = 5 * time.Minute
ICMPTimeout = 10 * time.Second
DefaultURLTestInterval = 3 * time.Minute
DefaultURLTestIdleTimeout = 30 * time.Minute
StartTimeout = 10 * time.Second
+20 -17
View File
@@ -20,13 +20,14 @@ const (
type LogLevel int32
const (
LogLevel_PANIC LogLevel = 0
LogLevel_FATAL LogLevel = 1
LogLevel_ERROR LogLevel = 2
LogLevel_WARN LogLevel = 3
LogLevel_INFO LogLevel = 4
LogLevel_DEBUG LogLevel = 5
LogLevel_TRACE LogLevel = 6
LogLevel_PANIC LogLevel = 0
LogLevel_FATAL LogLevel = 1
LogLevel_ERROR LogLevel = 2
LogLevel_WARN LogLevel = 3
LogLevel_NOTICE LogLevel = 4
LogLevel_INFO LogLevel = 5
LogLevel_DEBUG LogLevel = 6
LogLevel_TRACE LogLevel = 7
)
// Enum value maps for LogLevel.
@@ -36,18 +37,20 @@ var (
1: "FATAL",
2: "ERROR",
3: "WARN",
4: "INFO",
5: "DEBUG",
6: "TRACE",
4: "NOTICE",
5: "INFO",
6: "DEBUG",
7: "TRACE",
}
LogLevel_value = map[string]int32{
"PANIC": 0,
"FATAL": 1,
"ERROR": 2,
"WARN": 3,
"INFO": 4,
"DEBUG": 5,
"TRACE": 6,
"PANIC": 0,
"FATAL": 1,
"ERROR": 2,
"WARN": 3,
"NOTICE": 4,
"INFO": 5,
"DEBUG": 6,
"TRACE": 7,
}
)
+4 -3
View File
@@ -59,9 +59,10 @@ enum LogLevel {
FATAL = 1;
ERROR = 2;
WARN = 3;
INFO = 4;
DEBUG = 5;
TRACE = 6;
NOTICE = 4;
INFO = 5;
DEBUG = 6;
TRACE = 7;
}
message Log {
+39 -17
View File
@@ -41,9 +41,9 @@ type Client struct {
initRDRCFunc func() adapter.RDRCStore
logger logger.ContextLogger
cache freelru.Cache[dns.Question, *dns.Msg]
cacheLock compatible.Map[dns.Question, chan struct{}]
cacheLock compatible.Map[transportCacheKey, chan struct{}]
transportCache freelru.Cache[transportCacheKey, *dns.Msg]
transportCacheLock compatible.Map[dns.Question, chan struct{}]
transportCacheLock compatible.Map[transportCacheKey, chan struct{}]
}
type ClientOptions struct {
@@ -107,6 +107,10 @@ func extractNegativeTTL(response *dns.Msg) (uint32, bool) {
}
func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, message *dns.Msg, options adapter.DNSQueryOptions, responseChecker func(responseAddrs []netip.Addr) bool) (*dns.Msg, error) {
transportStack := transportStackFromContext(ctx)
if containsTransport(transportStack, transport.Tag()) {
return nil, E.New("DNS resolution loop detected: ", formatTransportLoop(transportStack, transport.Tag()))
}
if len(message.Question) == 0 {
if c.logger != nil {
c.logger.WarnContext(ctx, "bad question size: ", len(message.Question))
@@ -137,9 +141,11 @@ func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, m
len(message.Extra[0].(*dns.OPT).Option) == 0) &&
!options.ClientSubnet.IsValid()
disableCache := !isSimpleRequest || c.disableCache || options.DisableCache
ctx = contextWithTransportStack(ctx, append(transportStack, transport.Tag()))
if !disableCache {
cacheKey := transportCacheKey{Question: question, transportTag: transport.Tag()}
if c.cache != nil {
cond, loaded := c.cacheLock.LoadOrStore(question, make(chan struct{}))
cond, loaded := c.cacheLock.LoadOrStore(cacheKey, make(chan struct{}))
if loaded {
select {
case <-cond:
@@ -148,12 +154,12 @@ func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, m
}
} else {
defer func() {
c.cacheLock.Delete(question)
c.cacheLock.Delete(cacheKey)
close(cond)
}()
}
} else if c.transportCache != nil {
cond, loaded := c.transportCacheLock.LoadOrStore(question, make(chan struct{}))
cond, loaded := c.transportCacheLock.LoadOrStore(cacheKey, make(chan struct{}))
if loaded {
select {
case <-cond:
@@ -162,7 +168,7 @@ func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, m
}
} else {
defer func() {
c.transportCacheLock.Delete(question)
c.transportCacheLock.Delete(cacheKey)
close(cond)
}()
}
@@ -176,11 +182,6 @@ func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, m
}
messageId := message.Id
contextTransport, clientSubnetLoaded := transportTagFromContext(ctx)
if clientSubnetLoaded && transport.Tag() == contextTransport {
return nil, E.New("DNS query loopback in transport[", contextTransport, "]")
}
ctx = contextWithTransportTag(ctx, transport.Tag())
if !disableCache && responseChecker != nil && c.rdrc != nil {
rejected := c.rdrc.LoadRDRC(transport.Tag(), question.Name, question.Qtype)
if rejected {
@@ -546,15 +547,36 @@ func MessageToAddresses(response *dns.Msg) []netip.Addr {
return addresses
}
type transportKey struct{}
type transportStackKey struct{}
func contextWithTransportTag(ctx context.Context, transportTag string) context.Context {
return context.WithValue(ctx, transportKey{}, transportTag)
func contextWithTransportStack(ctx context.Context, stack []string) context.Context {
return context.WithValue(ctx, transportStackKey{}, stack)
}
func transportTagFromContext(ctx context.Context) (string, bool) {
value, loaded := ctx.Value(transportKey{}).(string)
return value, loaded
func transportStackFromContext(ctx context.Context) []string {
value, _ := ctx.Value(transportStackKey{}).([]string)
return value
}
func containsTransport(stack []string, tag string) bool {
for _, t := range stack {
if t == tag {
return true
}
}
return false
}
func formatTransportLoop(stack []string, loopTag string) string {
result := ""
for i, t := range stack {
if i > 0 {
result += " -> "
}
result += t
}
result += " -> " + loopTag
return result
}
func FixedResponseStatus(message *dns.Msg, rcode int) *dns.Msg {
+2 -2
View File
@@ -186,7 +186,7 @@ func (t *Transport) updateServers() error {
return E.Cause(err, "dhcp: prepare interface")
}
t.logger.Info("dhcp: query DNS servers on ", iface.Name)
t.logger.Notice("dhcp: query DNS servers on ", iface.Name)
fetchCtx, cancel := context.WithTimeout(t.ctx, C.DHCPTimeout)
err = t.fetchServers0(fetchCtx, iface)
cancel()
@@ -303,7 +303,7 @@ func (t *Transport) recreateServers(iface *control.Interface, dhcpPacket *dhcpv4
return M.SocksaddrFrom(M.AddrFromIP(it), 53)
})
if len(serverAddrs) > 0 && !slices.Equal(t.servers, serverAddrs) {
t.logger.Info("dhcp: updated DNS servers from ", iface.Name, ": [", strings.Join(common.Map(serverAddrs, M.Socksaddr.String), ","), "], search: [", strings.Join(t.search, ","), "]")
t.logger.Notice("dhcp: updated DNS servers from ", iface.Name, ": [", strings.Join(common.Map(serverAddrs, M.Socksaddr.String), ","), "], search: [", strings.Join(t.search, ","), "]")
}
t.servers = serverAddrs
return nil
+4 -3
View File
@@ -11,6 +11,7 @@ import (
"unsafe"
"github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing/common"
"github.com/sagernet/sing/service"
"golang.org/x/sys/windows"
@@ -77,12 +78,12 @@ func dnsReadConfig(ctx context.Context, _ string) *dnsConfig {
}{ifName: windows.UTF16PtrToString(address.FriendlyName), Addr: dnsServerAddr})
}
}
var myInterface string
var myInterfaces []string
if networkManager := service.FromContext[adapter.NetworkManager](ctx); networkManager != nil {
myInterface = networkManager.InterfaceMonitor().MyInterface()
myInterfaces = networkManager.InterfaceMonitor().MyInterfaces()
}
for _, address := range dnsAddresses {
if address.ifName == myInterface {
if common.Contains(myInterfaces, address.ifName) {
continue
}
conf.servers = append(conf.servers, net.JoinHostPort(address.String(), "53"))
+2 -2
View File
@@ -217,7 +217,7 @@ func (m *TransportManager) Remove(tag string) error {
return E.New("default server cannot be fakeip")
}
m.defaultTransport = nextTransport
m.logger.Info("updated default server to ", m.defaultTransport.Tag())
m.logger.Notice("updated default server to ", m.defaultTransport.Tag())
} else {
m.defaultTransport = nil
}
@@ -287,7 +287,7 @@ func (m *TransportManager) Create(ctx context.Context, logger log.ContextLogger,
}
m.defaultTransport = transport
if m.started {
m.logger.Info("updated default server to ", transport.Tag())
m.logger.Notice("updated default server to ", transport.Tag())
}
}
if transport.Type() == C.DNSTypeFakeIP {
+8
View File
@@ -2,6 +2,14 @@
icon: material/alert-decagram
---
#### 1.13.14
* Fixes and improvements
#### 1.13.13
* Fixes and improvements
#### 1.13.12
* Update naiveproxy to v148.0.7778.96-1
@@ -32,7 +32,7 @@
"tag": "my-manager",
"database": {
"driver": "sqlite",
"dsn": "file:manager.db?_pragma=foreign_keys(on)&_pragma=journal_mode(wal)&_pragma=busy_timeout(5000)" // also supported Postgresql
"dsn": "file:manager.db?_pragma=foreign_keys(on)&_pragma=journal_mode(wal)&_pragma=busy_timeout(5000)&_time_format=sqlite" // also supported Postgresql
}
},
{
+1 -1
View File
@@ -66,7 +66,7 @@
"action": "hijack-dns"
}
],
"final": "connection-limiter"
"final": "traffic-limiter"
},
"services": [
{
+8 -1
View File
@@ -25,10 +25,13 @@
{
"type": "masque",
"tag": "masque-out",
"system": false,
"name": "masque0",
"use_http2": false,
"use_ipv6": false,
"profile": {
"detour": "direct",
// For getting existing MASQUE device profile, else sing-box will create new profile
"id": "",
"auth_token": ""
},
@@ -36,11 +39,15 @@
"udp_keepalive_period": "30s",
"udp_initial_packet_size": 0,
"reconnect_delay": "5s",
"tls": {
"congestion_controller": "bbr",
"cwnd": 0,
"tls": { // TLS fields for HTTP2
"server_name": "", // SNI; empty = default "consumer-masque.cloudflareclient.com"
"insecure": false,
"cipher_suites": [],
"curve_preferences": [],
"fragment": false,
"fragment_fallback_delay": "500ms",
"record_fragment": false,
"kernel_tx": false,
"kernel_rx": false
+3
View File
@@ -7,6 +7,9 @@
"type": "mieru",
"tag": "mieru-in",
"listen_port": 27017,
"listen_ports": [
"27017-27019"
],
"transport": "TCP",
"users": [
{
+9 -1
View File
@@ -31,7 +31,15 @@
"packet_encoding": "",
"transport": {
"type": "mkcp",
"mtu": 1500
"mtu": 1350, // 576-1460
"tti": 50, // 10-100, ms
"uplink_capacity": 12, // MB/s
"downlink_capacity": 100, // MB/s
"congestion": false,
"read_buffer_size": 1, // MB
"write_buffer_size": 1, // MB
"header_type": "none", // none, srtp, utp, wechat-video, dtls, wireguard
"seed": "password"
}
}
],
+9 -1
View File
@@ -24,7 +24,15 @@
],
"transport": {
"type": "mkcp",
"mtu": 1500
"mtu": 1350, // 576-1460
"tti": 50, // 10-100, ms
"uplink_capacity": 12, // MB/s
"downlink_capacity": 100, // MB/s
"congestion": false,
"read_buffer_size": 1, // MB
"write_buffer_size": 1, // MB
"header_type": "none", // none, srtp, utp, wechat-video, dtls, wireguard
"seed": "password"
}
}
],
+3 -3
View File
@@ -26,9 +26,9 @@
"concurrency": 8192,
// domain_fronting_port is a port we use to connect to a fronting domain.
"domain_fronting_port": 443,
// domain_fronting_ip is an IP address to use when connecting to the fronting
// domain instead of resolving the hostname from the secret via DNS.
"domain_fronting_ip": "",
// domain_fronting_host is the address (IP or hostname) to use when connecting
// to the fronting domain instead of resolving the hostname from the secret via DNS.
"domain_fronting_host": "",
// domain_fronting_proxy_protocol is used if communication between upstream
// endpoint and sing-box supports proxy protocol.
"domain_fronting_proxy_protocol": false,
+2
View File
@@ -13,6 +13,8 @@
{
"type": "openvpn",
"tag": "openvpn-out",
"system": false,
"name": "openvpn0",
"servers": [
{
"server": "vpn.example.com",
+2
View File
@@ -13,6 +13,8 @@
{
"type": "openvpn",
"tag": "openvpn-out",
"system": false,
"name": "openvpn0",
"servers": [
{
"server": "vpn.example.com",
+2
View File
@@ -13,6 +13,8 @@
{
"type": "openvpn",
"tag": "openvpn-out",
"system": false,
"name": "openvpn0",
"servers": [
{
"server": "vpn.example.com",
+2
View File
@@ -13,6 +13,8 @@
{
"type": "openvpn",
"tag": "openvpn-out",
"system": false,
"name": "openvpn0",
"servers": [
{
"server": "vpn.example.com",
+13
View File
@@ -0,0 +1,13 @@
{
"log": {
"level": "info"
},
"services": [
{
"type": "profiler",
"tag": "pprof",
"listen": "127.0.0.1",
"listen_port": 6060
}
]
}
+24
View File
@@ -47,6 +47,30 @@
// shareable links, or plain link list.
"url": "https://example.com/subscription.txt",
"user_agent": "sing-box",
// Custom HTTP headers sent with each subscription request.
// Some subscription panels (e.g. Remnawave with incy/happ
// integration) require device-identification headers to
// return the real server list instead of a dummy config.
//
// !!! DO NOT COPY THE VALUE BELOW !!!
// x-hwid must be generated per-device. A random UUID will
// be rejected by the panel. Generate yours on Linux:
//
// python3 -c "import hashlib,socket,getpass;m=open('/etc/machine-id').read().strip();d=hashlib.sha256(f'{m}|{socket.gethostname()}|Linux|amd64|{getpass.getuser()}'.encode()).hexdigest();h=hashlib.sha256(('incy_hwid_'+d).encode()).hexdigest();print(f'{h[:8]}-{h[8:12]}-{h[12:16]}-{h[16:20]}-{h[20:32]}'.upper())"
//
// Algorithm: SHA256("incy_hwid_" + SHA256(deviceId))
// Linux deviceId: "machineId|hostname|Linux|amd64|user"
// Android deviceId: "androidId|manufacturer|model|brand|device|product|board|hardware"
// Ref: https://github.com/INCY-DEV/incy-docs/blob/main/ru/dev-docs/hwid.md
"headers": {
"x-hwid": ["REPLACE_WITH_GENERATED_HWID"],
// Platform: linux, android, ios, windows, macos
"x-device-os": ["linux"],
// OS version — on Linux: uname -r
"x-ver-os": ["6.12.0-arch1-1"],
// Device model — on Linux: uname -m
"x-device-model": ["x86_64"]
},
// Fetch the subscription through this outbound instead of the
// default route (useful when the subscription host is blocked).
"download_detour": "direct",
+46
View File
@@ -0,0 +1,46 @@
{
"log": {
"level": "error"
},
"dns": {
"servers": [
{
"type": "local",
"tag": "default"
}
]
},
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen_port": 7897
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
},
{
"type": "snell",
"tag": "snell-out",
"server": "example.com",
"server_port": 8443,
"psk": "your-secret-psk",
"version": 4, // 1 | 2 | 3 | 4 | 5 (v5 falls back to v4)
"reuse": true, // v4 only, reuse pooled connections
"network": ["tcp", "udp"]
// "obfs": {
// "mode": "tls", // tls | http
// "host": "bing.com"
// }
// Dial Fields
}
],
"route": {
"final": "snell-out",
"default_domain_resolver": "default",
"auto_detect_interface": true
}
}
+39
View File
@@ -0,0 +1,39 @@
{
"log": {
"level": "error"
},
"dns": {
"servers": [
{
"type": "local",
"tag": "default"
}
]
},
"inbounds": [
{
"type": "snell",
"tag": "snell-in",
"listen": "::",
"listen_port": 8443,
"psk": "your-secret-psk",
"version": 4, // 4 | 5 (server supports v4/v5 only)
"network": ["tcp", "udp"]
// "obfs": {
// "mode": "tls", // tls | http
// "host": "bing.com"
// }
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"final": "direct",
"default_domain_resolver": "default",
"auto_detect_interface": true
}
}
+52
View File
@@ -0,0 +1,52 @@
{
"log": {
"level": "error"
},
"dns": {
"servers": [
{
"type": "local",
"tag": "default"
}
]
},
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen_port": 7897
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
},
{
"type": "ssh",
"tag": "ssh-out",
"server": "example.com",
"server_port": 2222,
"user": "user",
// Authentication: password or private key
"password": "password",
"private_key": [
"-----BEGIN OPENSSH PRIVATE KEY-----\n...\n-----END OPENSSH PRIVATE KEY-----"
],
// or: "private_key_path": "/path/to/id_ed25519",
"private_key_passphrase": "",
// Pin server host key (optional)
"host_key": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."
],
"host_key_algorithms": ["ssh-ed25519"],
"client_version": "SSH-2.0-OpenSSH_9.6"
// Dial Fields
}
],
"route": {
"final": "ssh-out",
"default_domain_resolver": "default",
"auto_detect_interface": true
}
}
+76
View File
@@ -0,0 +1,76 @@
{
"log": {
"level": "info"
},
"dns": {
"servers": [
{
"type": "local",
"tag": "default"
}
]
},
"inbounds": [
{
"type": "ssh",
"tag": "ssh-in",
"listen": "0.0.0.0",
"listen_port": 2222,
"host_key": [
"-----BEGIN OPENSSH PRIVATE KEY-----\n...\n-----END OPENSSH PRIVATE KEY-----"
],
// or: "host_key_path": ["/etc/sing-box/ssh_host_ed25519_key"],
"server_version": "SSH-2.0-OpenSSH_9.6",
"max_auth_tries": 3,
"users": [
{
"name": "user1",
"password": "password1"
},
{
"name": "user2",
"authorized_keys": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... user2@host"
]
}
],
"fallback": {
"server": "10.0.0.2",
"server_port": 22,
"ca": {
"private_key": [
"-----BEGIN OPENSSH PRIVATE KEY-----\n...\n-----END OPENSSH PRIVATE KEY-----"
],
// or: "private_key_path": "/etc/sing-box/ca_key",
"private_key_passphrase": ""
},
// Optional: separate CA for issuing upstream certs (defaults to ca)
"issue_ca": {
"private_key": [
"-----BEGIN OPENSSH PRIVATE KEY-----\n...\n-----END OPENSSH PRIVATE KEY-----"
],
// or: "private_key_path": "/etc/sing-box/issue_ca_key",
"private_key_passphrase": ""
},
"host_key": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... upstream-host-key"
],
// or: "host_key_path": ["/etc/sing-box/upstream_host_key.pub"],
"host_key_algorithms": ["ssh-ed25519"],
"client_version": "SSH-2.0-OpenSSH_9.6"
// Dial Fields
}
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"final": "direct",
"default_domain_resolver": "default",
"auto_detect_interface": true
}
}
+4 -3
View File
@@ -31,7 +31,8 @@
"multiplex": {
"enabled": true,
"max_connections": 8,
"min_streams": 5
"min_streams": 5,
"max_streams": 0
},
"tls": {
"enabled": true,
@@ -50,12 +51,12 @@
"health_check": true,
"quic": true,
"congestion_controller": "bbr", // bbr, bbr_standard, bbr2, bbr2_variant, cubic, reno
"bbr_profile": "standard", // standard, conservative, aggressive
"cwnd": 32,
"multiplex": {
"enabled": true,
"max_connections": 8,
"min_streams": 5
"min_streams": 5,
"max_streams": 0
},
"tls": {
"enabled": true,
-1
View File
@@ -13,7 +13,6 @@
}
],
"congestion_controller": "bbr", // bbr, bbr_standard, bbr2, bbr2_variant, cubic, reno
"bbr_profile": "standard", // standard, conservative, aggressive
"cwnd": 32,
"tls": {
"enabled": true,
+22 -2
View File
@@ -14,23 +14,43 @@
{
"type": "warp",
"tag": "warp-out",
"system": false,
"name": "warp0",
"listen_port": 10000,
"udp_timeout": "5m0s",
"persistent_keepalive_interval": 25,
"workers": 8,
"preallocated_buffers_per_pool": 256,
"disable_pauses": true,
"amnezia": {
"jc": 120,
"jmin": 23,
"jmax": 911,
"s1": 1,
"s2": 2,
"s3": 3,
"s4": 4,
"h1": 1,
"h2": 2,
"h3": 3,
"h4": 4
"h4": 4,
"i1": "<b 0xc70000000108...",
"i2": "<b 0xc70000000108...",
"i3": "<b 0xc70000000108...",
"i4": "<b 0xc70000000108...",
"i5": "<b 0xc70000000108...",
"j1": "<b 0xc70000000108...",
"j2": "<b 0xc70000000108...",
"j3": "<b 0xc70000000108...",
"itime": 50
},
"profile": {
"detour": "direct",
// For getting existing WARP device profile, else sing-box will create new profile
"id": "",
"private_key": "",
"auth_token": ""
"auth_token": "",
"recreate": false
}
// Dial Fields
}
+4
View File
@@ -65,6 +65,8 @@
"uplink_data_placement": "",
"uplink_data_key": "",
"uplink_chunk_size": 0,
"congestion_controller": "", // h3 only: bbr, bbr_standard, bbr2, bbr2_variant, cubic, reno
"cwnd": 0, // h3 only: initial congestion window in packets, default 32
"server": "example.com",
"server_port": 443,
"download": {
@@ -97,6 +99,8 @@
"uplink_data_placement": "",
"uplink_data_key": "",
"uplink_chunk_size": 0,
"congestion_controller": "", // h3 only: bbr, bbr_standard, bbr2, bbr2_variant, cubic, reno
"cwnd": 0, // h3 only: initial congestion window in packets, default 32
"server": "example.com",
"server_port": 443,
"tls": { // https://sing-box.sagernet.org/configuration/shared/tls/#outbound
+2
View File
@@ -51,6 +51,8 @@
"seq_key": "",
"uplink_data_placement": "",
"uplink_data_key": "",
"congestion_controller": "", // h3 only: bbr, bbr_standard, bbr2, bbr2_variant, cubic, reno
"cwnd": 0, // h3 only: initial congestion window in packets, default 32
}
}
],
+1 -1
View File
@@ -30,7 +30,7 @@ func updateExternalUI(server *Server) func(w http.ResponseWriter, r *http.Reques
render.JSON(w, r, newError(err.Error()))
return
}
server.logger.Info("updated external UI")
server.logger.Notice("updated external UI")
render.JSON(w, r, render.M{"status": "ok"})
}
}
+2 -2
View File
@@ -177,7 +177,7 @@ func (s *Server) Start(stage adapter.StartStage) error {
if err != nil {
return E.Cause(err, "external controller listen error")
}
s.logger.Info("restful api listening at ", listener.Addr())
s.logger.Notice("restful api listening at ", listener.Addr())
go func() {
err = s.httpServer.Serve(listener)
if err != nil && !errors.Is(err, http.ErrServerClosed) {
@@ -234,7 +234,7 @@ func (s *Server) SetMode(newMode string) {
s.logger.Error(E.Cause(err, "save mode"))
}
}
s.logger.Info("updated mode: ", newMode)
s.logger.Notice("updated mode: ", newMode)
}
func (s *Server) HistoryStorage() adapter.URLTestHistoryStorage {
+6 -2
View File
@@ -78,6 +78,10 @@ func (s *platformInterfaceStub) AutoDetectInterfaceControl(fd int) error {
return nil
}
func (s *platformInterfaceStub) BindInterfaceControl(fd int, interfaceName string) error {
return os.ErrInvalid
}
func (s *platformInterfaceStub) UsePlatformInterface() bool {
return false
}
@@ -189,8 +193,8 @@ func (s *interfaceMonitorStub) UnregisterCallback(element *list.Element[tun.Defa
func (s *interfaceMonitorStub) RegisterMyInterface(interfaceName string) {
}
func (s *interfaceMonitorStub) MyInterface() string {
return ""
func (s *interfaceMonitorStub) MyInterfaces() []string {
return nil
}
func FormatConfig(configContent string) (*StringBox, error) {
+6 -6
View File
@@ -15,9 +15,9 @@ var (
type platformDefaultInterfaceMonitor struct {
*platformInterfaceWrapper
logger logger.Logger
callbacks list.List[tun.DefaultInterfaceUpdateCallback]
myInterface string
logger logger.Logger
callbacks list.List[tun.DefaultInterfaceUpdateCallback]
myInterfaces []string
}
func (m *platformDefaultInterfaceMonitor) Start() error {
@@ -106,11 +106,11 @@ func (m *platformDefaultInterfaceMonitor) updateDefaultInterface(interfaceName s
func (m *platformDefaultInterfaceMonitor) RegisterMyInterface(interfaceName string) {
m.defaultInterfaceAccess.Lock()
defer m.defaultInterfaceAccess.Unlock()
m.myInterface = interfaceName
m.myInterfaces = append(m.myInterfaces, interfaceName)
}
func (m *platformDefaultInterfaceMonitor) MyInterface() string {
func (m *platformDefaultInterfaceMonitor) MyInterfaces() []string {
m.defaultInterfaceAccess.Lock()
defer m.defaultInterfaceAccess.Unlock()
return m.myInterface
return m.myInterfaces
}
+1
View File
@@ -6,6 +6,7 @@ type PlatformInterface interface {
LocalDNSTransport() LocalDNSTransport
UsePlatformAutoDetectInterfaceControl() bool
AutoDetectInterfaceControl(fd int32) error
BindInterfaceControl(fd int32, interfaceName string) error
OpenTun(options TunOptions) (int32, error)
UseProcFS() bool
FindConnectionOwner(ipProtocol int32, sourceAddress string, sourcePort int32, destinationAddress string, destinationPort int32) (*ConnectionOwner, error)
+4
View File
@@ -49,6 +49,10 @@ func (w *platformInterfaceWrapper) AutoDetectInterfaceControl(fd int) error {
return w.iif.AutoDetectInterfaceControl(int32(fd))
}
func (w *platformInterfaceWrapper) BindInterfaceControl(fd int, interfaceName string) error {
return w.iif.BindInterfaceControl(int32(fd), interfaceName)
}
func (w *platformInterfaceWrapper) UsePlatformInterface() bool {
return true
}
+1 -1
View File
@@ -56,7 +56,7 @@ func (s *Server) Start(stage adapter.StartStage) error {
if err != nil {
return err
}
s.logger.Info("grpc server started at ", listener.Addr())
s.logger.Notice("grpc server started at ", listener.Addr())
s.tcpListener = listener
go func() {
err = s.grpcServer.Serve(listener)
+59 -55
View File
@@ -1,6 +1,6 @@
module github.com/sagernet/sing-box
go 1.26.1
go 1.26.4
require (
github.com/AliRizaAynaci/gorl/v2 v2.2.0
@@ -32,22 +32,23 @@ require (
github.com/miekg/dns v1.1.72
github.com/openai/openai-go/v3 v3.26.0
github.com/oschwald/maxminddb-golang v1.13.1
github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e
github.com/sagernet/asc-go v0.0.0-20241217030726-d563060fe4e1
github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a
github.com/sagernet/cors v1.2.1
github.com/sagernet/cronet-go v0.0.0-20260513071958-2faf34666c2c
github.com/sagernet/cronet-go/all v0.0.0-20260513071958-2faf34666c2c
github.com/sagernet/cronet-go v0.0.0-20260620140045-05ab0dc17597
github.com/sagernet/cronet-go/all v0.0.0-20260620140045-05ab0dc17597
github.com/sagernet/fswatch v0.1.2
github.com/sagernet/gomobile v0.1.12
github.com/sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1
github.com/sagernet/quic-go v0.59.0-sing-box-mod.4
github.com/sagernet/sing v0.8.10
github.com/sagernet/sing-mux v0.3.4
github.com/sagernet/sing v0.8.11
github.com/sagernet/sing-mux v0.3.5
github.com/sagernet/sing-quic v0.6.1
github.com/sagernet/sing-shadowsocks v0.2.8
github.com/sagernet/sing-shadowsocks2 v0.2.1
github.com/sagernet/sing-shadowtls v0.2.1-0.20250503051639-fcd445d33c11
github.com/sagernet/sing-tun v0.8.9
github.com/sagernet/sing-tun v0.8.11
github.com/sagernet/sing-vmess v0.2.8-0.20250909125414-3aed155119a1
github.com/sagernet/smux v1.5.50-sing-box-mod.1
github.com/sagernet/tailscale v1.92.4-sing-box-1.13-mod.7
@@ -59,14 +60,14 @@ require (
github.com/stretchr/testify v1.11.1
github.com/vishvananda/netns v0.0.5
github.com/yosida95/uritemplate/v3 v3.0.2
go.uber.org/zap v1.27.1
go.uber.org/zap v1.28.0
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
golang.org/x/crypto v0.49.0
golang.org/x/crypto v0.53.0
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90
golang.org/x/mod v0.34.0
golang.org/x/net v0.52.0
golang.org/x/sync v0.20.0
golang.org/x/sys v0.42.0
golang.org/x/mod v0.36.0
golang.org/x/net v0.56.0
golang.org/x/sync v0.21.0
golang.org/x/sys v0.46.0
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10
google.golang.org/grpc v1.79.1
google.golang.org/protobuf v1.36.11
@@ -80,10 +81,12 @@ require (
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/docker/docker v28.5.2+incompatible // indirect
github.com/docker/go-connections v0.6.0 // indirect
github.com/docker/go-connections v0.7.0 // indirect
github.com/dunglas/httpsfv v1.1.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/lib/pq v1.10.9 // indirect
github.com/moby/term v0.5.2 // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/panjf2000/ants/v2 v2.12.0 // indirect
@@ -92,7 +95,9 @@ require (
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/tylertreat/BoomFilters v0.0.0-20251117164519-53813c36cc1b // indirect
github.com/zeebo/assert v1.3.0 // indirect
go.opentelemetry.io/otel v1.41.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect
go.opentelemetry.io/otel v1.44.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.44.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
gvisor.dev/gvisor v0.0.0-20260408064518-65a410b0d584 // indirect
modernc.org/libc v1.72.0 // indirect
@@ -108,7 +113,7 @@ require (
github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa // indirect
github.com/ameshkov/dnscrypt/v2 v2.4.0
github.com/ameshkov/dnsstamps v1.0.3 // indirect
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/andybalholm/brotli v1.2.1 // indirect
github.com/caddyserver/zerossl v0.1.5 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/coreos/go-iptables v0.7.1-0.20240112124308-65c67c9f46e6 // indirect
@@ -117,7 +122,7 @@ require (
github.com/dblohm7/wingoes v0.0.0-20240119213807-a09d6be7affa // indirect
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 // indirect
github.com/dolonet/mtg-multi v1.8.0
github.com/ebitengine/purego v0.10.0 // indirect
github.com/ebitengine/purego v0.10.1 // indirect
github.com/florianl/go-nfqueue/v2 v2.0.2 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
@@ -134,7 +139,6 @@ require (
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/nftables v0.2.1-0.20240414091927-5e242ec57806 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/hashicorp/yamux v0.1.2 // indirect
github.com/hdevalence/ed25519consensus v0.2.0 // indirect
github.com/huandu/go-clone v1.7.3 // indirect
@@ -144,7 +148,7 @@ require (
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jsimonetti/rtnetlink v1.4.0 // indirect
github.com/klauspost/compress v1.18.3 // indirect
github.com/klauspost/compress v1.18.6 // indirect
github.com/klauspost/cpuid/v2 v2.3.0
github.com/leodido/go-urn v1.4.0 // indirect
github.com/libdns/libdns v1.1.1 // indirect
@@ -152,41 +156,41 @@ require (
github.com/mdlayher/netlink v1.9.0 // indirect
github.com/mdlayher/socket v0.5.1 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/pierrec/lz4/v4 v4.1.25 // indirect
github.com/pierrec/lz4/v4 v4.1.27 // indirect
github.com/pires/go-proxyproto v0.11.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus-community/pro-bing v0.4.0 // indirect
github.com/quic-go/qpack v0.6.0 // indirect
github.com/safchain/ethtool v0.3.0 // indirect
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_loong64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_loong64_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_mips64le v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_mipsle v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_mipsle_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_riscv64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/linux_riscv64_musl v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260513071149-ade33496efb8 // indirect
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_loong64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_loong64_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_mips64le v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_mipsle v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_mipsle_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_riscv64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/linux_riscv64_musl v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260620135226-def9ff0fb992 // indirect
github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a // indirect
github.com/sagernet/nftables v0.3.0-mod.2 // indirect
github.com/spf13/pflag v1.0.10 // indirect
@@ -208,10 +212,10 @@ require (
go.uber.org/zap/exp v0.3.0 // indirect
go4.org/mem v0.0.0-20240501181205-ae6ca9944745 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
golang.org/x/term v0.41.0 // indirect
golang.org/x/text v0.35.0 // indirect
golang.org/x/term v0.44.0 // indirect
golang.org/x/text v0.38.0 // indirect
golang.org/x/time v0.12.0
golang.org/x/tools v0.43.0 // indirect
golang.org/x/tools v0.45.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-20251202230838-ff82c1b0f217 // indirect
@@ -229,10 +233,10 @@ replace github.com/ameshkov/dnscrypt/v2 => github.com/shtorm-7/dnscrypt/v2 v2.4.
replace github.com/sagernet/sing-vmess => github.com/shtorm-7/sing-vmess v0.2.7-extended-1.0.0
replace github.com/dolonet/mtg-multi => github.com/shtorm-7/mtg-multi v1.8.0-extended-1.0.1
replace github.com/dolonet/mtg-multi => github.com/shtorm-7/mtg-multi v1.11.0-extended-1.0.0
replace github.com/Diniboy1123/connect-ip-go => github.com/shtorm-7/connect-ip-go v1.0.0-extended-1.0.0
replace github.com/Diniboy1123/connect-ip-go => github.com/shtorm-7/connect-ip-go v1.0.0-extended-1.1.0
replace github.com/shtorm-7/go-cache/v2 => github.com/shtorm-7/go-cache/v2 v2.1.0-extended-1.1.0
replace github.com/shtorm-7/go-cache/v2 => github.com/shtorm-7/go-cache/v2 v2.1.0-extended-1.2.0
replace github.com/sagernet/sing => github.com/shtorm-7/sing v0.8.10-extended-1.0.0
replace github.com/sagernet/sing => github.com/shtorm-7/sing v0.8.10-extended-1.2.0
+119 -116
View File
@@ -6,8 +6,8 @@ github.com/AdguardTeam/golibs v0.32.7 h1:3dmGlAVgmvquCCwHsvEl58KKcRAK3z1UnjMnwSI
github.com/AdguardTeam/golibs v0.32.7/go.mod h1:bE8KV1zqTzgZjmjFyBJ9f9O5DEKO717r7e57j1HclJA=
github.com/AliRizaAynaci/gorl/v2 v2.2.0 h1:E8oAwkordOwm9ItNNVJ5VKvGroDcHvWNvG11HaCVLZI=
github.com/AliRizaAynaci/gorl/v2 v2.2.0/go.mod h1:13wcj/W736v44b6uygUuwypMY9N3RXJuhAYXukIIdCo=
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg=
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8=
@@ -20,8 +20,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/ameshkov/dnsstamps v1.0.3 h1:Srzik+J9mivH1alRACTbys2xOxs0lRH9qnTA7Y1OYVo=
github.com/ameshkov/dnsstamps v1.0.3/go.mod h1:Ii3eUu73dx4Vw5O4wjzmT5+lkCwovjzaEZZ4gKyIH5A=
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
github.com/andybalholm/brotli v1.2.1 h1:R+f5xP285VArJDRgowrfb9DqL18yVK0gKAW/F+eTWro=
github.com/andybalholm/brotli v1.2.1/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
github.com/anthropics/anthropic-sdk-go v1.26.0 h1:oUTzFaUpAevfuELAP1sjL6CQJ9HHAfT7CoSYSac11PY=
github.com/anthropics/anthropic-sdk-go v1.26.0/go.mod h1:qUKmaW+uuPB64iy1l+4kOSvaLqPXnHTTBKH6RVZ7q5Q=
github.com/anytls/sing-anytls v0.0.11 h1:w8e9Uj1oP3m4zxkyZDewPk0EcQbvVxb7Nn+rapEx4fc=
@@ -79,16 +79,16 @@ github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
github.com/docker/docker v28.5.2+incompatible h1:DBX0Y0zAjZbSrm1uzOkdr1onVghKaftjlSWt4AFexzM=
github.com/docker/docker v28.5.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94=
github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE=
github.com/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf0mN39c=
github.com/docker/go-connections v0.7.0/go.mod h1:no1qkHdjq7kLMGUXYAduOhYPSJxxvgWBh7ogVvptn3Q=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/dunglas/httpsfv v1.1.0 h1:Jw76nAyKWKZKFrpMMcL76y35tOpYHqQPzHQiwDvpe54=
github.com/dunglas/httpsfv v1.1.0/go.mod h1:zID2mqw9mFsnt7YC3vYQ9/cjq30q41W+1AnDwH8TiMg=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU=
github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/ebitengine/purego v0.10.1 h1:dewVBCBT2GaMu1SrNTYxQhgQBethzfhiwvZiLGP/qyY=
github.com/ebitengine/purego v0.10.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/enfein/mieru/v3 v3.33.0 h1:hv2jK8nqYHwpSG86U2rpZR2I8Aff1/J3ifRmd9NBbFc=
github.com/enfein/mieru/v3 v3.33.0/go.mod h1:zJBUCsi5rxyvHM8fjFf+GLaEl4OEjjBXr1s5F6Qd3hM=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
@@ -189,8 +189,8 @@ github.com/jsimonetti/rtnetlink v1.4.0 h1:Z1BF0fRgcETPEa0Kt0MRk3yV5+kF1FWTni6KUF
github.com/jsimonetti/rtnetlink v1.4.0/go.mod h1:5W1jDvWdnthFJ7fxYX1GMK07BUpI4oskfOqvPteYS6E=
github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU=
github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k=
github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw=
github.com/klauspost/compress v1.18.3/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
github.com/klauspost/compress v1.18.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao=
github.com/klauspost/compress v1.18.6/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
@@ -233,8 +233,8 @@ 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/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ=
github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc=
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
@@ -253,8 +253,8 @@ github.com/panjf2000/ants/v2 v2.12.0 h1:u9JhESo83i/GkZnhfTNuFMMWcNt7mnV1bGJ6FT4w
github.com/panjf2000/ants/v2 v2.12.0/go.mod h1:tSQuaNQ6r6NRhPt+IZVUevvDyFMTs+eS4ztZc52uJTY=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pierrec/lz4/v4 v4.1.25 h1:kocOqRffaIbU5djlIBr7Wh+cx82C0vtFb0fOurZHqD0=
github.com/pierrec/lz4/v4 v4.1.25/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
github.com/pierrec/lz4/v4 v4.1.27 h1:+PhzhWDrjRj89TH2sw43nE3+4+W8lSxIuQadEHZyjUk=
github.com/pierrec/lz4/v4 v4.1.27/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
github.com/pires/go-proxyproto v0.11.0 h1:gUQpS85X/VJMdUsYyEgyn59uLJvGqPhJV5YvG68wXH4=
github.com/pires/go-proxyproto v0.11.0/go.mod h1:ZKAAyp3cgy5Y5Mo4n9AlScrkCZwUy0g3Jf+slqQVcuU=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -268,6 +268,8 @@ github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII=
github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw=
github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU=
github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e h1:dCWirM5F3wMY+cmRda/B1BiPsFtmzXqV9b0hLWtVBMs=
github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e/go.mod h1:9leZcVcItj6m9/CfHY5Em/iBrCz7js8LcRQGTKEEv2M=
github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI=
github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
@@ -285,68 +287,68 @@ github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a h1:+NkI2670SQpQWvkk
github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a/go.mod h1:63s7jpZqcDAIpj8oI/1v4Izok+npJOHACFCU6+huCkM=
github.com/sagernet/cors v1.2.1 h1:Cv5Z8y9YSD6Gm+qSpNrL3LO4lD3eQVvbFYJSG7JCMHQ=
github.com/sagernet/cors v1.2.1/go.mod h1:O64VyOjjhrkLmQIjF4KGRrJO/5dVXFdpEmCW/eISRAI=
github.com/sagernet/cronet-go v0.0.0-20260513071958-2faf34666c2c h1:JatMWK/reVa5Y+x3D3l49SVtHB/EQUEtQnAFTxPBNxY=
github.com/sagernet/cronet-go v0.0.0-20260513071958-2faf34666c2c/go.mod h1:T/mwtrpC4JlWfScw73CmSBvHzIvc7BatQ1MhRr+cYNw=
github.com/sagernet/cronet-go/all v0.0.0-20260513071958-2faf34666c2c h1:F/tL+VzLZ2F4SNZZze6SRSRL/jcX7LwIsuL1+hECiz0=
github.com/sagernet/cronet-go/all v0.0.0-20260513071958-2faf34666c2c/go.mod h1:GGE1tBbFgHq8kV99AKX1JXFY+9FvgNSK/W6Z5j24Ihc=
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260513071149-ade33496efb8 h1:NCKxyAnEkwsEueAEbuuUUjs2FEZAIflr+WN3Mwbvsdg=
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260513071149-ade33496efb8/go.mod h1:XXDwdjX/T8xftoeJxQmbBoYXZp8MAPFR2CwbFuTpEtw=
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260513071149-ade33496efb8 h1:o3AGm7/L/zAdBvPu0u1dFgDR/tH086qyuXZkjLNJ7/E=
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:iNiUGoLtnr8/JTuVNj7XJbmpOAp2C6+B81KDrPxwaZM=
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260513071149-ade33496efb8 h1:AeO8yHQj7aNj16fiJNU797alyuM3T+3VASnETHeV220=
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260513071149-ade33496efb8/go.mod h1:19ILNUOGIzRdOqa2mq+iY0JoHxuieB7/lnjYeaA2vEc=
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260513071149-ade33496efb8 h1:ZgW2/Qq/5Q6eTlW80QXLokU56kfjvbLJSEGYTkcG3hU=
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:JxzGyQf94Cr6sBShKqODGDyRUlESfJK/Njcz9Lz6qMQ=
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260513071149-ade33496efb8 h1:orYgvX5X9aUa+sRrAuuqA6PXiiBUI2D367ZJqan4lIU=
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:KN+9T9TBycGOLzmKU4QdcHAJEj6Nlx48ifnlTvvHMvs=
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260513071149-ade33496efb8 h1:2w1s3wEk7qW2w4IGwlJflxwXBM97UChNiqAErKpvHr0=
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:kojvtUc29KKnk8hs2QIANynVR59921SnGWA9kXohHc0=
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260513071149-ade33496efb8 h1:22k6CB3d4gHT+SARUh2bgNyGU4QwYupcCdP8cGuwygY=
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260513071149-ade33496efb8/go.mod h1:hkQzRE5GDbaH1/ioqYh0Taho4L6i0yLRCVEZ5xHz5M0=
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260513071149-ade33496efb8 h1:PkJ5EaqLrv6bNR+MHx1/joJXoRcoYcV7JA4NtXbFQsc=
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:tzVJFTOm66UxLxy6K0ZN5Ic2PC79e+sKKnt+V9puEa4=
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260513071149-ade33496efb8 h1:V629H+OQ9yOR2d0Jkq5y42j5btpvoSWJbUaBH7FCGPI=
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260513071149-ade33496efb8/go.mod h1:M/pN6m3j0HFU6/y83n0HU6GLYys3tYdr/xTE8hVEGMo=
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260513071149-ade33496efb8 h1:gfObF5uoqJslCdMRRm2Yo+gmPJQPVlrci5Myrki0Kzk=
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260513071149-ade33496efb8/go.mod h1:cGh5hO6eljCo6KMQ/Cel8Xgq4+etL0awZLRBDVG1EZQ=
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260513071149-ade33496efb8 h1:JRPN0RBKvoOBEHezJh/54KD9ftWL7YadtcCgOf/vRnw=
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:JFE0/cxaKkx0wqPMZU7MgaplQlU0zudv82dROJjClKU=
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260513071149-ade33496efb8 h1:mM8gNdFlXSpjZFs9kgaMgW94oTRF8YdEEQgdOp/OEUA=
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:vU8VftFeSt7fURCa3JXD6+k6ss1YAX+idQjPvHmJ2tI=
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260513071149-ade33496efb8 h1:ZtCH0fH07giTK6wqkenA9fdFYt7krjWiyOvC8z9nPwk=
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:vCe4OUuL+XOUge9v3MyTD45BnuAXiH+DkjN9quDXJzQ=
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260513071149-ade33496efb8 h1:Uviqmw+Q4No9kCxJWJ5CYcq6PNHB9f0jQhd15j39+no=
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260513071149-ade33496efb8/go.mod h1:w9amBWrvjtohQzBGCKJ7LCh22LhTIJs4sE7cYaKQzM0=
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260513071149-ade33496efb8 h1:la4zRTE9zpZCmsixwzKT2LnHuo0e439EmGwOlB1An9Q=
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:TqlsFtcYS/etTeck46kHBeT8Le0Igw1Q/AV88UnMS3s=
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260513071149-ade33496efb8 h1:KodFGMqn+X2dqET0O3xww3iemAGmpoC8U4JW8gwt0x4=
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:B6Qd0vys8sv9OKVRN6J9RqDzYRGE938Fb2zrYdBDyTQ=
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260513071149-ade33496efb8 h1:QTk1RXNLOIcorZYcF0rBrwLpCIZCKEA2Jr69eFrt8xg=
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:3tXMMFY7AHugOVBZ5Al7cL7JKsnFOe5bMVr0hZPk3ow=
github.com/sagernet/cronet-go/lib/linux_loong64 v0.0.0-20260513071149-ade33496efb8 h1:SXqSlM/GjZFvNdUV3IvHq5gqHfW4iWlQHMGzEsgXGXE=
github.com/sagernet/cronet-go/lib/linux_loong64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:Wt5uFdU3tnmm8YzobYewwdF7Mt6SucRQg6xeTNWC3Tk=
github.com/sagernet/cronet-go/lib/linux_loong64_musl v0.0.0-20260513071149-ade33496efb8 h1:aAgLWpfESvy7rfDVH7ioOZQ7u2kmRsbUqJVrwJtkFWs=
github.com/sagernet/cronet-go/lib/linux_loong64_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:lyIF6wKBLwWa5ZXaAKbAoewewl+yCHo2iYev39Mbj4E=
github.com/sagernet/cronet-go/lib/linux_mips64le v0.0.0-20260513071149-ade33496efb8 h1:oTLUyhLckc8TZQ8SRCapgTYyRbz1pBpIvzjMCLMPFu8=
github.com/sagernet/cronet-go/lib/linux_mips64le v0.0.0-20260513071149-ade33496efb8/go.mod h1:H46PnSTTZNcZokLLiDeMDaHiS1l14PH3tzWi0eykjD8=
github.com/sagernet/cronet-go/lib/linux_mipsle v0.0.0-20260513071149-ade33496efb8 h1:LHm/85Y3zN0kNgG+li5qHvP3dzvavEytCYzdLtrfrrg=
github.com/sagernet/cronet-go/lib/linux_mipsle v0.0.0-20260513071149-ade33496efb8/go.mod h1:RBhSUDAKWq7fswtV4nQUQhuaTLcX3ettR7teA7/yf2w=
github.com/sagernet/cronet-go/lib/linux_mipsle_musl v0.0.0-20260513071149-ade33496efb8 h1:Pom5TSHV8Cln73uOgQlJ+JtmEu9xh+OuLHWq57dBaVg=
github.com/sagernet/cronet-go/lib/linux_mipsle_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:wRzoIOGG4xbpp3Gh3triLKwMwYriScXzFtunLYhY4w0=
github.com/sagernet/cronet-go/lib/linux_riscv64 v0.0.0-20260513071149-ade33496efb8 h1:1pPcb15BonaFl4153tRo7zOJ7U2zD1vjH+5JipSfJ3g=
github.com/sagernet/cronet-go/lib/linux_riscv64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:LNiZXmWil1OPwKCheqQjtakZlJuKGFz+iv2eGF76Hhs=
github.com/sagernet/cronet-go/lib/linux_riscv64_musl v0.0.0-20260513071149-ade33496efb8 h1:3Dy4exYQ/IVJGcnTtvW3LmjfjDaxFgJT1hn/ALBpd2M=
github.com/sagernet/cronet-go/lib/linux_riscv64_musl v0.0.0-20260513071149-ade33496efb8/go.mod h1:YFDGKTkpkJGc5+hnX/RYosZyTWg9h+68VB55fYRRLYc=
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260513071149-ade33496efb8 h1:mo9YMCYTGCRUiWNKtPVQb+qEetufxnch372xUOh9q3M=
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260513071149-ade33496efb8/go.mod h1:aaX0YGl8nhGmfRWI8bc3BtDjY8Vzx6O0cS/e1uqxDq4=
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260513071149-ade33496efb8 h1:mhh3JEDDx68oKT4kfqKlWp5QTyzVR84OS/qgqHYIbq0=
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:EdzMKA96xITc42QEI+ct4SwqX8Dn3ltKK8wzdkLWpSc=
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260513071149-ade33496efb8 h1:04KOo38hZojV3bJ5Vqwbpj48ZQy6o7aliYXLN/TNX6g=
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260513071149-ade33496efb8/go.mod h1:qix4kv1TTAJ5tY4lJ9vjhe9EY4mM+B7H5giOhbxDVcc=
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260513071149-ade33496efb8 h1:p535QakpDZEeBz/BfFZGZo0D+Pdn74TE8UTr6c6MSog=
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:lm9w/oCCRyBiUa3G8lDQTT8x/ONUvgVR2iV9fVzUZB8=
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260513071149-ade33496efb8 h1:dovTyKHh3toBIUOS70P4Yx+3Baw6Gppsfy1sJbXoAy0=
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260513071149-ade33496efb8/go.mod h1:n34YyLgapgjWdKa0IoeczjAFCwD3/dxbsH5sucKw0bw=
github.com/sagernet/cronet-go v0.0.0-20260620140045-05ab0dc17597 h1:QkwE/ZFnShDuPF+ExmAyZlQaMwFNgkYZMekrabiStfg=
github.com/sagernet/cronet-go v0.0.0-20260620140045-05ab0dc17597/go.mod h1:T/mwtrpC4JlWfScw73CmSBvHzIvc7BatQ1MhRr+cYNw=
github.com/sagernet/cronet-go/all v0.0.0-20260620140045-05ab0dc17597 h1:cLALmGKP9eOS8622gWQIiVbZlOfH29PGNsoxbEloIdk=
github.com/sagernet/cronet-go/all v0.0.0-20260620140045-05ab0dc17597/go.mod h1:zVHZ5tgDTwbNvUGffAgLmouYs4in0grEzhSdaggoZOw=
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260620135226-def9ff0fb992 h1:J9l8PP4vb79Wm5zKaMO6LNZ/AiP1FvyAWJBlkKHrRBU=
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:XXDwdjX/T8xftoeJxQmbBoYXZp8MAPFR2CwbFuTpEtw=
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260620135226-def9ff0fb992 h1:wXDjUNeKuihv85Kg51FomkiEH7xGsDgRcfRLiyZxacQ=
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:iNiUGoLtnr8/JTuVNj7XJbmpOAp2C6+B81KDrPxwaZM=
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260620135226-def9ff0fb992 h1:IF04nGyY3Q6Nbk9XJwTX1mckwhf12iIx4RhZ4TLOZIU=
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260620135226-def9ff0fb992/go.mod h1:19ILNUOGIzRdOqa2mq+iY0JoHxuieB7/lnjYeaA2vEc=
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260620135226-def9ff0fb992 h1:dlnG1E42xx8ms2fyZigYwsYJ1Gqoj2QT8WeGlpOAWK8=
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:JxzGyQf94Cr6sBShKqODGDyRUlESfJK/Njcz9Lz6qMQ=
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260620135226-def9ff0fb992 h1:aYAQQN3jZP89MmT1ZzpJz52jAsXx1WApmv5Qidc+ez4=
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:KN+9T9TBycGOLzmKU4QdcHAJEj6Nlx48ifnlTvvHMvs=
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260620135226-def9ff0fb992 h1:n81+aLphvjLpL2M6lI+BC8Ldw4S/FPA3CFDXTWL4g3I=
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:kojvtUc29KKnk8hs2QIANynVR59921SnGWA9kXohHc0=
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260620135226-def9ff0fb992 h1:mOseesF+CxgPG2U1a2Yh2fUUMdOaPxSuk4eIL6g7EU8=
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260620135226-def9ff0fb992/go.mod h1:hkQzRE5GDbaH1/ioqYh0Taho4L6i0yLRCVEZ5xHz5M0=
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260620135226-def9ff0fb992 h1:JK9kP72IxAoyVQTnh9gGkh8S9RjP4FBkj95WjrLPyKs=
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:tzVJFTOm66UxLxy6K0ZN5Ic2PC79e+sKKnt+V9puEa4=
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260620135226-def9ff0fb992 h1:3EtgLRsUpmeRaOBynTARxVC8tDegykigutmpAow2ayc=
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260620135226-def9ff0fb992/go.mod h1:M/pN6m3j0HFU6/y83n0HU6GLYys3tYdr/xTE8hVEGMo=
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260620135226-def9ff0fb992 h1:Vr3I2sC9E/1FurpZwJXAL29C7jJROyN3JfulQWjhKuA=
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:cGh5hO6eljCo6KMQ/Cel8Xgq4+etL0awZLRBDVG1EZQ=
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260620135226-def9ff0fb992 h1:flxwC8loz0C4LQ/tLK7LvNMKx4iqaXayPggzzCxCevI=
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:JFE0/cxaKkx0wqPMZU7MgaplQlU0zudv82dROJjClKU=
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260620135226-def9ff0fb992 h1:G4vwPmOVR/jXDngIUC9owbEtMKXLZl/BgUHhEWWl8ec=
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:vU8VftFeSt7fURCa3JXD6+k6ss1YAX+idQjPvHmJ2tI=
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260620135226-def9ff0fb992 h1:zHIxR2FlJOW5GRmgwyA2Gjgx7potOCtlOmdl8k4mwJI=
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:vCe4OUuL+XOUge9v3MyTD45BnuAXiH+DkjN9quDXJzQ=
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260620135226-def9ff0fb992 h1:U1OrR5zP+lkOPqrDpZsn8sPK1XBWZ84isXaFBZLsOfs=
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260620135226-def9ff0fb992/go.mod h1:w9amBWrvjtohQzBGCKJ7LCh22LhTIJs4sE7cYaKQzM0=
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260620135226-def9ff0fb992 h1:F59ptY4AdtKEg73OWaL+lTb5yoxp5b/gTuDbvA6xMyg=
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:TqlsFtcYS/etTeck46kHBeT8Le0Igw1Q/AV88UnMS3s=
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260620135226-def9ff0fb992 h1:Y5axK4sCWXH+2OCpKYPI8nX3OSBuRb/6yC+5xBi9/uo=
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:B6Qd0vys8sv9OKVRN6J9RqDzYRGE938Fb2zrYdBDyTQ=
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260620135226-def9ff0fb992 h1:QCBwCdv9y+RJj7p0b9Db2p9fFt1wtnawD0sn9oV3vRs=
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:3tXMMFY7AHugOVBZ5Al7cL7JKsnFOe5bMVr0hZPk3ow=
github.com/sagernet/cronet-go/lib/linux_loong64 v0.0.0-20260620135226-def9ff0fb992 h1:6gXFFaAMiGCPZdfUs64qzj9cl7EleVs9HsNfRi8jWWw=
github.com/sagernet/cronet-go/lib/linux_loong64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:Wt5uFdU3tnmm8YzobYewwdF7Mt6SucRQg6xeTNWC3Tk=
github.com/sagernet/cronet-go/lib/linux_loong64_musl v0.0.0-20260620135226-def9ff0fb992 h1:VGoIX2u4CWVg9kiyjQdIpFMaFUNCW3yz0pyrEKI5X0o=
github.com/sagernet/cronet-go/lib/linux_loong64_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:lyIF6wKBLwWa5ZXaAKbAoewewl+yCHo2iYev39Mbj4E=
github.com/sagernet/cronet-go/lib/linux_mips64le v0.0.0-20260620135226-def9ff0fb992 h1:SjPuqtUNCzIDaEm7iY86JZ7L+ixTmai4i2DIC++eUvw=
github.com/sagernet/cronet-go/lib/linux_mips64le v0.0.0-20260620135226-def9ff0fb992/go.mod h1:H46PnSTTZNcZokLLiDeMDaHiS1l14PH3tzWi0eykjD8=
github.com/sagernet/cronet-go/lib/linux_mipsle v0.0.0-20260620135226-def9ff0fb992 h1:ao2FrDzTYhu2MYsMri9nzqIdnAL7ooUWQN6/FFr+Lbk=
github.com/sagernet/cronet-go/lib/linux_mipsle v0.0.0-20260620135226-def9ff0fb992/go.mod h1:RBhSUDAKWq7fswtV4nQUQhuaTLcX3ettR7teA7/yf2w=
github.com/sagernet/cronet-go/lib/linux_mipsle_musl v0.0.0-20260620135226-def9ff0fb992 h1:5gPMu6EUlX6gqCRTOJrJk1FMILO6ugtnopQF1c2R/lY=
github.com/sagernet/cronet-go/lib/linux_mipsle_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:wRzoIOGG4xbpp3Gh3triLKwMwYriScXzFtunLYhY4w0=
github.com/sagernet/cronet-go/lib/linux_riscv64 v0.0.0-20260620135226-def9ff0fb992 h1:UaLOQKbjnLrO943Sm+ff/jm+NmemRuJXiImmtqShd8s=
github.com/sagernet/cronet-go/lib/linux_riscv64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:LNiZXmWil1OPwKCheqQjtakZlJuKGFz+iv2eGF76Hhs=
github.com/sagernet/cronet-go/lib/linux_riscv64_musl v0.0.0-20260620135226-def9ff0fb992 h1:wxlsDfxDowVk99Ay2hzfuIXPpXH1lGQxSL/2sX/D7jw=
github.com/sagernet/cronet-go/lib/linux_riscv64_musl v0.0.0-20260620135226-def9ff0fb992/go.mod h1:YFDGKTkpkJGc5+hnX/RYosZyTWg9h+68VB55fYRRLYc=
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260620135226-def9ff0fb992 h1:pgRpWh2JPE73mtedovPPu3gmmAqHz3Rfz79QVxciu2o=
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260620135226-def9ff0fb992/go.mod h1:aaX0YGl8nhGmfRWI8bc3BtDjY8Vzx6O0cS/e1uqxDq4=
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260620135226-def9ff0fb992 h1:9jtXyxukTS2ZdhMy3u1hg4StkZpgP48BOfgYhXf835w=
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:EdzMKA96xITc42QEI+ct4SwqX8Dn3ltKK8wzdkLWpSc=
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260620135226-def9ff0fb992 h1:gKgD1LJZbZzacaaqBQX/YKy4dyomhn8xtfmDKayVLW4=
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260620135226-def9ff0fb992/go.mod h1:qix4kv1TTAJ5tY4lJ9vjhe9EY4mM+B7H5giOhbxDVcc=
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260620135226-def9ff0fb992 h1:Lv8gtKP4QRn6Yjv3h5L215aGQBgwCyAE5YqejmN9Bqc=
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:lm9w/oCCRyBiUa3G8lDQTT8x/ONUvgVR2iV9fVzUZB8=
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260620135226-def9ff0fb992 h1:2wsRAcqJHOTlj6zGc3oQyxAZHDnGwyB/pTdAOUtLgHY=
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260620135226-def9ff0fb992/go.mod h1:n34YyLgapgjWdKa0IoeczjAFCwD3/dxbsH5sucKw0bw=
github.com/sagernet/fswatch v0.1.2 h1:/TT7k4mkce1qFPxamLO842WjqBgbTBiXP2mlUjp9PFk=
github.com/sagernet/fswatch v0.1.2/go.mod h1:5BpGmpUQVd3Mc5r313HRpvADHRg3/rKn5QbwFteB880=
github.com/sagernet/gomobile v0.1.12 h1:XwzjZaclFF96deLqwAgK8gU3w0M2A8qxgDmhV+A0wjg=
@@ -367,22 +369,22 @@ github.com/sagernet/sing-shadowsocks2 v0.2.1 h1:dWV9OXCeFPuYGHb6IRqlSptVnSzOelnq
github.com/sagernet/sing-shadowsocks2 v0.2.1/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ=
github.com/sagernet/sing-shadowtls v0.2.1-0.20250503051639-fcd445d33c11 h1:tK+75l64tm9WvEFrYRE1t0YxoFdWQqw/h7Uhzj0vJ+w=
github.com/sagernet/sing-shadowtls v0.2.1-0.20250503051639-fcd445d33c11/go.mod h1:sWqKnGlMipCHaGsw1sTTlimyUpgzP4WP3pjhCsYt9oA=
github.com/sagernet/sing-tun v0.8.9 h1:ixFKKUGdVcJl4wb0xbL36hobiw9l6DIH497EQf5ILpM=
github.com/sagernet/sing-tun v0.8.9/go.mod h1:QvarqUtHfj1ULaRR+6kZOS/OoCE+pYGq67A5tyIy+dQ=
github.com/sagernet/sing-tun v0.8.11 h1:BFu4+8LNl2JiTQtto5f+5AbkH90qgdoZEAqUbGiEXCg=
github.com/sagernet/sing-tun v0.8.11/go.mod h1:QvarqUtHfj1ULaRR+6kZOS/OoCE+pYGq67A5tyIy+dQ=
github.com/sagernet/smux v1.5.50-sing-box-mod.1 h1:XkJcivBC9V4wBjiGXIXZ229aZCU1hzcbp6kSkkyQ478=
github.com/sagernet/smux v1.5.50-sing-box-mod.1/go.mod h1:NjhsCEWedJm7eFLyhuBgIEzwfhRmytrUoiLluxs5Sk8=
github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854 h1:6uUiZcDRnZSAegryaUGwPC/Fj13JSHwiTftrXhMmYOc=
github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854/go.mod h1:LtfoSK3+NG57tvnVEHgcuBW9ujgE8enPSgzgwStwCAA=
github.com/shtorm-7/connect-ip-go v1.0.0-extended-1.0.0 h1:ws7BIsYLd31Wjifq88BYCHRVlgO+07iwil39s6ERba8=
github.com/shtorm-7/connect-ip-go v1.0.0-extended-1.0.0/go.mod h1:mRwx4w32qQxsWB2kThuHpbo7iNjJiq1jYWubgqEPjHA=
github.com/shtorm-7/connect-ip-go v1.0.0-extended-1.1.0 h1:3ZV98mKqKNPCPWHevJ6RPsb65DwPrRFEUOHUfDnG6vw=
github.com/shtorm-7/connect-ip-go v1.0.0-extended-1.1.0/go.mod h1:mRwx4w32qQxsWB2kThuHpbo7iNjJiq1jYWubgqEPjHA=
github.com/shtorm-7/dnscrypt/v2 v2.4.0-extended-1.0.0 h1:e5s7RKBd2rIPR0StbvZ2vTVtJ5jDTsTk5wtIIapZTRg=
github.com/shtorm-7/dnscrypt/v2 v2.4.0-extended-1.0.0/go.mod h1:WpEFV2uhebXb8Jhes/5/fSdpmhGV8TL22RDaeWwV6hI=
github.com/shtorm-7/go-cache/v2 v2.1.0-extended-1.1.0 h1:PLZ/YHqnApPx13wt6MX3ItqESp4ueBr1tGSi0bEGqYw=
github.com/shtorm-7/go-cache/v2 v2.1.0-extended-1.1.0/go.mod h1:Ek4yz5OK6stwhLKgLsRRYDI+FA+ZWvRJiWLjsi/vMM4=
github.com/shtorm-7/mtg-multi v1.8.0-extended-1.0.1 h1:UeJkrCJJmIjTBywErVMx7fCSoBf4gh6QgT9bp9o1ajM=
github.com/shtorm-7/mtg-multi v1.8.0-extended-1.0.1/go.mod h1:3rvdhwdPABkwKBdvgMt3VwMn9uSq8hpoHRezZ5jRJU0=
github.com/shtorm-7/sing v0.8.10-extended-1.0.0 h1:mAkyycCQOzCttPOR5fcHkJaZvXMQXeu3mbEfr8D+7A8=
github.com/shtorm-7/sing v0.8.10-extended-1.0.0/go.mod h1:olXxWQNqRW/l2Q6JI3b2Qmz8iQnIFlOeeH8bx6JhgUA=
github.com/shtorm-7/go-cache/v2 v2.1.0-extended-1.2.0 h1:aOd9Vy2LGSwgMM+4805AgLBE/MQf8UymbXHxUZjSmoU=
github.com/shtorm-7/go-cache/v2 v2.1.0-extended-1.2.0/go.mod h1:Ek4yz5OK6stwhLKgLsRRYDI+FA+ZWvRJiWLjsi/vMM4=
github.com/shtorm-7/mtg-multi v1.11.0-extended-1.0.0 h1:iBLll4ZZG8ULQcHWs6gGslZWtBN72Zo1zjySzMVHF7g=
github.com/shtorm-7/mtg-multi v1.11.0-extended-1.0.0/go.mod h1:3rvdhwdPABkwKBdvgMt3VwMn9uSq8hpoHRezZ5jRJU0=
github.com/shtorm-7/sing v0.8.10-extended-1.2.0 h1:5yw9j0+P2QkRWvxBvb71wvNdpAlHmmpBv4hj2gqvass=
github.com/shtorm-7/sing v0.8.10-extended-1.2.0/go.mod h1:olXxWQNqRW/l2Q6JI3b2Qmz8iQnIFlOeeH8bx6JhgUA=
github.com/shtorm-7/sing-mux v0.3.4-extended-1.0.0 h1:a5OoXr3e2ACbM6vDIaaGL44IdHQ6wPjcSoU13vfC0Sw=
github.com/shtorm-7/sing-mux v0.3.4-extended-1.0.0/go.mod h1:QvlKMyNBNrQoyX4x+gq028uPbLM2XeRpWtDsWBJbFSk=
github.com/shtorm-7/sing-vmess v0.2.7-extended-1.0.0 h1:WVheKmQH5hSQbJU1ZTKthKSutkTLWSb2hp4JuQhJBow=
@@ -459,71 +461,72 @@ github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo=
github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q=
go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c=
go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE=
go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ=
go.opentelemetry.io/otel/metric v1.41.0/go.mod h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps=
go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0=
go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI=
go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU=
go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc=
go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc=
go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo=
go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58=
go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0=
go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI=
go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA=
go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk=
go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo=
go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q=
go.uber.org/zap/exp v0.3.0 h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U=
go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ=
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
go4.org/mem v0.0.0-20240501181205-ae6ca9944745 h1:Tl++JLUCe4sxGu8cTpDzRLd3tN7US4hOxG5YpKCzkek=
go4.org/mem v0.0.0-20240501181205-ae6ca9944745/go.mod h1:reUoABIJ9ikfM5sgtSF3Wushcza7+WeD01VB9Lirh3g=
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.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4=
golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA=
golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 h1:jiDhWWeC7jfWqR9c/uplMOqJ0sbNlNWv0UkzE0vX1MA=
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90/go.mod h1:xE1HEv6b+1SCZ5/uscMRjUBKtIxworgEcEi+/n9NQDQ=
golang.org/x/image v0.27.0 h1:C8gA4oWU/tKkdCfYT6T2u4faJu3MeNS5O8UPWlPF61w=
golang.org/x/image v0.27.0/go.mod h1:xbdrClrAUway1MUTEZDq9mz/UpRwYAkFFNUslZtcB+g=
golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
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.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0=
golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw=
golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
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=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
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.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
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.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8=
golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA=
golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY=
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
+3
View File
@@ -81,6 +81,7 @@ func InboundRegistry() *inbound.Registry {
vless.RegisterInbound(registry)
anytls.RegisterInbound(registry)
mieru.RegisterInbound(registry)
ssh.RegisterInbound(registry)
bond.RegisterInbound(registry)
failover.RegisterInbound(registry)
@@ -90,6 +91,7 @@ func InboundRegistry() *inbound.Registry {
registerStubForRemovedInbounds(registry)
registerMTProxyInbound(registry)
registerSudokuInbound(registry)
registerSnellInbound(registry)
return registry
}
@@ -134,6 +136,7 @@ func OutboundRegistry() *outbound.Registry {
registerQUICOutbounds(registry)
registerStubForRemovedOutbounds(registry)
registerSudokuOutbound(registry)
registerSnellOutbound(registry)
return registry
}
+17
View File
@@ -0,0 +1,17 @@
//go:build with_snell
package include
import (
"github.com/sagernet/sing-box/adapter/inbound"
"github.com/sagernet/sing-box/adapter/outbound"
"github.com/sagernet/sing-box/protocol/snell"
)
func registerSnellInbound(registry *inbound.Registry) {
snell.RegisterInbound(registry)
}
func registerSnellOutbound(registry *outbound.Registry) {
snell.RegisterOutbound(registry)
}
+27
View File
@@ -0,0 +1,27 @@
//go:build !with_snell
package include
import (
"context"
"github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/adapter/inbound"
"github.com/sagernet/sing-box/adapter/outbound"
C "github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/log"
"github.com/sagernet/sing-box/option"
E "github.com/sagernet/sing/common/exceptions"
)
func registerSnellInbound(registry *inbound.Registry) {
inbound.Register[option.SnellInboundOptions](registry, C.TypeSnell, func(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.SnellInboundOptions) (adapter.Inbound, error) {
return nil, E.New(`Snell is not included in this build, rebuild with -tags with_snell`)
})
}
func registerSnellOutbound(registry *outbound.Registry) {
outbound.Register[option.SnellOutboundOptions](registry, C.TypeSnell, func(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.SnellOutboundOptions) (adapter.Outbound, error) {
return nil, E.New(`Snell is not included in this build, rebuild with -tags with_snell`)
})
}
+8
View File
@@ -39,6 +39,10 @@ func Info(args ...any) {
std.Info(args...)
}
func Notice(args ...any) {
std.Notice(args...)
}
func Warn(args ...any) {
std.Warn(args...)
}
@@ -67,6 +71,10 @@ func InfoContext(ctx context.Context, args ...any) {
std.InfoContext(ctx, args...)
}
func NoticeContext(ctx context.Context, args ...any) {
std.NoticeContext(ctx, args...)
}
func WarnContext(ctx context.Context, args ...any) {
std.WarnContext(ctx, args...)
}
+4
View File
@@ -28,6 +28,8 @@ func (f Formatter) Format(ctx context.Context, level Level, tag string, message
levelString = aurora.White(levelString).String()
case LevelInfo:
levelString = aurora.Cyan(levelString).String()
case LevelNotice:
levelString = aurora.Green(levelString).String()
case LevelWarn:
levelString = aurora.Yellow(levelString).String()
case LevelError, LevelFatal, LevelPanic:
@@ -97,6 +99,8 @@ func (f Formatter) FormatWithSimple(ctx context.Context, level Level, tag string
levelString = aurora.White(levelString).String()
case LevelInfo:
levelString = aurora.Cyan(levelString).String()
case LevelNotice:
levelString = aurora.Green(levelString).String()
case LevelWarn:
levelString = aurora.Yellow(levelString).String()
case LevelError, LevelFatal, LevelPanic:
+5
View File
@@ -11,6 +11,7 @@ const (
LevelFatal
LevelError
LevelWarn
LevelNotice
LevelInfo
LevelDebug
LevelTrace
@@ -24,6 +25,8 @@ func FormatLevel(level Level) string {
return "debug"
case LevelInfo:
return "info"
case LevelNotice:
return "notice"
case LevelWarn:
return "warn"
case LevelError:
@@ -45,6 +48,8 @@ func ParseLevel(level string) (Level, error) {
return LevelDebug, nil
case "info":
return LevelInfo, nil
case "notice":
return LevelNotice, nil
case "warn", "warning":
return LevelWarn, nil
case "error":
+6
View File
@@ -47,6 +47,9 @@ func (f *nopFactory) Debug(args ...any) {
func (f *nopFactory) Info(args ...any) {
}
func (f *nopFactory) Notice(args ...any) {
}
func (f *nopFactory) Warn(args ...any) {
}
@@ -68,6 +71,9 @@ func (f *nopFactory) DebugContext(ctx context.Context, args ...any) {
func (f *nopFactory) InfoContext(ctx context.Context, args ...any) {
}
func (f *nopFactory) NoticeContext(ctx context.Context, args ...any) {
}
func (f *nopFactory) WarnContext(ctx context.Context, args ...any) {
}
+22 -14
View File
@@ -111,23 +111,13 @@ type observableLogger struct {
func (l *observableLogger) Log(ctx context.Context, level Level, args []any) {
level = OverrideLevelFromContext(level, ctx)
if level > l.level && l.platformWriter == nil {
if level > l.level && l.platformWriter == nil && !l.needObservable {
return
}
nowTime := time.Now()
if level <= l.level {
if l.needObservable {
message, messageSimple := l.formatter.FormatWithSimple(ctx, level, l.tag, F.ToString(args...), nowTime)
if level == LevelPanic {
panic(message)
}
l.writer.Write([]byte(message))
if level == LevelFatal {
os.Exit(1)
}
l.subscriber.Emit(Entry{level, messageSimple})
} else {
message := l.formatter.Format(ctx, level, l.tag, F.ToString(args...), nowTime)
if l.needObservable {
message, messageSimple := l.formatter.FormatWithSimple(ctx, level, l.tag, F.ToString(args...), nowTime)
if level <= l.level {
if level == LevelPanic {
panic(message)
}
@@ -136,6 +126,16 @@ func (l *observableLogger) Log(ctx context.Context, level Level, args []any) {
os.Exit(1)
}
}
l.subscriber.Emit(Entry{level, messageSimple})
} else if level <= l.level {
message := l.formatter.Format(ctx, level, l.tag, F.ToString(args...), nowTime)
if level == LevelPanic {
panic(message)
}
l.writer.Write([]byte(message))
if level == LevelFatal {
os.Exit(1)
}
}
if l.platformWriter != nil {
l.platformWriter.WriteMessage(level, l.platformFormatter.Format(ctx, level, l.tag, F.ToString(args...), nowTime))
@@ -154,6 +154,10 @@ func (l *observableLogger) Info(args ...any) {
l.InfoContext(context.Background(), args...)
}
func (l *observableLogger) Notice(args ...any) {
l.NoticeContext(context.Background(), args...)
}
func (l *observableLogger) Warn(args ...any) {
l.WarnContext(context.Background(), args...)
}
@@ -182,6 +186,10 @@ func (l *observableLogger) InfoContext(ctx context.Context, args ...any) {
l.Log(ctx, LevelInfo, args)
}
func (l *observableLogger) NoticeContext(ctx context.Context, args ...any) {
l.Log(ctx, LevelNotice, args)
}
func (l *observableLogger) WarnContext(ctx context.Context, args ...any) {
l.Log(ctx, LevelWarn, args)
}
+7 -6
View File
@@ -18,13 +18,14 @@ type URLTestOutboundOptions struct {
}
type FallbackOutboundOptions struct {
Outbounds []string `json:"outbounds"`
Outbounds []string `json:"outbounds"`
BlacklistTimeout badoption.Duration `json:"blacklist_timeout,omitempty"`
}
type GroupCommonOption struct {
Outbounds []string `json:"outbounds"`
Providers []string `json:"providers"`
Exclude *badoption.Regexp `json:"exclude,omitempty"`
Include *badoption.Regexp `json:"include,omitempty"`
UseAllProviders bool `json:"use_all_providers,omitempty"`
Outbounds []string `json:"outbounds"`
Providers badoption.Listable[string] `json:"providers,omitempty"`
Exclude *badoption.Regexp `json:"exclude,omitempty"`
Include *badoption.Regexp `json:"include,omitempty"`
UseAllProviders bool `json:"use_all_providers,omitempty"`
}
+5
View File
@@ -69,3 +69,8 @@ type RateLimiterUser struct {
Count uint32 `json:"count"`
Interval badoption.Duration `json:"interval"`
}
type FairQueueOutboundOptions struct {
FlowKeys []string `json:"flow_keys,omitempty"`
Outbound string `json:"outbound"`
}
+1 -1
View File
@@ -6,6 +6,6 @@ type ManagerServiceDatabase struct {
}
type ManagerServiceOptions struct {
Inbounds []string `json:"inbounds"`
Inbounds []string `json:"inbounds"`
Database ManagerServiceDatabase `json:"database"`
}
+15 -7
View File
@@ -1,22 +1,30 @@
package option
import (
"net/netip"
"github.com/sagernet/sing/common/json/badoption"
)
type MASQUEOutboundOptions struct {
DialerOptions
UseHTTP2 bool `json:"use_http2,omitempty"`
UseIPv6 bool `json:"use_ipv6,omitempty"`
Profile CloudflareProfile `json:"profile,omitempty"`
UDPTimeout badoption.Duration `json:"udp_timeout,omitempty"`
UDPKeepalivePeriod badoption.Duration `json:"udp_keepalive_period,omitempty"`
UDPInitialPacketSize uint16 `json:"udp_initial_packet_size,omitempty"`
ReconnectDelay badoption.Duration `json:"reconnect_delay,omitempty"`
System bool `json:"system,omitempty"`
Name string `json:"name,omitempty"`
AllowedIPs badoption.Listable[netip.Prefix] `json:"allowed_ips,omitempty"`
UseHTTP2 bool `json:"use_http2,omitempty"`
UseIPv6 bool `json:"use_ipv6,omitempty"`
Profile CloudflareProfile `json:"profile,omitempty"`
UDPTimeout badoption.Duration `json:"udp_timeout,omitempty"`
UDPKeepalivePeriod badoption.Duration `json:"udp_keepalive_period,omitempty"`
UDPInitialPacketSize uint16 `json:"udp_initial_packet_size,omitempty"`
ReconnectDelay badoption.Duration `json:"reconnect_delay,omitempty"`
CongestionController string `json:"congestion_controller,omitempty"`
CWND int `json:"cwnd,omitempty"`
MASQUEOutboundTLSOptionsContainer
}
type MASQUEOutboundTLSOptions struct {
ServerName string `json:"server_name,omitempty"`
Insecure bool `json:"insecure,omitempty"`
CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"`
CurvePreferences badoption.Listable[CurvePreference] `json:"curve_preferences,omitempty"`
+5 -4
View File
@@ -15,10 +15,11 @@ type MieruOutboundOptions struct {
type MieruInboundOptions struct {
ListenOptions
Users []MieruUser `json:"users,omitempty"`
Transport string `json:"transport,omitempty"`
TrafficPattern string `json:"traffic_pattern,omitempty"`
UserHintIsMandatory bool `json:"user_hint_is_mandatory,omitempty"`
ListenPorts badoption.Listable[string] `json:"listen_ports,omitempty"`
Users []MieruUser `json:"users,omitempty"`
Transport string `json:"transport,omitempty"`
TrafficPattern string `json:"traffic_pattern,omitempty"`
UserHintIsMandatory bool `json:"user_hint_is_mandatory,omitempty"`
}
type MieruUser struct {
+1 -1
View File
@@ -11,7 +11,7 @@ type MTProxyInboundOptions struct {
Users []MTProxyUser `json:"users,omitempty"`
Concurrency uint `json:"concurrency,omitempty"`
DomainFrontingPort uint `json:"domain_fronting_port,omitempty"`
DomainFrontingIP string `json:"domain_fronting_ip,omitempty"`
DomainFrontingHost string `json:"domain_fronting_host,omitempty"`
DomainFrontingProxyProtocol bool `json:"domain_fronting_proxy_protocol,omitempty"`
PreferIP string `json:"prefer_ip,omitempty"`
AutoUpdate bool `json:"auto_update,omitempty"`
+7 -7
View File
@@ -1,11 +1,11 @@
package option
type NodeServiceOptions struct {
UUID string `json:"uuid"`
Inbounds []string `json:"inbounds"`
ConnectionLimiters []string `json:"connection_limiters"`
BandwidthLimiters []string `json:"bandwidth_limiters"`
TrafficLimiters []string `json:"traffic_limiters"`
RateLimiters []string `json:"rate_limiters"`
Manager string `json:"manager"`
UUID string `json:"uuid"`
Inbounds []string `json:"inbounds"`
ConnectionLimiters []string `json:"connection_limiters"`
BandwidthLimiters []string `json:"bandwidth_limiters"`
TrafficLimiters []string `json:"traffic_limiters"`
RateLimiters []string `json:"rate_limiters"`
Manager string `json:"manager"`
}
+34 -26
View File
@@ -1,38 +1,46 @@
package option
import "github.com/sagernet/sing/common/json/badoption"
import (
"net/netip"
"github.com/sagernet/sing/common/json/badoption"
)
type OpenVPNOutboundOptions struct {
DialerOptions
Servers []ServerOptions `json:"servers"`
Proto string `json:"proto,omitempty"`
Cipher string `json:"cipher,omitempty"`
Auth string `json:"auth,omitempty"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
TLSCrypt string `json:"tls_crypt,omitempty"`
TLSCryptPath string `json:"tls_crypt_path,omitempty"`
TLSCryptV2 bool `json:"tls_crypt_v2,omitempty"`
TLSAuth string `json:"tls_auth,omitempty"`
TLSAuthPath string `json:"tls_auth_path,omitempty"`
KeyDirection int `json:"key_direction,omitempty"`
ReconnectDelay badoption.Duration `json:"reconnect_delay,omitempty"`
PingInterval badoption.Duration `json:"ping_interval,omitempty"`
System bool `json:"system,omitempty"`
Name string `json:"name,omitempty"`
AllowedIPs badoption.Listable[netip.Prefix] `json:"allowed_ips,omitempty"`
Servers []ServerOptions `json:"servers"`
Proto string `json:"proto,omitempty"`
Cipher string `json:"cipher,omitempty"`
Auth string `json:"auth,omitempty"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
TLSCrypt string `json:"tls_crypt,omitempty"`
TLSCryptPath string `json:"tls_crypt_path,omitempty"`
TLSCryptV2 bool `json:"tls_crypt_v2,omitempty"`
TLSAuth string `json:"tls_auth,omitempty"`
TLSAuthPath string `json:"tls_auth_path,omitempty"`
KeyDirection int `json:"key_direction,omitempty"`
ReconnectDelay badoption.Duration `json:"reconnect_delay,omitempty"`
PingInterval badoption.Duration `json:"ping_interval,omitempty"`
PingRestart badoption.Duration `json:"ping_restart,omitempty"`
OpenVPNOutboundTLSOptionsContainer
}
type OpenVPNTLSOptions struct {
Certificate string `json:"certificate,omitempty"`
CertificatePath string `json:"certificate_path,omitempty"`
Key string `json:"key,omitempty"`
KeyPath string `json:"key_path,omitempty"`
CA string `json:"ca,omitempty"`
CAPath string `json:"ca_path,omitempty"`
CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"`
VerifyX509Name string `json:"verify_x509_name,omitempty"`
VerifyX509NameMode string `json:"verify_x509_name_mode,omitempty"`
KernelTx bool `json:"kernel_tx,omitempty"`
KernelRx bool `json:"kernel_rx,omitempty"`
Certificate string `json:"certificate,omitempty"`
CertificatePath string `json:"certificate_path,omitempty"`
Key string `json:"key,omitempty"`
KeyPath string `json:"key_path,omitempty"`
CA string `json:"ca,omitempty"`
CAPath string `json:"ca_path,omitempty"`
CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"`
VerifyX509Name string `json:"verify_x509_name,omitempty"`
VerifyX509NameMode string `json:"verify_x509_name_mode,omitempty"`
KernelTx bool `json:"kernel_tx,omitempty"`
KernelRx bool `json:"kernel_rx,omitempty"`
}
type OpenVPNOutboundTLSOptionsContainer struct {
+1 -5
View File
@@ -1,9 +1,5 @@
package option
import "github.com/sagernet/sing/common/json/badoption"
type ProfilerServiceOptions struct {
Listen string `json:"listen,omitempty"`
ReadTimeout badoption.Duration `json:"read_timeout,omitempty"`
WriteTimeout badoption.Duration `json:"write_timeout,omitempty"`
ListenOptions
}
+1
View File
@@ -55,6 +55,7 @@ type ProviderLocalOptions struct {
type ProviderRemoteOptions struct {
URL string `json:"url"`
UserAgent string `json:"user_agent,omitempty"`
Headers badoption.HTTPHeader `json:"headers,omitempty"`
DownloadDetour string `json:"download_detour,omitempty"`
UpdateInterval badoption.Duration `json:"update_interval,omitempty"`
+24
View File
@@ -0,0 +1,24 @@
package option
type SnellOutboundOptions struct {
DialerOptions
ServerOptions
PSK string `json:"psk"`
Version int `json:"version,omitempty"`
Reuse bool `json:"reuse,omitempty"`
Network NetworkList `json:"network,omitempty"`
Obfs *SnellObfsOptions `json:"obfs,omitempty"`
}
type SnellInboundOptions struct {
ListenOptions
PSK string `json:"psk"`
Version int `json:"version,omitempty"`
Network NetworkList `json:"network,omitempty"`
Obfs *SnellObfsOptions `json:"obfs,omitempty"`
}
type SnellObfsOptions struct {
Mode string `json:"mode,omitempty"`
Host string `json:"host,omitempty"`
}
+33
View File
@@ -2,6 +2,39 @@ package option
import "github.com/sagernet/sing/common/json/badoption"
type SSHInboundOptions struct {
ListenOptions
Users []SSHUser `json:"users,omitempty"`
HostKey badoption.Listable[string] `json:"host_key,omitempty"`
HostKeyPath badoption.Listable[string] `json:"host_key_path,omitempty"`
ServerVersion string `json:"server_version,omitempty"`
MaxAuthTries int `json:"max_auth_tries,omitempty"`
Fallback *SSHFallbackServerOptions `json:"fallback,omitempty"`
}
type SSHFallbackServerOptions struct {
DialerOptions
ServerOptions
CA *SSHCAOptions `json:"ca,omitempty"`
IssueCA *SSHCAOptions `json:"issue_ca,omitempty"`
HostKey badoption.Listable[string] `json:"host_key,omitempty"`
HostKeyPath badoption.Listable[string] `json:"host_key_path,omitempty"`
HostKeyAlgorithms badoption.Listable[string] `json:"host_key_algorithms,omitempty"`
ClientVersion string `json:"client_version,omitempty"`
}
type SSHCAOptions struct {
PrivateKey badoption.Listable[string] `json:"private_key,omitempty"`
PrivateKeyPath string `json:"private_key_path,omitempty"`
PrivateKeyPassphrase string `json:"private_key_passphrase,omitempty"`
}
type SSHUser struct {
Name string `json:"name,omitempty"`
Password string `json:"password,omitempty"`
AuthorizedKeys badoption.Listable[string] `json:"authorized_keys,omitempty"`
}
type SSHOutboundOptions struct {
DialerOptions
ServerOptions
-2
View File
@@ -6,7 +6,6 @@ type TrustTunnelInboundOptions struct {
Users []TrustTunnelUser `json:"users,omitempty"`
Network NetworkList `json:"network,omitempty"`
CongestionController string `json:"congestion_controller,omitempty"`
BBRProfile string `json:"bbr_profile,omitempty"`
CWND int `json:"cwnd,omitempty"`
}
@@ -32,7 +31,6 @@ type TrustTunnelOutboundOptions struct {
HealthCheck bool `json:"health_check,omitempty"`
QUIC bool `json:"quic,omitempty"`
CongestionController string `json:"congestion_controller,omitempty"`
BBRProfile string `json:"bbr_profile,omitempty"`
CWND int `json:"cwnd,omitempty"`
Multiplex *TrustTunnelMultiplexOptions `json:"multiplex,omitempty"`
}
+36 -29
View File
@@ -4,7 +4,6 @@ import (
"net/http"
"strings"
Xbadoption "github.com/sagernet/sing-box/common/xray/json/badoption"
"github.com/sagernet/sing-box/common/xray/utils"
C "github.com/sagernet/sing-box/constant"
E "github.com/sagernet/sing/common/exceptions"
@@ -119,13 +118,13 @@ type V2RayXHTTPBaseOptions struct {
Path string `json:"path,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
DomainStrategy DomainStrategy `json:"domain_strategy,omitempty"`
XPaddingBytes Xbadoption.Range `json:"x_padding_bytes"`
XPaddingBytes badoption.Range[int] `json:"x_padding_bytes"`
NoGRPCHeader bool `json:"no_grpc_header,omitempty"`
NoSSEHeader bool `json:"no_sse_header,omitempty"`
ScMaxEachPostBytes *Xbadoption.Range `json:"sc_max_each_post_bytes"`
ScMinPostsIntervalMs *Xbadoption.Range `json:"sc_min_posts_interval_ms"`
ScMaxEachPostBytes *badoption.Range[int] `json:"sc_max_each_post_bytes"`
ScMinPostsIntervalMs *badoption.Range[int] `json:"sc_min_posts_interval_ms"`
ScMaxBufferedPosts int64 `json:"sc_max_buffered_posts,omitempty"`
ScStreamUpServerSecs *Xbadoption.Range `json:"sc_stream_up_server_secs"`
ScStreamUpServerSecs *badoption.Range[int] `json:"sc_stream_up_server_secs"`
ServerMaxHeaderBytes int `json:"server_max_header_bytes"`
TrustedXForwardedFor badoption.Listable[string] `json:"trusted_x_forwarded_for,omitempty"`
Xmux *V2RayXHTTPXmuxOptions `json:"xmux"`
@@ -141,7 +140,11 @@ type V2RayXHTTPBaseOptions struct {
SeqKey string `json:"seq_key,omitempty"`
UplinkDataPlacement string `json:"uplink_data_placement,omitempty"`
UplinkDataKey string `json:"uplink_data_key,omitempty"`
UplinkChunkSize *Xbadoption.Range `json:"uplink_chunk_size,omitempty"`
UplinkChunkSize *badoption.Range[int] `json:"uplink_chunk_size,omitempty"`
SessionIDTable string `json:"session_id_table,omitempty"`
SessionIDLength badoption.Range[int] `json:"session_id_length,omitempty"`
CongestionController string `json:"congestion_controller,omitempty"`
CWND int `json:"cwnd,omitempty"`
}
type _V2RayXHTTPOptions struct {
@@ -302,6 +305,10 @@ func checkV2RayXHTTPBaseOptions(mode string, options *V2RayXHTTPBaseOptions) err
return E.New("invalid negative value of maxHeaderBytes")
}
if mode != "stream-one" && mode != "stream-up" && options.GetNormalizedScMaxEachPostBytes().From <= 0 {
return E.New("`scMaxEachPostBytes` should be bigger than 0")
}
if options.Xmux == nil {
options.Xmux = &V2RayXHTTPXmuxOptions{}
options.Xmux.MaxConcurrency.From = 1
@@ -346,9 +353,9 @@ func (c *V2RayXHTTPBaseOptions) GetRequestHeader() http.Header {
return header
}
func (c *V2RayXHTTPBaseOptions) GetNormalizedXPaddingBytes() Xbadoption.Range {
func (c *V2RayXHTTPBaseOptions) GetNormalizedXPaddingBytes() badoption.Range[int] {
if c.XPaddingBytes.To == 0 {
return Xbadoption.Range{
return badoption.Range[int]{
From: 100,
To: 1000,
}
@@ -363,9 +370,9 @@ func (c *V2RayXHTTPBaseOptions) GetNormalizedUplinkHTTPMethod() string {
return c.UplinkHTTPMethod
}
func (c *V2RayXHTTPBaseOptions) GetNormalizedScMaxEachPostBytes() Xbadoption.Range {
func (c *V2RayXHTTPBaseOptions) GetNormalizedScMaxEachPostBytes() badoption.Range[int] {
if c.ScMaxEachPostBytes == nil {
return Xbadoption.Range{
return badoption.Range[int]{
From: 1000000,
To: 1000000,
}
@@ -373,9 +380,9 @@ func (c *V2RayXHTTPBaseOptions) GetNormalizedScMaxEachPostBytes() Xbadoption.Ran
return *c.ScMaxEachPostBytes
}
func (c *V2RayXHTTPBaseOptions) GetNormalizedScMinPostsIntervalMs() Xbadoption.Range {
func (c *V2RayXHTTPBaseOptions) GetNormalizedScMinPostsIntervalMs() badoption.Range[int] {
if c.ScMinPostsIntervalMs == nil {
return Xbadoption.Range{
return badoption.Range[int]{
From: 30,
To: 30,
}
@@ -391,9 +398,9 @@ func (c *V2RayXHTTPBaseOptions) GetNormalizedScMaxBufferedPosts() int {
return int(c.ScMaxBufferedPosts)
}
func (c *V2RayXHTTPBaseOptions) GetNormalizedScStreamUpServerSecs() Xbadoption.Range {
func (c *V2RayXHTTPBaseOptions) GetNormalizedScStreamUpServerSecs() badoption.Range[int] {
if c.ScStreamUpServerSecs == nil {
return Xbadoption.Range{
return badoption.Range[int]{
From: 20,
To: 80,
}
@@ -401,16 +408,16 @@ func (c *V2RayXHTTPBaseOptions) GetNormalizedScStreamUpServerSecs() Xbadoption.R
return *c.ScStreamUpServerSecs
}
func (c *V2RayXHTTPBaseOptions) GetNormalizedUplinkChunkSize() Xbadoption.Range {
func (c *V2RayXHTTPBaseOptions) GetNormalizedUplinkChunkSize() badoption.Range[int] {
if c.UplinkChunkSize == nil || c.UplinkChunkSize.To == 0 {
switch c.UplinkDataPlacement {
case PlacementCookie:
return Xbadoption.Range{
return badoption.Range[int]{
From: 2 * 1024, // 2 KiB
To: 3 * 1024, // 3 KiB
}
case PlacementHeader:
return Xbadoption.Range{
return badoption.Range[int]{
From: 3 * 1000, // 3 KB
To: 4 * 1000, // 4 KB
}
@@ -418,7 +425,7 @@ func (c *V2RayXHTTPBaseOptions) GetNormalizedUplinkChunkSize() Xbadoption.Range
return c.GetNormalizedScMaxEachPostBytes()
}
} else if c.UplinkChunkSize.From < 64 {
return Xbadoption.Range{
return badoption.Range[int]{
From: 64,
To: max(64, c.UplinkChunkSize.To),
}
@@ -485,31 +492,31 @@ func (c *V2RayXHTTPBaseOptions) GetNormalizedSeqKey() string {
}
type V2RayXHTTPXmuxOptions struct {
MaxConcurrency Xbadoption.Range `json:"max_concurrency"`
MaxConnections Xbadoption.Range `json:"max_connections"`
CMaxReuseTimes Xbadoption.Range `json:"c_max_reuse_times"`
HMaxRequestTimes Xbadoption.Range `json:"h_max_request_times"`
HMaxReusableSecs Xbadoption.Range `json:"h_max_reusable_secs"`
HKeepAlivePeriod int64 `json:"h_keep_alive_period"`
MaxConcurrency badoption.Range[int] `json:"max_concurrency"`
MaxConnections badoption.Range[int] `json:"max_connections"`
CMaxReuseTimes badoption.Range[int] `json:"c_max_reuse_times"`
HMaxRequestTimes badoption.Range[int] `json:"h_max_request_times"`
HMaxReusableSecs badoption.Range[int] `json:"h_max_reusable_secs"`
HKeepAlivePeriod int64 `json:"h_keep_alive_period"`
}
func (m *V2RayXHTTPXmuxOptions) GetNormalizedMaxConcurrency() Xbadoption.Range {
func (m *V2RayXHTTPXmuxOptions) GetNormalizedMaxConcurrency() badoption.Range[int] {
return m.MaxConcurrency
}
func (m *V2RayXHTTPXmuxOptions) GetNormalizedMaxConnections() Xbadoption.Range {
func (m *V2RayXHTTPXmuxOptions) GetNormalizedMaxConnections() badoption.Range[int] {
return m.MaxConnections
}
func (m *V2RayXHTTPXmuxOptions) GetNormalizedCMaxReuseTimes() Xbadoption.Range {
func (m *V2RayXHTTPXmuxOptions) GetNormalizedCMaxReuseTimes() badoption.Range[int] {
return m.CMaxReuseTimes
}
func (m *V2RayXHTTPXmuxOptions) GetNormalizedHMaxRequestTimes() Xbadoption.Range {
func (m *V2RayXHTTPXmuxOptions) GetNormalizedHMaxRequestTimes() badoption.Range[int] {
return m.HMaxRequestTimes
}
func (m *V2RayXHTTPXmuxOptions) GetNormalizedHMaxReusableSecs() Xbadoption.Range {
func (m *V2RayXHTTPXmuxOptions) GetNormalizedHMaxReusableSecs() badoption.Range[int] {
return m.HMaxReusableSecs
}
-1
View File
@@ -8,7 +8,6 @@ type WARPEndpointOptions struct {
ListenPort uint16 `json:"listen_port,omitempty"`
UDPTimeout badoption.Duration `json:"udp_timeout,omitempty"`
PersistentKeepaliveInterval uint16 `json:"persistent_keepalive_interval,omitempty"`
Reserved []uint8 `json:"reserved,omitempty"`
Workers int `json:"workers,omitempty"`
PreallocatedBuffersPerPool uint32 `json:"preallocated_buffers_per_pool,omitempty"`
DisablePauses bool `json:"disable_pauses,omitempty"`
+4 -5
View File
@@ -3,7 +3,6 @@ package option
import (
"net/netip"
Xbadoption "github.com/sagernet/sing-box/common/xray/json/badoption"
"github.com/sagernet/sing/common/json/badoption"
)
@@ -40,10 +39,10 @@ type WireGuardAmnezia struct {
S2 int `json:"s2,omitempty"`
S3 int `json:"s3,omitempty"`
S4 int `json:"s4,omitempty"`
H1 *Xbadoption.Range `json:"h1,omitempty"`
H2 *Xbadoption.Range `json:"h2,omitempty"`
H3 *Xbadoption.Range `json:"h3,omitempty"`
H4 *Xbadoption.Range `json:"h4,omitempty"`
H1 *badoption.Range[uint32] `json:"h1,omitempty"`
H2 *badoption.Range[uint32] `json:"h2,omitempty"`
H3 *badoption.Range[uint32] `json:"h3,omitempty"`
H4 *badoption.Range[uint32] `json:"h4,omitempty"`
I1 string `json:"i1,omitempty"`
I2 string `json:"i2,omitempty"`
I3 string `json:"i3,omitempty"`
+1 -1
View File
@@ -22,7 +22,7 @@ func NewBondedConn(conns []net.Conn, downloadRatios, uploadRatios []uint8) *bond
conns: conns,
downloadRatios: downloadRatios,
uploadRatios: uploadRatios,
readBuffer: bytes.NewBuffer(make([]byte, 0, 65536)),
readBuffer: bytes.NewBuffer(make([]byte, 0, 4096)),
}
}
+1
View File
@@ -80,6 +80,7 @@ func (h *Inbound) Start(stage adapter.StartStage) error {
}
func (h *Inbound) Close() error {
h.conns.Close()
errs := make([]error, 0)
for _, inbound := range h.inbounds {
err := inbound.Close()
+9
View File
@@ -76,6 +76,15 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
return outbound, nil
}
func (h *Outbound) Start(stage adapter.StartStage) error {
for _, outbound := range h.outbounds {
if err := adapter.LegacyStart(outbound, stage); err != nil {
return err
}
}
return nil
}
func (h *Outbound) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error) {
if N.NetworkName(network) == N.NetworkUDP {
return h.uotClient.DialContext(ctx, network, destination)

Some files were not shown because too many files have changed in this diff Show More