wwqgtxx
88bfe7cffe
feat: add external-controller-pipe
for windows
...
maybe useful for electron and tauri client, node.js and rust still not support AF_UNIX on windows
2024-09-27 16:09:03 +08:00
wwqgtxx
43cb48231a
cache: add dns cache in udp packet sender
...
reduce the cost of re-resolving DNS for each packet received and prevent the target IP from jumping between multiple resolution results
2024-09-26 22:21:59 +08:00
wwqgtxx
4fa15c6334
chore: ensures packets can be sent without blocking the tunnel
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-26 11:21:07 +08:00
wwqgtxx
5812a7bdeb
chore: simplify the code
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-25 21:37:15 +08:00
HamsterReserved
3922b17067
chore: deliver UDP packets from same connection in receiving order ( #1540 )
...
All UDP packets are queued into a single channel, and multiple
workers are launched to poll the channel in current design.
This introduces a problem where UDP packets from a single connection
are delivered to different workers, thus forwarded in a random order
if workers are on different CPU cores. Though UDP peers normally
have their own logic to handle out-of-order packets, this behavior will
inevitably cause significant variance in delay and harm connection quality.
Furthermore, this out-of-order behavior is noticeable even if the underlying
transport could provide guaranteed orderly delivery - this is unacceptable.
This commit takes the idea of RSS in terms of NICs: it creates a distinct
queue for each worker, hashes incoming packets, and distribute the packet
to a worker by hash result. The tuple (SrcIP, SrcPort, DstIP, DstPort, Proto)
is used for hashing (Proto is always UDP so it's dropped from final
implementation), thus packets from the same connection can be sent to
the same worker, keeping the receiving order. Different connections can be
hashed to different workers to maintain performance.
Performance for single UDP connection is not affected, as there is already
a lock in natTable that prevents multiple packets being processed in different
workers, limiting single connection forwarding performance to 1 worker.
The only performance penalty is the hashing code, which should be neglectable
given the footprint of en/decryption work.
Co-authored-by: Hamster Tian <haotia@gmail.com>
2024-09-25 21:28:30 +08:00
wwqgtxx
a4e84f0479
chore: better apply tcp keepalive to listeners
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-25 15:10:53 +08:00
wwqgtxx
6c0383026e
fix: AmneziaWG not working
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-24 13:25:13 +08:00
wwqgtxx
59a2b24593
chore: save etag in bbolt by msgpack
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-23 19:25:35 +08:00
wwqgtxx
966eeae41b
chore: rewrite bbolt cachefile implements
...
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
never use returned byte slices outside the transaction, ref:
https://pkg.go.dev/go.etcd.io/bbolt#hdr-Caveats
2024-09-23 09:35:48 +08:00
wwqgtxx
150c6ccd25
chore: skip duplicates nameserver when parse
2024-09-23 08:54:07 +08:00
wwqgtxx
33823f1728
chore: sync internal interface
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-22 22:45:55 +08:00
wwqgtxx
781b783346
feat: add amnezia-wg-option
to wireguard outbound
2024-09-22 22:07:14 +08:00
wwqgtxx
ddfa9e8671
feat: add etag-support
to let user can disable this feature manually
2024-09-22 14:41:45 +08:00
wwqgtxx
b7cb6774bf
chore: support ETag for update geo
2024-09-22 13:57:57 +08:00
wwqgtxx
5d242510c8
chore: support ETag for providers
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-22 11:42:29 +08:00
wwqgtxx
223eae0e06
chore: force refresh provider in background
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-22 00:24:49 +08:00
wwqgtxx
7dafe7889e
chore: disallow space at begin or end in DomainTrie
2024-09-21 21:03:59 +08:00
wwqgtxx
d80e8bb0c2
chore: remove some confusing restrictions on comma separation in NameServerPolicy configuration
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-21 20:03:17 +08:00
wwqgtxx
f52fe6aa74
fix: tun.device not shown in restful api
2024-09-21 19:46:39 +08:00
wwqgtxx
a08aa10630
chore: some internal types support encoding.TextUnmarshaler
Trigger CMFA Update / trigger-CMFA-update (push) Has been cancelled
2024-09-19 18:36:24 +08:00
wwqgtxx
794645b7f8
chore: direct using structure package decode proxy-name
2024-09-19 18:26:05 +08:00
wwqgtxx
f020b20ab9
chore: structure support encoding.TextUnmarshaler
2024-09-19 18:26:05 +08:00
Chun
3676d1b79f
feat: add proxy name replacement functionality for override ( #1481 )
...
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
* feat: add proxy name replacement functionality for override
* style: modify `override schema` info and provider parse error message
---------
Co-authored-by: chun <pujichun@outlook.com>
2024-09-18 22:41:06 +08:00
落心
58c973ee2b
fix: NewRejectWithOption
has wrong type ( #1518 )
...
Co-authored-by: nico <nico@starpay.com>
2024-09-18 22:36:20 +08:00
Larvan2
fb4d3c41c8
chore: simplify VlessFlow Option
Trigger CMFA Update / trigger-CMFA-update (push) Has been cancelled
2024-09-17 12:03:24 +08:00
wwqgtxx
e33d4a4769
chore: cleanup the patch code
Trigger CMFA Update / trigger-CMFA-update (push) Has been cancelled
2024-09-12 11:19:54 +08:00
xishang0128
4c3fe98ebd
chore: modify the default download address of ASN
2024-09-11 19:24:53 +08:00
wwqgtxx
0a2f606e1b
chore: cleanup the patch code
2024-09-11 16:10:49 +08:00
Larvan2
8230bc8e7d
chore: parse float in subscription info
2024-09-11 13:34:59 +08:00
wwqgtxx
ecbbf9d220
feat: doh client support ecs
and ecs-override
2024-09-11 10:56:51 +08:00
wwqgtxx
f305e440ef
fix: new tun with fd unneeded calculate interface name
2024-09-11 10:04:50 +08:00
wwqgtxx
910f236696
fix: UpdateMonitor should start when AutoDetectInterface enabled
2024-09-11 09:52:21 +08:00
wwqgtxx
417d709d60
fix: RawSrcAddr and RawSrcAddr in metadata
2024-09-10 21:46:56 +08:00
wwqgtxx
f8557f5fd8
chore: don't start UpdateMonitor when AutoRoute not enabled
2024-09-10 17:13:13 +08:00
wwqgtxx
89b9438fc0
fix: restful server restart
2024-09-10 16:43:00 +08:00
wwqgtxx
7c8f451892
chore: cleanup geo internal code
2024-09-09 16:08:48 +08:00
wwqgtxx
ef244b896a
chore: update geo in a batch
2024-09-09 10:07:50 +08:00
wwqgtxx
595a575cde
chore: add Count for ProxyProvider
2024-09-09 10:07:50 +08:00
wwqgtxx
b1301b1b41
chore: update quic-go to 0.47.0
2024-09-09 10:07:50 +08:00
wwqgtxx
dc29514fb6
chore: typo
2024-09-09 10:07:50 +08:00
wwqgtxx
8940bdd56f
chore: better pool_test
2024-09-09 10:07:50 +08:00
H1JK
ade4234615
chore: mrs use best compression
Trigger CMFA Update / trigger-CMFA-update (push) Has been cancelled
2024-09-07 20:22:21 +08:00
xishang0128
faaa90f8a6
feat: Allows passing in base64-encoded configuration strings
Trigger CMFA Update / trigger-CMFA-update (push) Has been cancelled
2024-09-03 17:55:11 +08:00
xishang0128
43f21c0b41
fix: fallback cannot be unfixed
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-09-02 16:18:28 +08:00
Larvan2
56fe7d5304
chore: clean up update_ui code
2024-09-02 11:17:35 +08:00
Larvan2
802267fb5b
ci: better release
Trigger CMFA Update / trigger-CMFA-update (push) Has been cancelled
2024-08-31 23:38:31 +08:00
wwqgtxx
6306c6b580
chore: add route.ApplyConfig
for CMFA
2024-08-31 22:42:24 +08:00
wwqgtxx
f6164ac195
feat: add fake-ip-filter-mode
in dns
...
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
https://github.com/MetaCubeX/mihomo/issues/1479
2024-08-31 09:59:48 +08:00
wwqgtxx
08ac9a3fae
fix: tfo ipv6 addr zone
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2024-08-30 20:09:50 +08:00
wwqgtxx
38fd37108b
feat: GEOIP
,IP-ASN
,IP-CIDR
,IP-CIDR6
and IP-SUFFIX
in rules support ,src
option
...
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
keep the same writing style as `RULE-SET`
2024-08-30 00:04:59 +08:00