wwqgtxx
85bb40aaf8
chore: add Int32Enum for common/atomic
2025-06-12 15:24:29 +08:00
wwqgtxx
082bcec281
chore: apply find process mode in direct/global mode
2025-06-12 00:27:51 +08:00
wwqgtxx
ae7967f662
chore: the resolve and findProcess behaviors of Logic and SubRules follow the order and needs of the internal rules
Test / test (1.20, macos-13) (push) Waiting to run
Test / test (1.20, macos-latest) (push) Waiting to run
Test / test (1.20, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.20, ubuntu-latest) (push) Waiting to run
Test / test (1.20, windows-latest) (push) Waiting to run
Test / test (1.21, macos-13) (push) Waiting to run
Test / test (1.21, macos-latest) (push) Waiting to run
Test / test (1.21, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.21, ubuntu-latest) (push) Waiting to run
Test / test (1.21, windows-latest) (push) Waiting to run
Test / test (1.22, macos-13) (push) Waiting to run
Test / test (1.22, macos-latest) (push) Waiting to run
Test / test (1.22, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.22, ubuntu-latest) (push) Waiting to run
Test / test (1.22, windows-latest) (push) Waiting to run
Test / test (1.23, macos-13) (push) Waiting to run
Test / test (1.23, macos-latest) (push) Waiting to run
Test / test (1.23, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.23, ubuntu-latest) (push) Waiting to run
Test / test (1.23, windows-latest) (push) Waiting to run
Test / test (1.24, macos-13) (push) Waiting to run
Test / test (1.24, macos-latest) (push) Waiting to run
Test / test (1.24, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.24, ubuntu-latest) (push) Waiting to run
Test / test (1.24, windows-latest) (push) Waiting to run
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
2025-06-10 20:11:50 +08:00
wwqgtxx
c0f452b540
chore: more unmap for 4in6 address
Test / test (1.20, ubuntu-latest) (push) Failing after 1s
Test / test (1.21, ubuntu-latest) (push) Failing after 1s
Test / test (1.22, ubuntu-latest) (push) Failing after 1s
Test / test (1.23, ubuntu-latest) (push) Failing after 1s
Test / test (1.24, ubuntu-latest) (push) Failing after 1s
Trigger CMFA Update / trigger-CMFA-update (push) Failing after 1s
Test / test (1.20, macos-13) (push) Has been cancelled
Test / test (1.20, macos-latest) (push) Has been cancelled
Test / test (1.20, ubuntu-24.04-arm) (push) Has been cancelled
Test / test (1.20, windows-latest) (push) Has been cancelled
Test / test (1.21, macos-13) (push) Has been cancelled
Test / test (1.21, macos-latest) (push) Has been cancelled
Test / test (1.21, ubuntu-24.04-arm) (push) Has been cancelled
Test / test (1.21, windows-latest) (push) Has been cancelled
Test / test (1.22, macos-13) (push) Has been cancelled
Test / test (1.22, macos-latest) (push) Has been cancelled
Test / test (1.22, ubuntu-24.04-arm) (push) Has been cancelled
Test / test (1.22, windows-latest) (push) Has been cancelled
Test / test (1.23, macos-13) (push) Has been cancelled
Test / test (1.23, macos-latest) (push) Has been cancelled
Test / test (1.23, ubuntu-24.04-arm) (push) Has been cancelled
Test / test (1.23, windows-latest) (push) Has been cancelled
Test / test (1.24, macos-13) (push) Has been cancelled
Test / test (1.24, macos-latest) (push) Has been cancelled
Test / test (1.24, ubuntu-24.04-arm) (push) Has been cancelled
Test / test (1.24, windows-latest) (push) Has been cancelled
2025-05-29 10:14:06 +08:00
wwqgtxx
60ae9dce56
chore: recover log leval for preHandleMetadata
2025-05-27 18:10:44 +08:00
wwqgtxx
a1c7881229
chore: rebuild udp dns resolve
...
Test / test (1.20, macos-13) (push) Waiting to run
Test / test (1.20, macos-latest) (push) Waiting to run
Test / test (1.20, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.20, windows-latest) (push) Waiting to run
Test / test (1.21, macos-13) (push) Waiting to run
Test / test (1.21, macos-latest) (push) Waiting to run
Test / test (1.21, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.21, windows-latest) (push) Waiting to run
Test / test (1.22, macos-13) (push) Waiting to run
Test / test (1.22, macos-latest) (push) Waiting to run
Test / test (1.22, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.22, windows-latest) (push) Waiting to run
Test / test (1.23, macos-13) (push) Waiting to run
Test / test (1.23, macos-latest) (push) Waiting to run
Test / test (1.23, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.23, windows-latest) (push) Waiting to run
Test / test (1.24, macos-13) (push) Waiting to run
Test / test (1.24, macos-latest) (push) Waiting to run
Test / test (1.24, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.24, windows-latest) (push) Waiting to run
Test / test (1.20, ubuntu-latest) (push) Failing after 1s
Test / test (1.21, ubuntu-latest) (push) Failing after 1s
Test / test (1.22, ubuntu-latest) (push) Failing after 1s
Test / test (1.23, ubuntu-latest) (push) Failing after 1s
Test / test (1.24, ubuntu-latest) (push) Failing after 1s
Trigger CMFA Update / trigger-CMFA-update (push) Failing after 1s
The DNS resolution of the overall UDP part has been delayed to the connection initiation stage. During the rule matching process, it will only be triggered when the IP rule without no-resolve is matched.
For direct and wireguard outbound, the same logic as the TCP part will be followed, that is, when direct-nameserver (or DNS configured by wireguard) exists, the result of the matching process will be discarded and the domain name will be re-resolved. This re-resolution logic is only effective for fakeip.
For reject and DNS outbound, no resolution is required.
For other outbound, resolution will still be performed when the connection is initiated, and the domain name will not be sent directly to the remote server at present.
2025-05-27 10:45:26 +08:00
wwqgtxx
4ed830330e
chore: remove confused code
2025-05-25 22:22:23 +08:00
wwqgtxx
7ff046a455
chore: modify UDPSniff's function signature to prepare for its ability to handle multiple packets.
2025-03-13 08:52:27 +08:00
J.K.SAGE
49d54cc293
fix: remote conn statistic error ( #1776 )
...
TCP handshake traffic should be counted as upload traffic for the remote connection
2025-01-07 13:23:05 +08:00
xishang0128
57725078e0
chore: Adjust the error log for the search process
2024-10-11 07:35:51 +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
2024-09-26 11:21:07 +08:00
wwqgtxx
5812a7bdeb
chore: simplify the code
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
8483178524
feat: sniff add skip-src-address and skip-dst-address
2024-08-27 20:33:43 +08:00
wwqgtxx
27bcb26ecd
chore: better config internal structure
2024-08-24 20:49:12 +08:00
wwqgtxx
313493cc94
chore: add fswatch
2024-07-24 14:37:10 +08:00
wwqgtxx
09be5cbc99
feat: tun support auto-redirect, route-address-set and route-exclude-address-set
2024-06-17 22:04:51 +08:00
wwqgtxx
d96d7651ca
chore: add inner dns proxied connection log
2024-06-13 09:07:05 +08:00
wwqgtxx
f317baa8de
feat: add respect-rules for dns
2024-06-12 15:25:34 +08:00
wwqgtxx
40f5c5b987
chore: don't retry when rejected loopback connection
2024-04-03 08:42:15 +08:00
wwqgtxx
367a287153
chore: don't lookup process when Type==INNER
2024-03-28 21:49:44 +08:00
wwqgtxx
e6011301b2
chore: rebuild slowdown code
2024-01-30 19:41:50 +08:00
wwqgtxx
2e12ceeaed
chore: stop retry when couldn't find ip
2024-01-02 21:49:27 +08:00
wwqgtxx
33bc7914e9
chore: read waiter for pipe
2024-01-02 18:34:34 +08:00
PuerNya
4cea3125e6
Revert 8cf14bb6 and 9d8c3b0a
2023-12-24 22:26:18 +08:00
Larvan2
59ab4fe745
chore: better Reject-Drop for UDP
2023-12-22 21:28:54 +08:00
PuerNya
9d8c3b0a3b
fix: udp nat handle
2023-12-19 00:19:40 +08:00
PuerNya
8cf14bb67e
chore: reslove udp host after rule matching
2023-12-18 17:13:53 +08:00
wwqgtxx
cbec564af9
chore: adapt new ReadWait interfaces
2023-12-07 23:32:37 +08:00
H1JK
1479b449df
chore: Cleanup code
2023-11-17 23:12:10 +08:00
Steve Johnson
aa3c1ac623
fix: fix package name rules match
2023-11-17 19:39:57 +08:00
wwqgtxx
17c9d507be
chore: hello mihomo
2023-11-03 21:58:21 +08:00
5aaee9
de90c276af
feat(sniffer): add quic sniffer
2023-10-19 18:30:20 +08:00
wwqgtxx
270a080b55
fix: sing listener panic
2023-10-11 10:55:12 +08:00
wwqgtxx
e0458a8fde
chore: decrease goroutine used in core tunnel
2023-09-28 18:59:31 +08:00
Kiva
67d7e53f7a
feat: recovering preHandleMetadata failure from sniffing ( #769 )
2023-09-24 19:27:55 +08:00
PuerNya
0d300a3540
chore: handle provider proxies in proxies api
2023-09-24 15:39:14 +08:00
wwqgtxx
1cad615b25
chore: using xsync.MapOf replace sync.Map
2023-09-02 16:54:48 +08:00
wwqgtxx
e2e0fd4eba
chore: using uint16 for ports in Metadata
2023-08-09 13:51:02 +08:00
Skyxim
c57f17d094
chore: reduce process lookup attempts when process not exist #613
2023-06-08 18:07:56 +08:00
wwqgtxx
63b5387164
chore: update proxy's udpConn when received a new packet
2023-06-03 21:40:09 +08:00
wwqgtxx
73140ab826
fix: udp panic when server return a domain name
2023-05-27 13:43:41 +08:00
wwqgtxx
bad7340a4e
chore: proxyDialer don't push flow to manager in statistic
2023-04-11 23:58:56 +08:00
yaling888
8ab70d76e7
Fix: should always drop packet when handle UDP packet ( #2659 )
2023-04-06 09:38:59 +08:00
Skyxim
5d0efb5472
chore: keep existing connections
2023-03-15 09:18:03 +08:00
wwqgtxx
53928eb895
chore: better TunnelStatus define
2023-03-15 00:11:31 +08:00
Skyxim
cf7520ec22
chore: disconnect when suspended
2023-03-14 22:57:43 +08:00
Skyxim
09c53e7cb7
chore: Chore: adjust the loading order, and then load the resource at last
2023-03-14 22:37:07 +08:00
Skyxim
7f588935ea
feta: add hosts support domain and mulitple ip ( #439 )
...
* feat: host support domain and multiple ips
* chore: append local address via `clash`
* chore: update hosts demo
* chore: unified parse mixed string and array
* fix: flatten cname
* chore: adjust logic
* chore: reuse code
* chore: use cname in tunnel
* chore: try use domain mapping when normal dns
* chore: format code
2023-03-12 15:00:59 +08:00