You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#的HttpClient中配置使用Socks4/Socks5代理?

.NET 中 HttpClient 配置 Socks4/Socks5 代理方案

方案1:.NET 6+ 原生支持(无第三方依赖)

.NET 6 及以上版本的 WebProxy 已经原生支持 Socks4、Socks4a、Socks5 协议,仅需给代理地址增加对应协议前缀即可实现配置,示例代码如下:

// Socks5代理配置,需使用socks5://前缀,Socks4则替换为socks4://
string proxyAddress = "socks5://你的代理IP:代理端口";
var handler = new HttpClientHandler
{
    UseProxy = true,
    UseDefaultCredentials = false,
    UseCookies = true,
    AllowAutoRedirect = false,
    Proxy = new WebProxy(proxyAddress)
};
// 若代理需要账号密码认证,按如下方式配置Proxy即可
// Proxy = new WebProxy(proxyAddress)
// {
//     Credentials = new NetworkCredential("代理用户名", "代理密码")
// }
var client = new HttpClient(handler);

方案2:.NET 5及更早版本 / .NET Framework 适配方案

低版本.NET 环境原生不支持Socks代理,需要引入第三方NuGet包 MihaZupan.HttpToSocks5Proxy 实现,配置代码如下:

string proxyIp = "你的代理IP";
int proxyPort = 代理端口;
// 配置Socks5代理,不需要认证则删除最后两个参数
var proxy = new HttpToSocks5Proxy(proxyIp, proxyPort, "代理用户名(可选)", "代理密码(可选)");
// 配置Socks4代理写法
// var proxy = new HttpToSocks5Proxy(proxyIp, proxyPort, ProxyType.Socks4, "代理用户名", "代理密码");
var handler = new HttpClientHandler
{
    UseProxy = true,
    UseDefaultCredentials = false,
    UseCookies = true,
    AllowAutoRedirect = false,
    Proxy = proxy
};
var client = new HttpClient(handler);
注意事项
  • 配置Socks代理时必须添加对应协议前缀,否则会被默认识别为HTTP代理
  • 原生Socks代理支持仅在.NET 6及更高版本提供,低版本环境必须依赖第三方组件实现

内容的提问来源于stack exchange,提问作者RedOmega87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:36:03