TorSharp
TorSharp copied to clipboard
Error No such file or directory AND the destination equip expressly denied such a connection.
Hello, first of all excuse me for my English, I am trying to make a connection but I have 2 problems, first the TorData directory does not take me even creating it directly, and two my pc denies the connection. Could you give me a hand and tell me where the fault may be? Thanks in advance. This is my full code:
using Knapcode.TorSharp; using System; using System.IO; using System.Net; using System.Net.Http; using System.Threading.Tasks;
class Program { private static string logFilePath = "C:\Logs\TorErrorLog.txt"; // Ruta del archivo de registro
static async Task Main(string[] args)
{
// Configurar directorios
var zippedToolsDirectory = Path.Combine(Path.GetTempPath(), "TorZipped");
var extractedToolsDirectory = Path.Combine(Path.GetTempPath(), "TorExtracted");
var torDataDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Temp", "TorData");
// Verificar y crear directorios si no existen
EnsureDirectoryExists(zippedToolsDirectory);
EnsureDirectoryExists(extractedToolsDirectory);
EnsureDirectoryExists(torDataDirectory);
// Configurar TorSharpSettings
var settings = new TorSharpSettings
{
ZippedToolsDirectory = zippedToolsDirectory,
ExtractedToolsDirectory = extractedToolsDirectory,
TorSettings =
{
SocksPort = 1338,
ControlPort = 1339,
ControlPassword = "foobar",
DataDirectory = torDataDirectory
},
WriteToConsole = true // Habilitar registro en consola
};
// Descargar herramientas de Tor
await DownloadAndConfigureTorAsync(settings);
// Ejecutar proxy Tor y hacer una solicitud HTTP a través de Tor
await UseTorProxyAsync(settings);
}
private static async Task DownloadAndConfigureTorAsync(TorSharpSettings settings)
{
try
{
// Descargar herramientas de Tor si no están presentes
await new TorSharpToolFetcher(settings, new HttpClient()).FetchAsync();
}
catch (Exception ex)
{
Console.WriteLine($"Error al descargar herramientas de Tor: {ex.Message}");
throw;
}
}
private static async Task UseTorProxyAsync(TorSharpSettings settings)
{
var proxy = new TorSharpProxy(settings);
try
{
// Suscribirse a eventos de registro
proxy.OutputDataReceived += (sender, e) =>
{
Console.WriteLine($"[{e.ExecutablePath}] {e.Data}" + "////OutputData///");
};
proxy.ErrorDataReceived += (sender, e) =>
{
Console.Error.WriteLine($"[{e.ExecutablePath}] {e.Data}" + "////ErrorData///");
WriteToLogFile($"[{e.ExecutablePath}] {e.Data} ////ErrorData///");
};
// Configurar el cliente HTTP para usar el proxy Tor
var handler = new HttpClientHandler
{
Proxy = new WebProxy(new Uri($"socks5://localhost:{settings.TorSettings.SocksPort}")),
ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true // Bypass SSL certificate validation
};
using (handler)
using (var httpClient = new HttpClient(handler))
{
httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36");
await proxy.ConfigureAndStartAsync();
string result = await MakeRequestWithRetry(httpClient, "https://www.youtube.com/");
Console.WriteLine();
Console.WriteLine("First request:");
Console.WriteLine(result);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
WriteToLogFile($"Error en la aplicación: {ex.Message}");
}
finally
{
proxy.Stop();
}
}
private static async Task<string> MakeRequestWithRetry(HttpClient httpClient, string url, int maxRetries = 5, int initialDelay = 5000)
{
int retries = 0;
int delay = initialDelay;
while (retries < maxRetries)
{
try
{
HttpResponseMessage response = await httpClient.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
catch (HttpRequestException ex) when ((int)ex.StatusCode == 429)
{
Console.WriteLine($"Too many requests. Retrying in {delay / 1000} seconds...");
await Task.Delay(delay);
retries++;
delay *= 2; // Exponential backoff
}
catch (Exception ex)
{
throw new Exception($"Request failed: {ex.Message}");
}
}
throw new Exception("Max retries exceeded. Request failed.");
}
private static void EnsureDirectoryExists(string directoryPath)
{
if (!Directory.Exists(directoryPath))
{
try
{
Directory.CreateDirectory(directoryPath);
}
catch (Exception ex)
{
throw new Exception($"Error creating directory '{directoryPath}': {ex.Message}");
}
}
}
private static void WriteToLogFile(string message)
{
try
{
// Asegúrate de que el directorio del archivo de registro exista
string logDirectory = Path.GetDirectoryName(logFilePath);
if (!Directory.Exists(logDirectory))
{
Directory.CreateDirectory(logDirectory);
}
// Escribe el mensaje en el archivo de registro
using (StreamWriter writer = new StreamWriter(logFilePath, true))
{
writer.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - {message}");
}
}
catch (Exception ex)
{
// Manejo de errores en caso de que falle la escritura del archivo de registro
Console.WriteLine($"Error al escribir en el archivo de registro: {ex.Message}");
}
}
} and this is what the cmd is giving me: Jul 01 12:22:41.285 [notice] Tor 0.4.8.12 (git-2beaa7557c3c93ec) running on Windows 8 [or later] with Libevent 2.1.12-stable, OpenSSL 3.0.14, Zlib 1.3.1, Liblzma N/A, Libzstd N/A and Unknown N/A as libc. Jul 01 12:22:41.285 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://support.torproject.org/faq/staying-anonymous/ [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.285 [notice] Tor 0.4.8.12 (git-2beaa7557c3c93ec) running on Windows 8 [or later] with Libevent 2.1.12-stable, OpenSSL 3.0.14, Zlib 1.3.1, Liblzma N/A, Libzstd N/A and Unknown N/A as libc.////ErrorData/// [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.285 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://support.torproject.org/faq/staying-anonymous/////OutputData/// Jul 01 12:22:41.299 [notice] Read configuration file "C:\Users\David?lvarezCarri?n\AppData\Local\Temp\TorExtracted\tor-win64-13.5\data\tor\torrc". [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.299 [notice] Read configuration file "C:\Users\David?lvarezCarri?n\AppData\Local\Temp\TorExtracted\tor-win64-13.5\data\tor\torrc".////OutputData/// Jul 01 12:22:41.301 [notice] Opening Socks listener on 127.0.0.1:1338 [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [notice] Opening Socks listener on 127.0.0.1:1338////OutputData/// Jul 01 12:22:41.301 [notice] Opened Socks listener connection (ready) on 127.0.0.1:1338 [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [notice] Opened Socks listener connection (ready) on 127.0.0.1:1338////OutputData/// Jul 01 12:22:41.301 [notice] Opening Control listener on 127.0.0.1:1339 [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [notice] Opening Control listener on 127.0.0.1:1339////OutputData/// Jul 01 12:22:41.301 [notice] Opened Control listener connection (ready) on 127.0.0.1:1339 [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [notice] Opened Control listener connection (ready) on 127.0.0.1:1339////OutputData/// Jul 01 12:22:41.301 [warn] Error creating directory C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorData: No such file or directory [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [warn] Error creating directory C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorData: No such file or directory////OutputData/// Jul 01 12:22:41.301 [notice] Closing partially-constructed Socks listener connection (ready) on 127.0.0.1:1338 [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [notice] Closing partially-constructed Socks listener connection (ready) on 127.0.0.1:1338////OutputData/// Jul 01 12:22:41.301 [notice] Closing partially-constructed Control listener connection (ready) on 127.0.0.1:1339 [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [notice] Closing partially-constructed Control listener connection (ready) on 127.0.0.1:1339////OutputData/// Jul 01 12:22:41.301 [warn] Failed to parse/validate config: Couldn't create private data directory "C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorData" [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [warn] Failed to parse/validate config: Couldn't create private data directory "C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorData"////OutputData/// Jul 01 12:22:41.301 [err] Reading config failed--see warnings above. [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] Jul 01 12:22:41.301 [err] Reading config failed--see warnings above.////OutputData///
[C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] ////OutputData///
[C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\tor-win64-13.5\tor\tor.exe] ////ErrorData/// Error: Request failed: No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión. (localhost:1338)
[C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\privoxy-win32-3.0.34\privoxy.exe] ////ErrorData/// [C:\Users\DavidÁlvarezCarrión\AppData\Local\Temp\TorExtracted\privoxy-win32-3.0.34\privoxy.exe] ////OutputData///
TorZipped and TorExtractedTools are working perfect. If u need more info ask. Sorry for my English again¡ TorErrorLog.txt