EonaCat.Proxy
0.0.4
Prefix Reserved
dotnet add package EonaCat.Proxy --version 0.0.4
NuGet\Install-Package EonaCat.Proxy -Version 0.0.4
<PackageReference Include="EonaCat.Proxy" Version="0.0.4" />
<PackageVersion Include="EonaCat.Proxy" Version="0.0.4" />
<PackageReference Include="EonaCat.Proxy" />
paket add EonaCat.Proxy --version 0.0.4
#r "nuget: EonaCat.Proxy, 0.0.4"
#:package EonaCat.Proxy@0.0.4
#addin nuget:?package=EonaCat.Proxy&version=0.0.4
#tool nuget:?package=EonaCat.Proxy&version=0.0.4
EonaCat Proxy
Overview
EonaCat Proxy is a high-performance TCP/UDP proxy server written in C#. It supports features such as SSL/TLS, authentication, per-client bandwidth throttling, logging, heartbeats, and upstream proxy support.
This proxy is designed to be highly configurable with per-mapping settings, allowing you to control security, logging, bandwidth, and connection policies for each mapping.
Features
Protocols: TCP and UDP
SSL/TLS Support:
- Accept SSL from client
- Use SSL to server
- Mutual SSL authentication
- Client and server certificates
Authentication: Optional username/password for clients
Client Control:
- Allowed and blocked clients
- Max concurrent connections per mapping
Bandwidth Management: Limit bytes per second per client
Logging:
- File logging with retention and max file size
Heartbeat: Send periodic heartbeat messages to clients
Upstream Proxy Support: Forward traffic through another proxy
Retries: Automatic retries for failed upstream connections
Create a Mapping
var mapping = new Mapping
{
Protocol = Protocol.TCP,
SourceIp = "127.0.0.1",
SourcePort = 8888,
DestinationIp = "example.com",
DestinationPort = 80,
AcceptSslFromClient = false,
UseSslToServer = false,
Username = "user",
Password = "pass",
MaxBytesPerSecond = 1024 * 1024, // 1 MB/s
EnableLogging = true
};
Start Proxy
var manager = new ProxyManager();
manager.OnConnectionEvent += (s, e) => Console.WriteLine($"[{e.Timestamp}] {e.ClientIp}: {e.Message}");
manager.OnException += (s, e) => Console.WriteLine($"Exception: {e.Message}");
manager.StartMapping(mapping);
Stop Proxy
manager.StopMapping(mapping.Id);
manager.Dispose();
Logging
- Logs are stored in the
logsdirectory. - File names are generated per mapping and date.
- Retention and maximum file size can be configured per mapping.
Security
- Only allow connections from clients listed in
AllowedClients. - Optionally block clients listed in
BlockedClients. - Use SSL/TLS for encrypted communication.
- Optional username/password authentication.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- EonaCat.Json (>= 1.1.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.