我在我的项目中使用Fiddler Core,并通过不需要身份验证的SOCKS代理成功路由请求。
oS["x-OverrideGateway"] = string.Format("socks={0}:{1}", ProxyHost, ProxyPort);
现在我尝试连接到需要身份验证的SOCKS代理。我已根据此非SOCKS指南尝试添加以下内容:Authenticate With CBT。
oS["X-AutoAuth"] = Auth;
其中Auth
是包含username:password
形式的凭据的字符串。但是连接始终因Bad Gateway异常而失败。我已成功使用curl
连接到相同的SOCKS代理,并遵循其针对经过身份验证的SOCKS代理的指南。
在X-AutoAuth
没有工作后,我反映了一些代码,发现这种认证机制不用于SOCKS。
答案 0 :(得分:2)
相当不幸的是,Fiddler(和FiddlerCore)目前还不支持SOCKS5。
但是,您可以在https://fiddler.ideas.aha.io/申请此邮件。
答案 1 :(得分:1)
我们遇到了类似的问题,并创建了NuGet library来帮助您将SOCKS v4流量“转换”为SOCKS v5,并且还添加了身份验证支持。
这个小例子显示了如何使用用户名和密码连接FiddlerCore和SOCKS5代理:
var localEndpoint = new IPEndPoint(IPAddress.Loopback, 4321);
var remoteEndpoint = new IPEndPoint(IPAddress.Parse("remote proxy IP"), 8080);
ISocksRelayServer relay = new SocksRelayServer.SocksRelayServer(localEndpoint, remoteEndpoint)
{
Username = "...",
Password = "..."
};
// Debug to console
relay.OnLogMessage += (sender, s) => Console.WriteLine($"OnLogMessage: {s}");
relay.OnLocalConnect += (sender, endpoint) => Console.WriteLine($"OnLocalConnect: {endpoint}");
relay.OnRemoteConnect += (sender, endpoint) => Console.WriteLine($"OnRemoteConnect: {endpoint}");
// Start relay server
relay.Start();
// Start FiddlerCore
FiddlerApplication.Startup(...);
// Set upstream gateway before requests
FiddlerApplication.BeforeRequest += session =>
{
session["x-OverrideGateway"] = relay.LocalEndPoint.ToString();
}