根据我在尝试解决此问题时的研究,事实证明 .Net WebProxy 类不支持 Socks 代理 - 有点烦人。我似乎也找不到任何代码或信息来解释如何通过一个可以轻松与 HttpWebRequest (确切地说是 Proxy 属性)一起使用的类来实现 Socks 4/5 支持。
我通过谷歌找到了关于如何做到这一点的有限信息。一个建议涉及更改 Internet Explorer 代理设置——我不想这样做。
有谁知道可以完成这项工作的任何事情或有任何建议吗?任何帮助将非常感激。
我尝试了许多声称支持 Socks4/5 的 .Net 库,但发现其中许多库无法正常工作,或者尝试连接到我知道正在运行的代理时会出错。
我最终使用了Chilkat Software 的 Sock/SSL 组件,即使我必须手动构建 HTTP 请求而不是像我希望的那样使用 HttpWebRequest,它似乎也很适合我。
Chilkat.Http.SocksHostname
,Chilkat.Http.SocksPort
和Chilkat.Http.SocksVersion
属性。更改 IE 的代理设置对您毫无帮助——另一位发帖人只是观察到它适用于 IE。因为 .NET Framework 不支持 SOCKS,所以您必须编写自己的 CERN-Proxy 到 SOCKS-Proxy 转换器,这样 .NET 才能与 CERN 代理(它支持的类型)对话,而您的代码会将其转换为SOCKS 代理调用。
FWIW,这是我目前希望添加到 FiddlerCore (www.fiddler2.com/core) 的内容,因为我已经拥有几乎所有的代码。我唯一真正需要的是一个 SOCKSv4a 代理来测试。
从 .NET 6 开始,socks 代理可以与HttpClient
. 在 GitHub 上查看此问题。
使用Privoxy或相同的方式为您的袜子创建 http 代理网关。
将此添加到主配置以链接 Privoxy 和袜子:
forward-socks5 / proxy_host:port .
还有类似的东西可以直接访问您的本地网络:
forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 127.*.*.*/ .