dotnet-tor 0.5.0

dotnet tool install --global dotnet-tor --version 0.5.0                
此包包含一个可在 shell/命令行中调用的 .NET 工具。
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local dotnet-tor --version 0.5.0                
此包包含一个可在 shell/命令行中调用的 .NET 工具。
#tool dotnet:?package=dotnet-tor&version=0.5.0                
nuke :add-package dotnet-tor --version 0.5.0                

用法

> dotnet tor -?
tor
  Tor proxy service

Usage:
  tor [options] [command]

Options:
  -p, --proxy <proxy>      Proxy port [default: 1337]
  -s, --socks <socks>      Socks port [default: 1338]
  -c, --control <control>  Control port [default: 1339]
  --version                Show version information
  -?, -h, --help           Show help and usage information

Commands:
  add <name> <service>  Adds a service to register on the Tor network
  config                Edits the full torrc configuration file.

程序将每天自动检查更新一次,如果有新版本,则会建议更新。

配置的服务保存在全局的 dotnet-config 文件中,位于 %userprofile%\tor\.netconfig,并在首次运行(配置后)时,其 .onion 地址和密钥将在与 .netconfig 一起的子目录中可用。这允许工具在保留所有配置和服务的同时自我更新。

通过 Tor 暴露本地 HTTP API

安装后,您可能希望将 .NET Core HTTP 服务从本地端口 7071 通过 Tor 网络在端口 80 上暴露。您可以使用以下配置来配置服务:

> dotnet tor add api 127.0.0.1:7071 -p 80

然后以正常方式启动 Tor 代理:

> dotnet tor

现在将有一个包含服务 .onion 地址的 %userprofile%\tor\.netconfig\api\hostname 文件,如下所示:2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion。您现在可以通过 .NET 6 客户端本地图形式访问 web API 端点。

using System;
using System.Net;
using System.Net.Http;

var http = new HttpClient(new HttpClientHandler
{
    Proxy = new WebProxy("socks5://127.0.0.1:1338")
});

var response = await http.GetAsync("http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/[endpoint]"));

客户端只需在本地上运行另一个具有默认配置值的 dotnet-tor 代理,一切将正常工作并且正确地到达在世界任何地方运行的目标服务 😃。

您甚至可以暴露本地的 HTTPS 端点。在这种情况下,客户端需要对证书进行自定义验证(或完全跳过它),但除此之外,一切照旧工作。

服务端

> dotnet tor add api 127.0.0.1:5001 -p 443

注意,由于我们正在通过 SSL 默认端口暴露服务,我们不需要在客户端指定端口。

var http = new HttpClient(new HttpClientHandler
{
    ClientCertificateOptions = ClientCertificateOption.Manual,
    ServerCertificateCustomValidationCallback = (_, _, _, _) => true,
    Proxy = new WebProxy("socks5://127.0.0.1:1338"),
});

var response = await http.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://kbu3mvegpytu4gewdgvjae7zhrzszmetmr5jdlwk5ct5pfzlbaqbdqqd.onion")
{
    Content = new StringContent("Hello World!")
});

response.EnsureSuccessStatusCode();

您可以通过安装 dotnet-echo 工具并在 Tor 网络上暴露它来与一个简单的回显服务进行交互。

赞助商

Clarius Org Kirill Osenkov MFB Technologies, Inc. Stephen Shaw Torutek DRIVE.NET, Inc. Daniel Gnägi Ashley Medway Keith Pickford Thomas Bolon Kori Francis Toni Wenzel Giorgi Dalakishvili Mike James Dan Siegel Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson Norman Mackay Certify The Web Rich Lee alternate text is missing from this package README image Ix Technologies B.V. David JENNI Jonathan Oleg Kyrylchuk Mariusz Kogut Charley Wu Jakob Tikjøb Andersen Seann Alexander Tino Hager Mark Seemann Angelo Belchior Blauhaus Technology (Pty) Ltd Ken Bonny Simon Cropp agileworks-eu alternate text is missing from this package README image alternate text is missing from this package README image

Sponsor this project  

了解有关 GitHub Sponsors 的更多信息

产品 兼容和额外的计算目标框架版本。
.NET net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容目标框架
包含目标框架(在包中)
了解更多有关 目标框架.NET Standard 的信息。

此包没有依赖项。

版本 下载 最后更新
0.5.0 375 10/31/2023
0.4.1 581 2/12/2022
0.4.0 439 8/16/2021
0.3.3 479 5/19/2021
0.3.2 356 5/19/2021
0.3.1 369 5/19/2021
0.3.0 383 5/19/2021
0.2.0 295 5/19/2021