TunnelForgeCoreNet 2.1.3
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package TunnelForgeCoreNet --version 2.1.3
NuGet\Install-Package TunnelForgeCoreNet -Version 2.1.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TunnelForgeCoreNet" Version="2.1.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TunnelForgeCoreNet" Version="2.1.3" />
<PackageReference Include="TunnelForgeCoreNet" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TunnelForgeCoreNet --version 2.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TunnelForgeCoreNet, 2.1.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=TunnelForgeCoreNet&version=2.1.3
#tool nuget:?package=TunnelForgeCoreNet&version=2.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
TunnelForgeCoreNet
TunnelForgeCoreNet — кроссплатформенная .NET Standard 2.1 библиотека для управления виртуальными сетевыми интерфейсами TUN/TAP на Windows и Linux. Реализует создание, чтение и запись сетевых пакетов в виртуальные интерфейсы с использованием нативных API:
- Windows — Wintun (через TunnelForge.WinTun)
- Linux — стандартный
/dev/net/tun
Возможности
- Поддержка Windows (Wintun) и Linux (TUN/TAP) с единым API.
- Создание виртуального интерфейса с произвольным именем.
- Чтение и запись сетевых пакетов через поток байтов.
- Автоматическое определение платформы и вызов соответствующего нативного кода.
- Максимальный размер пакета — 65535 байт.
- Управление жизненным циклом интерфейса (создание, закрытие).
Поддерживаемые платформы
- .NET Standard 2.1 (совместимость с .NET Core 3.x, .NET 6/7/8)
- Windows x64 (через Wintun)
- Linux amd64 (через
/dev/net/tun
)
Установка
dotnet add package TunnelForgeCoreNet
Быстрый старт
using System;
using TunnelForgeCoreNet;
class Program
{
static void Main()
{
using var tunnel = new TunnelForgeCore();
// Создаём виртуальный интерфейс с именем tun0 (на Linux) или "MyTun" (Windows)
tunnel.CreateTun("tun0");
// Читаем пакет (блокирующий вызов)
byte[]? packet = tunnel.ReadPacket();
if (packet != null)
{
Console.WriteLine($"Прочитано {packet.Length} байт");
// Обрабатываем пакет, затем можем записать обратно
tunnel.WritePacket(packet);
}
// Интерфейс автоматически закроется при Dispose
}
}
API
Метод | Описание |
---|---|
void CreateTun(string name, uint capacity = 0x100000) |
Создаёт виртуальный TUN интерфейс с заданным именем. capacity (только Windows) — размер буфера. |
byte[]? ReadPacket() |
Читает один сетевой пакет из интерфейса, возвращает массив байт или null при отсутствии данных. |
void WritePacket(ReadOnlySpan<byte> data) |
Записывает пакет в интерфейс. Размер пакета не должен превышать 65535 байт. |
void Dispose() |
Закрывает и освобождает ресурсы виртуального интерфейса. |
string? LinuxInterfaceName { get; } |
Только Linux: возвращает фактическое имя интерфейса (например, "tun0"). |
Технические детали реализации
Windows (Wintun)
- Используется библиотека TunnelForge.WinTun для взаимодействия с Wintun.
- Генерируется GUID адаптера, создаётся сессия.
- Чтение пакетов через
WintunReceivePacket
, запись черезWintunAllocateSendPacket
. - Освобождение ресурсов через
WintunEndSession
иWintunCloseAdapter
.
Linux (/dev/net/tun)
- Открывается файл
/dev/net/tun
. - Через ioctl с флагами
IFF_TUN | IFF_NO_PI
создаётся туннель с указанным именем. - Используется поток FileStream для чтения и записи байтов.
- При закрытии поток корректно освобождается.
Требования и права
- Windows: права администратора или соответствующие разрешения для создания Wintun адаптера.
- Linux: права root или CAP_NET_ADMIN для создания и управления TUN интерфейсом.
Сборка нативных компонентов
- Wintun-библиотеки и Go нативный код поставляются как отдельные зависимости (TunnelForge.WinTun для Windows).
- Linux использует стандартные системные вызовы без сторонних бинарников.
Лицензия
MIT License — полный текст доступен в файле LICENSE.txt.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- TunnelForge.WinTun (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
3.0.7 | 48 | 7/5/2025 | |
3.0.6 | 58 | 7/5/2025 | |
3.0.5 | 61 | 7/5/2025 | |
3.0.4 | 60 | 7/5/2025 | |
3.0.3 | 61 | 7/5/2025 | |
3.0.2 | 61 | 7/5/2025 | |
3.0.1 | 59 | 7/5/2025 | |
3.0.0 | 61 | 7/5/2025 | |
2.1.15 | 85 | 7/4/2025 | |
2.1.14 | 86 | 7/4/2025 | |
2.1.13 | 141 | 6/30/2025 | |
2.1.12 | 188 | 6/28/2025 | |
2.1.11 | 172 | 6/24/2025 | |
2.1.10 | 209 | 6/24/2025 | |
2.1.9 | 217 | 6/23/2025 | |
2.1.8 | 204 | 6/23/2025 | |
2.1.7 | 206 | 6/23/2025 | |
2.1.6 | 208 | 6/23/2025 | |
2.1.5 | 210 | 6/23/2025 | |
2.1.4 | 218 | 6/22/2025 | |
2.1.3 | 213 | 6/22/2025 | |
2.1.2 | 179 | 6/21/2025 | |
2.1.1 | 217 | 6/19/2025 | |
2.1.0 | 213 | 6/18/2025 |