A high-performance SOCKS (4/4a/5) proxy implementation for .NET HttpClient. Features include: • Support for SOCKS4, SOCKS4a, and SOCKS5 protocols • Username/password authentication for SOCKS5 • Smart proxy instance reuse and cleanup • Automatic resource management based on idle time • Thread-safe implementation • Simple and efficient API
$ dotnet add package SocksProxy一个高性能、易用的 .NET SOCKS 代理实现,支持 SOCKS4/4a/5 协议。
dotnet add package GeekTools.SocksProxy
// 1. 默认跟随handler生命周期
var handler = new HttpClientHandler()
.UseSocksProxy("127.0.0.1", 1080);
// 2. 启用自动清理(30分钟后清理)
var handler2 = new HttpClientHandler()
.UseSocksProxy(
"127.0.0.1",
1080,
enableAutoCleanup: true
);
// 3. 启用自动清理(自定义清理时间)
var handler3 = new HttpClientHandler()
.UseSocksProxy(
"127.0.0.1",
1080,
enableAutoCleanup: true,
idleTimeout: TimeSpan.FromMinutes(10)
);
// 4. 带认证的SOCKS5代理
var handler4 = new HttpClientHandler()
.UseSocksProxy(
"127.0.0.1",
1080,
username: "user",
password: "pass"
);
// 使用配置好的handler创建HttpClient
using var client = new HttpClient(handler);
// 1. 默认跟随handler生命周期
var handler = new HttpClientHandler();
handler.Proxy = SocksWebProxy.GetProxy(
"127.0.0.1",
1080,
handler: handler
);
// 2. 启用自动清理
var options = new SocksWebProxyOptions
{
EnableAutoCleanup = true,
IdleTimeout = TimeSpan.FromMinutes(30)
};
var handler2 = new HttpClientHandler
{
Proxy = SocksWebProxy.GetProxy("127.0.0.1", 1080, options: options)
};
MIT License