Repository navigation
Conversation
Log individual shutdown phases and avoid exceptions when a process has no ProcessName during cleanup.
Run MainController shutdown on the worker thread, avoid duplicate stops, and warn if native cleanup exceeds 15 seconds without falsely reporting stopped.
Native aio_free returns void. Correct the managed declaration and FreeAsync Task return type.
fix: prevent Win11 stop action from freezing Netch UI
Fix log writer races, propagate stop failures with retries, bound driver stop waits, provide explicit recovery for stalled native cleanup, correct private-network rule, and remove finalizer-thread WinForms disposal. Static diff checks passed. Windows 11 build/runtime tests pending.
Prevent use-after-free and malformed SOCKS UDP buffer access; handle partial TCP framing and odd ICMP sizes; fix startup lock and unstarted process cleanup, native TCP port allocation leaks, TUN IPv4/route cleanup and DNS validation. Upgrade GitHub Actions versions. Static diff checks passed. Windows CI was not triggered on this fork; Windows compilation and runtime verification remain pending.
主要更新: - 改为中文主文档并保留英文简介 - 更新当前仓库的构建、Release 和许可证徽章 - 增加游戏代理、UDP 转发及 NAT 检测优化说明 - 补充 VLESS + WebSocket 配置注意事项 - 解释 NoUDP、Timeout、UnsupportedServer 等结果 - 增加 .NET 10 SDK、Visual Studio 和完整构建命令 - 补充目录结构及常见故障排查 - 移除过时的 2.0 清仓提示
- Propagate TCP half-closes and keep accept loop alive on transient failures - Bound SOCKS handshakes, cool down failed UDP associations, and handle domain and wildcard relay replies - Correct DNS address family, optimize regex filtering and protect config recovery - Make async/UI interactions safe, improve process and guard error handling - Add DNS cache expiry and IPv6-safe host parsing Static diff checks passed; Windows build and runtime verification pending.
- DnsUtils: drop the global lock that serialized every lookup; concurrent cache, de-duplicated in-flight queries, bounded system resolver wait, parallel A/AAAA queries. - Server.PingAsync: best of three probes instead of first finished. - NFController.CheckRules: materialize the lazy query (rules were re-dialed after AIO_CLRNAME). - MainForm: fix CTS race between NAT/HTTP tests after quick restart, await single-server speed test, avoid tight loop when StartedPingInterval is 0, drop per-second full-window Refresh, always stop the temporary proxy after updating subscriptions through it. - MainController.HttpConnectAsync now awaits so its catch blocks work. - Guard: event-driven start detection, fail fast when the core exits early, keep output encoding in ChangeMainFile, tolerate output after stop. - NAT test: parallel DNS, 20 s total timeout, always close the proxy; HTTP test honors RequestTimeout. - Share one GeoIP reader; dispose Ping; lock-free traffic counter. - Firewall: check rules once per process; do not mutate while enumerating. - TUN: parallel lookups, faster adapter polling. - Enable nullable annotations context (removes ~670 CS8632 warnings). - Convert two GBK-encoded sources to UTF-8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
- build.ps1: stop on errors, restore location, rebuild components unless -UseCache, tolerate GeoIP download failures with a local fallback, keep the bundled wintun.dll. - CI: current action versions, explicit .NET SDK, drop unused Rust setup, least-privilege permissions, cancel superseded runs. - README: correct target framework, document -UseCache and new optimizations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Scripts from a downloaded source archive carry Mark-of-the-Web and are refused under the RemoteSigned execution policy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
…yConfig - VSTHRD011 (error): replace Lazy<Task<T>> with AsyncLazy<T>. - VSTHRD103: await CancelAsync instead of Cancel. - V2rayConfig.cs: '#nullable disable warnings' keeps annotations valid. - Remove unused exception variable (CS0168). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
- Raise Redirector relay threads (TCP accept/relay, UDP receive, DNS relay) to THREAD_PRIORITY_HIGHEST so forwarding is not delayed behind game threads. - 1 MiB send/receive buffers on SOCKS UDP relay sockets. - Count redirected TCP bytes so aio_getUP/DL cover all forwarded traffic. - ProcessTuning: while accelerating, run Netch and the proxy cores (xray, sing-box, tun2socks, pcap2socks) at AboveNormal and opt them out of power throttling (EcoQoS). Controlled by GameProcessBoost (default on). - Process mode traffic display reads the Redirector counters instead of a system-wide kernel network ETW session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
…tching - Add process-mode rules (with child processes, LAN direct) for: EA App + EA games + anti-cheat, Steam + Steam games, Rockstar Games + GTA series, PUBG + BattlEye, Counter-Strike 2 + VAC/FACEIT. - Redirector: compile rules case-insensitive (Windows paths are). - filterParent now walks up to 6 ancestors instead of only the direct parent, using NtQueryInformationProcess for parent PID and process creation time to reject recycled parent PIDs. Fixes cached processes that were looked up without parent information never matching by parent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Remove the legacy SSH, Shadowsocks(R), Socks5 and Trojan controller/form implementations that were replaced by the Xray/sing-box based servers, and update Guard, the V2ray controller/config, Redirector and workflows to match the local tree the following optimizations were made on.
…h overhead - Multiplex proxied DNS queries over a single long-lived UDP ASSOCIATE by rewriting the transaction ID, instead of a new SOCKS handshake, UDP socket and two threads (plus an upstream TLS session) per query. Recycles the association after repeated unanswered queries and on FREE. - Compile per-connection / per-packet logging out of Release builds. - Run the simulated ICMP delay on its own thread instead of sleeping on the Netfilter IP callback thread. - Raise the TCP relay buffer from 1446 bytes to 16 KiB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
- Correct supported protocols and cores (SSR/SSH removed; Hysteria2, TUIC, AnyTLS, NaiveProxy, MASQUE added; sing-box must be placed in bin). - Drop the non-existent Web mode; describe the three real modes. - Add a game acceleration guide (Game Collection mode, Steam downloads, GameProcessBoost, rule syntax) and matching troubleshooting entries. - Build works from plain PowerShell (vswhere, unblocked sub-scripts). - Move detailed release notes into a Changelog section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
- The release workflow reads docs/release-notes/<version>.md (tag v2.0.1 -> 2.0.1.md) as the release body and appends download instructions and a SHA256 table; falls back to the README changelog link. - Publish Netch-<tag>-win-x64.zip and the single-file .exe, matching the v2.0.0 release layout. - Add 2.0.1 release notes and document the release process in README. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JoFW4vpFVpVwNbUurcnrw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The fork has been built successfully as a Windows x64 single-file executable. The v2.0.0 release is available here: https://github.com/cbear2024/netch/releases/tag/v2.0.0
Build verification: dotnet publish -c Release -r win-x64 succeeded; the published executable reports file version 2.0.0.0.