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
NuGet 团队不提供对本客户端的支持。请联系其 维护者 以获取支持。
nuke :add-package dotnet-tor --version 0.5.0
NuGet 团队不提供对本客户端的支持。请联系其 维护者 以获取支持。
用法
> 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 网络上暴露它来与一个简单的回显服务进行交互。
赞助商
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.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 已计算。 |
此包没有依赖项。