Release history
12 releases of NetProxy.
Full Changelog: https://github.com/NTDLS/NetProxy/compare/2.5.0...2.5.1
New π
- Endpoint connections list.
Changed π
- Main window: the connection list sits under the proxy list. Selecting no proxy (Esc, or Ctrl-click) leaves it empty.
- Connection tracking: each connection now records its own byte counts, listening address and port, endpoint address and port, and negotiated TLS version.
Fixed π
- n/a
Full Changelog: https://github.com/NTDLS/NetProxy/compare/2.4.1...2.5.0
New π
- Encrypted management connection. The console and the service now agree on a key (NTDLS.SecureKeyExchange) when they connect, and everything after that, including the login and every setting, is encrypted with NTDLS.Permafrost. The service refuses a login over a connection that is not encrypted.
- TLS for the listener. Choose the HTTPS traffic type and give the proxy a PFX certificate; header rules then apply to HTTPS too. The certificate password is stored encrypted.
- TLS to endpoints. Each endpoint has its own traffic type (Raw, HTTP or HTTPS, starting as the listenerβs) and a Validate Certificate option.
- HTTP/2 and gRPC with header rules. Tick Allow HTTP/2. It is negotiated on HTTPS listeners, and plain HTTP/2 (h2c) clients are detected on HTTP listeners. HTTP/1.1 clients keep working.
- Connection limits and idle timeouts. Each proxy can limit its total connections and the connections per client address, and close connections that carry no data. The default of 0 means no limit.
- IPv6. Listen on IPv4, IPv6 or both, bind to IPv6 addresses, and use IPv6 addresses or host names as endpoints. The management port can listen on IPv6 too.
- Localization. The console is translated, with Settings > Language... and a Language button on the connect window.
- Dark mode. The console follows the Windows light/dark setting.
- A new home-page chart. It shows sent, received and connections over time, for all proxies or the selected one, plus a status bar with totals.
- Logging. The service has a rolling log file with a size limit and retained count, writes warnings and exceptions to the Windows event log, and logs to the console when run by hand. All of it is configured in Server Settings.
- Linux builds. The service is published self-contained for x64 and arm64 as zips, with a systemd install guide.
- Tool tips on every input and grid column, and a new application icon.
Changes π
- The HTTP/1.x header handling was rewritten as a streaming parser, and HTTP header rules now also apply to PATCH and TRACE.
- User and certificate passwords in the configuration files are encrypted with a key kept beside them (secret.key). Older plain-text files are converted on first load.
- Load balancing was reworked. Balanced picks the endpoint with the fewest connections, fail-over and round-robin skip endpoints that are down, and an endpoint that fails is tried last for a short while.
- The accept backlog setting is now applied (values below 128 are raised to 128), and buffer sizes are validated.
- The console connects once, encrypted, and ChangeConnection() receives that live connection. The connect window no longer connects twice.
- The console and the service must now be the same version.
Fixes π
- Fixed several connection-handling bugs in the proxy engine, including a balancer that could retry a dead endpoint forever, a listener that stopped accepting after a failed accept, and connections that were not always released.
- A client that finishes its request now still receives the whole response (half-close is passed on).
- Sticky sessions now expire correctly and fall back to another endpoint when theirs is down.
- Passwords are compared in constant time, and failed logins are slowed down.
- A proxy that cannot start (for example, its port is in use) now tells the console why.
- Deselecting a proxy in the list (Escape, a click on empty space or Ctrl+click) returns the chart to all proxies.
- Updated all packages, spelling corrections.
- Fixed UI hang on close.
- Null handling enhancements.
- Moved null and Winforms helpers to nuget.
- Better UI validation.
- Update to .net8
- Moved messages to convention based.
- Reworked authentication.
- Split out PumpBuffer and separated HTTP header parser.
Full Changelog: https://github.com/NTDLS/NetProxy/compare/2.0.0...2.1.0
Major release:
- A nearly complete application rewrite.
- Completely rewrite of TCP/IP stream framer, IPC messaging, peer connection handler, peer->peer data pump, socket server and client.
- .net update to 7.0
- Moved concurrency, stream framing, and ipc messaging to nuget packages.
- Lots of bug fixes.
- Major performance fixes.
Full Changelog: https://github.com/NTDLS/NetProxy/compare/1.0.0...2.0.0