Releases: wiresock/proxifyre
ProxiFyre-v2.2.0
🚀 ProxiFyre 2.2.0
✨ New Feature: LAN Bypass for SOCKS5 Proxy
ProxiFyre 2.2.0 adds an optional LAN bypass feature that allows local network traffic to bypass the SOCKS5 proxy. This improves performance and prevents routing issues when accessing LAN resources such as local services, NAS devices, or printers.
🔧 Changes
- Added a configurable
bypassLanoption to exclude local network traffic from proxying - Implemented LAN pass-through filters for private IPv4 subnets:
10.0.0.0/8172.16.0.0/12192.168.0.0/16169.254.0.0/16(link-local)224.0.0.0/4(multicast)
- Introduced
set_bypass_lan()in the SOCKS local router - Propagated LAN bypass functionality through:
socksify_unmanaged- C++/CLI
Socksifierwrapper
- Updated
app-config.jsonschema and settings parsing
🧩 Configuration
Enable LAN bypass by setting bypassLan in app-config.json:
{
"logLevel": "Info",
"bypassLan": true,
"proxies": [
...
]
}✅ Benefits
- Faster access to local network resources
- Avoids proxy-related issues with LAN-only services
- Fully optional and disabled by default
Full Changelog:
- feat: Add LAN bypass option to exclude local network traffic from proxying (#116)
ProxiFyre-v2.1.4
Proxifyre 2.1.4
Improvements
- Improved stability of TCP and SOCKS5 UDP proxy connections on Windows
- More reliable asynchronous I/O and background thread handling
- Safer startup and shutdown behavior under heavy network load
Fixes
- Fixed rare edge cases that could cause instability during active connections
- Corrected timeout handling for long waits on Windows
- Improved internal resource cleanup to prevent shutdown hangs
Notes
- No configuration changes required
- Fully backward compatible with previous 2.1.x releases
ProxiFyre-v2.1.3
🧩 Proxifyre 2.1.3
Overview
Proxifyre 2.1.3 is a maintenance release focused on improving reliability and addressing minor issues identified in the previous version (2.1.2). While this update does not introduce new features, it enhances the overall stability and consistency of the service.
🛠 Fixes and Improvements
- Implementation stability: Fixed minor inconsistencies in the implementation layer affecting edge-case request handling.
- Code maintainability: Minor refactoring across implementation classes for better readability and long-term maintainability.
⚙️ Impact
- No API or interface changes.
- Fully backward compatible with version 2.1.x clients.
- Recommended for all users currently running 2.1.x builds.
🔗 Upgrade Notes
Upgrade to 2.1.3 using your standard deployment process. No configuration or migration changes are required.
ProxiFyre-v2.1.2
🚀 ProxiFyre 2.1.2
🛠 Fixes & Improvements
Config Handling Bugfix
- Fixed an issue with configurations containing multiple proxies (including entries with empty
appNames) that caused incorrect routing or failures. - Example (now supported):
{ "logLevel": "Error", "proxies": [ { "appNames": ["chrome"], "socks5ProxyEndpoint": "proxy1.example.com:1080", "username": "user", "password": "********", "supportedProtocols": ["TCP", "UDP"] }, { "appNames": [""], "socks5ProxyEndpoint": "proxy2.example.com:1080", "username": "user", "password": "********", "supportedProtocols": ["TCP", "UDP"] } ], "excludes": ["firefox"] }
What's Changed
Full Changelog: v2.1.1...v2.1.2
ProxiFyre-v2.1.1
🚀 ProxiFyre 2.1.1
🛠 Fixes & Improvements
Process Exclusion Support
- Added ability to exclude specific processes from proxy routing.
- Configurations can now specify applications that should bypass the SOCKS proxy.
- Prevents unwanted tunneling for apps like browsers or local services when a global proxy is configured.
- Updated configuration examples to clearly demonstrate exclusion usage.
{
"logLevel": "Debug",
"proxies": [
{
"appNames": [""],
"socks5ProxyEndpoint": "socks5.sshvpn.me:1080",
"username": "username1",
"password": "password1",
"supportedProtocols": ["TCP", "UDP"]
}
],
"excludes": [
"firefox"
]
}Impact: Enables more flexible setups where most processes are proxied, but selected applications remain direct.
Reference: #46
Performance Optimization via Caching
- Implemented intelligent caching for process matching.
- Reduces repeated pattern lookups in high-frequency proxy routing scenarios.
- Lowers CPU overhead and improves responsiveness under heavy connection loads.
Impact: Provides smoother performance when managing many simultaneous proxied processes.
Reference: Pull Request with caching and exclusion improvements.
⚡ Upgrade Note
If you want to use the new process exclusion feature, add the "excludes" section to your configuration.
Existing configurations will continue to work without changes.
🙌 Special Thanks
A big thank you to @PoneyClairDeLune for suggesting the initial PR that inspired this release and pushing the improvements forward. 🎉
Full changelog:
- Feature: Add process exclusion support in configuration.
- Improvement: Optimize process matching with caching for better performance.
- Docs: Extend configuration documentation with examples for exclusions.
Full Changelog: v2.0.12...v2.1.1
ProxiFyre-v2.0.12
🚀 ProxiFyre 2.0.12
🛠 Fixes & Improvements
Template Name Resolution in Logging Macro
- Added explicit
this->qualification toget_log_level()and other logging method calls in theNETLIB_LOGmacro. - Resolves dependent name lookup issues in CRTP (Curiously Recurring Template Pattern) inheritance.
- Removes IDE warnings about unresolved method names in template contexts.
- Ensures proper two-phase template name lookup for both source location variants.
- No functional changes — improves code clarity and IDE compatibility.
Technical note: In CRTP patterns like
logger<Derived>, method calls are considered dependent names and requirethis->qualification for proper template instantiation and IDE recognition.
Extended TCP Proxy Idle Timeout
- Increased idle timeout in
is_ready_for_removal()from 2 minutes to 1 hour. - Timeout now acts as a safety measure for abandoned connections, rather than routine session control.
- Maintains behavior where closing either socket closes both — correct for TCP proxy operation.
- Updated logging to reflect new safety timeout semantics.
Impact: Prevents premature disconnections causing frequent reconnections during testing, especially in web applications with legitimate long idle periods.
Reference: #79
Full changelog:
- Fix: Explicit
this->in CRTP logging macro for template name resolution. - Fix: Increase TCP proxy session timeout to 1 hour to avoid breaking idle connections.
Full Changelog: v2.0.10...v2.0.12
ProxiFyre-v2.0.10
🚀 ProxiFyre 2.0.10
Highlights
- Global verbosity control for
netlib::logwith runtime configuration and managed integration. - Smarter log formatting; no duplicate timestamps/levels with NLog.
- Managed log levels map to progressive verbosity:
- error/warn → level only
- info → level + logger
- debug → level + thread + path
- all → full detail
Refactors
- Removed redundant log-level guards in
process_lookup(TCP/UDP, v4/v6) — now rely onNETLIB_LOGmacro early-return for performance.
Benefits
- Fine-grained log detail for prod/dev.
- Runtime tunable without rebuilds.
- Backward compatible with existing log calls.
ProxiFyre-v2.0.9
ProxiFyre 2.0.9 — Accurate Caller Locations in Logs
🛠 Logging Improvements
- Fixed an issue where log entries with
std::source_locationalways reported the logger’s internal header and line number instead of the actual call site. - Introduced the
NETLIB_LOGmacro to capture true caller file/line/function when logging formatted messages. - Added
print_log_with_loc()overload to accept explicitstd::source_locationfrom wrappers or macros. - Updated feature detection for
std::source_locationto ensure reliable activation across compilers.
Result: Log output now points to the real code location where the log was generated, making debugging and tracing significantly easier.
Full Changelog: v2.0.8...v2.0.9
ProxiFyre-v2.0.8
ProxiFyre 2.0.8 — Faster & Smarter Logging
🚀 Performance
- Reduced CPU and memory overhead by skipping expensive string formatting when logging is disabled.
- Optimized TCP/UDP table processing in
process_lookupfor large datasets. - Removed per-packet logging overhead in proxy sockets:
tcp_proxy_socketsocks5_udp_proxy_socketsocks5_tcp_proxy_socket
- Near-zero logging cost at
error/warninglevels in production.
🛠 New Logging System
- Replaced legacy logger with modern C++20, thread-safe CRTP-based design (
netlib::log). - Supports
std::format,std::osyncstream, optionalstd::source_location. - Compact 24-bit thread IDs, local time with UTC fallback.
- Atomic log level checks with relaxed memory ordering.
Result: Lower CPU usage, faster hot paths, and full debug visibility when needed.
Full Changelog: v2.0.6...v2.0.8
ProxiFyre-v2.0.6
🛠 ProxiFyre v2.0.6 – Unified System Process Filtering
✨ What's New
- Centralized System Process Detection
Introduced a newis_system_process()helper function to consistently detect both PID 0 (System Idle Process) and PID 4 (System Process). - Consistent Filtering Across All Protocol Handlers
Updated all TCP/UDP IPv4 and IPv6 entry functions to skip resolution attempts for both PID 0 and PID 4. - Clearer Debug Logging
Enhanced debug messages to include PID values and explicitly label them as Idle or System processes for better traceability.
🔧 Technical Details
-
Added a
static constexpr is_system_process()helper for centralized PID checks. -
Updated:
process_tcp_entry_v4()to use the new helper.process_tcp_entry_v6()to check both PID 0 and PID 4.process_udp_entry_v4()to check both PID 0 and PID 4.process_udp_entry_v6()to check both PID 0 and PID 4.
-
Unified filtering logic to eliminate duplicate PID checks across the codebase.
-
Improved debug output to indicate when a skipped entry belongs to the Idle or System process.
🐛 Bug Fixes
- Resolved inconsistencies in PID filtering logic between IPv4 and IPv6 handlers.
- Fixed debug log discrepancies when skipping PID 4 entries, ensuring uniform output format.
- Prevented unnecessary and expensive process resolution attempts for PID 4 (System Process) alongside PID 0.
📦 Upgrade Notes
- Fully backward compatible with all v2.x releases.
- Recommended for all users for improved maintainability and reduced overhead.
- Expect cleaner debug logs with explicit identification of skipped system processes.
This release focuses on code maintainability and operational consistency, making ProxiFyre smarter in handling system-level processes while keeping the logs more informative and concise.
Full Changelog: v2.0.5...v2.0.6