簡體   English   中英

連接到需要身份驗證的SOCKS代理

[英]Connect to SOCKS proxy that requires authentication

我在我的項目中使用Fiddler Core,並通過不需要身份驗證的SOCKS代理成功路由請求。

oS["x-OverrideGateway"] = string.Format("socks={0}:{1}", ProxyHost, ProxyPort);

現在我正在嘗試連接到需要身份驗證的SOCKS代理。 根據這個非SOCKS指南,我嘗試添加以下內容: 使用CBT進行身份驗證

oS["X-AutoAuth"] = Auth;

Auth是一個字符串,其中包含username:password形式的憑據。 但是連接始終因Bad Gateway異常而失敗。 我已成功使用curl連接到相同的SOCKS代理,並遵循其經過身份驗證的SOCKS代理的指導。

X-AutoAuth不起作用后,我反映了一些代碼,發現這種認證機制不用於SOCKS。

不幸的是,Fiddler(和FiddlerCore)目前還不支持SOCKS5。

但是,您可以通過https://fiddler.ideas.aha.io/申請

我們遇到了類似的問題並創建了一個NuGet庫 ,它可以幫助您將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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM