TunnelForgeCoreNet 3.0.5
See the version list below for details.
dotnet add package TunnelForgeCoreNet --version 3.0.5
NuGet\Install-Package TunnelForgeCoreNet -Version 3.0.5
<PackageReference Include="TunnelForgeCoreNet" Version="3.0.5" />
<PackageVersion Include="TunnelForgeCoreNet" Version="3.0.5" />
<PackageReference Include="TunnelForgeCoreNet" />
paket add TunnelForgeCoreNet --version 3.0.5
#r "nuget: TunnelForgeCoreNet, 3.0.5"
#:package TunnelForgeCoreNet@3.0.5
#addin nuget:?package=TunnelForgeCoreNet&version=3.0.5
#tool nuget:?package=TunnelForgeCoreNet&version=3.0.5
TunnelForgeCoreNet
Поддерживаемые языки / Supported languages / Unterstützte Sprachen / 支持的语言:
Русский
TunnelForgeCoreNet — это кроссплатформенная библиотека на .NET Standard 2.1 для работы с виртуальными сетевыми интерфейсами TUN/TAP в Windows и Linux. Она предоставляет единый удобный API для создания, управления и настройки туннелей VPN, позволяя читать и записывать сетевые пакеты с минимальными усилиями.
Быстрый обзор
- AdapterManagerBuilder — класс-конструктор для создания и настройки менеджера туннельного адаптера.
- ITunAdapterManager — интерфейс управления жизненным циклом туннельного адаптера и передачей пакетов.
- NetworkConfigurator — набор высокоуровневых методов для настройки сетевого окружения VPN-клиента и сервера.
Детали и возможности
1. AdapterManagerBuilder — просто создать адаптер
Удобный билдер для задания имени интерфейса и размера буфера.
Пример:
var adapterManager = new AdapterManagerBuilder()
.WithName("tun0")
.WithCapacity(1024 * 1024)
.Build();
2. ITunAdapterManager — управляй туннелем
Основные методы и события:
event Action<byte[]> OnPacketReceived
byte[]? ReadPacket()
Task<byte[]?> ReadPacketAsync(CancellationToken)
void WritePacket(ReadOnlySpan<byte>)
Task WritePacketAsync(ReadOnlyMemory<byte>, CancellationToken)
Task StartReceivingAsync(CancellationToken)
void StopReceiving()
bool IsRunning
3. NetworkConfigurator — настройка сети VPN
- Клиентская настройка: IP, поднятие интерфейса, маршрут по умолчанию.
- Серверная настройка: IP внешнего интерфейса, IP-форвардинг, NAT.
Пример клиента:
await NetworkConfigurator.ConfigureClientSideAsync(
iface: "tun0",
ip: "10.0.0.2",
prefixLength: 24,
serverTunnelIp: "10.0.0.1"
);
Пример сервера:
await NetworkConfigurator.ConfigureServerSideAsync(
externalIface: "eth0",
externalIp: "192.168.1.10",
externalPrefix: 24,
internalIface: "tun0"
);
Важные замечания
- Поддержка только Windows и Linux.
- Необходимы права администратора.
- Управляйте жизненным циклом адаптера.
English
TunnelForgeCoreNet is a cross-platform .NET Standard 2.1 library for working with virtual TUN/TAP network interfaces on Windows and Linux. It provides a unified and convenient API for creating, managing, and configuring VPN tunnels, enabling easy reading and writing of network packets.
Quick overview
- AdapterManagerBuilder — builder class to create and configure a tunnel adapter manager.
- ITunAdapterManager — interface for managing tunnel lifecycle and packet transmission.
- NetworkConfigurator — high-level methods for VPN client/server network configuration.
Features
1. AdapterManagerBuilder — easy adapter creation
Example:
var adapterManager = new AdapterManagerBuilder()
.WithName("tun0")
.WithCapacity(1024 * 1024)
.Build();
2. ITunAdapterManager — manage your tunnel
Main members:
event Action<byte[]> OnPacketReceived
byte[]? ReadPacket()
Task<byte[]?> ReadPacketAsync(CancellationToken)
void WritePacket(ReadOnlySpan<byte>)
Task WritePacketAsync(ReadOnlyMemory<byte>, CancellationToken)
Task StartReceivingAsync(CancellationToken)
void StopReceiving()
bool IsRunning
3. NetworkConfigurator — VPN network setup
- Client setup: assign IP, bring interface UP, add default route.
- Server setup: assign IP to external iface, enable IP forwarding, configure NAT.
Client example:
await NetworkConfigurator.ConfigureClientSideAsync(
iface: "tun0",
ip: "10.0.0.2",
prefixLength: 24,
serverTunnelIp: "10.0.0.1"
);
Server example:
await NetworkConfigurator.ConfigureServerSideAsync(
externalIface: "eth0",
externalIp: "192.168.1.10",
externalPrefix: 24,
internalIface: "tun0"
);
Important notes
- Supported platforms: Windows and Linux only.
- Administrator privileges required.
- Proper lifecycle management of the adapter is necessary.
Deutsch
TunnelForgeCoreNet ist eine plattformübergreifende .NET Standard 2.1-Bibliothek zur Arbeit mit virtuellen TUN/TAP-Netzwerkschnittstellen unter Windows und Linux. Sie bietet eine einheitliche und einfache API zum Erstellen, Verwalten und Konfigurieren von VPN-Tunneln, mit der Sie Netzwerkpakete einfach lesen und schreiben können.
Kurzübersicht
- AdapterManagerBuilder — Builder-Klasse zum Erstellen und Konfigurieren eines Tunnel-Adapter-Managers.
- ITunAdapterManager — Schnittstelle zur Verwaltung des Tunnel-Lebenszyklus und der Paketübertragung.
- NetworkConfigurator — Hochrangige Methoden zur VPN-Client-/Server-Netzwerkkonfiguration.
Funktionen
1. AdapterManagerBuilder — einfacher Adapteraufbau
Beispiel:
var adapterManager = new AdapterManagerBuilder()
.WithName("tun0")
.WithCapacity(1024 * 1024)
.Build();
2. ITunAdapterManager — Tunnelverwaltung
Wichtige Mitglieder:
event Action<byte[]> OnPacketReceived
byte[]? ReadPacket()
Task<byte[]?> ReadPacketAsync(CancellationToken)
void WritePacket(ReadOnlySpan<byte>)
Task WritePacketAsync(ReadOnlyMemory<byte>, CancellationToken)
Task StartReceivingAsync(CancellationToken)
void StopReceiving()
bool IsRunning
3. NetworkConfigurator — VPN-Netzwerkeinrichtung
- Client: IP zuweisen, Interface hochfahren, Standardroute hinzufügen.
- Server: IP externer Schnittstelle zuweisen, IP-Forwarding aktivieren, NAT konfigurieren.
Client-Beispiel:
await NetworkConfigurator.ConfigureClientSideAsync(
iface: "tun0",
ip: "10.0.0.2",
prefixLength: 24,
serverTunnelIp: "10.0.0.1"
);
Server-Beispiel:
await NetworkConfigurator.ConfigureServerSideAsync(
externalIface: "eth0",
externalIp: "192.168.1.10",
externalPrefix: 24,
internalIface: "tun0"
);
Wichtige Hinweise
- Unterstützte Plattformen: Nur Windows und Linux.
- Administratorrechte erforderlich.
- Lebenszyklus des Adapters korrekt verwalten.
简体中文
TunnelForgeCoreNet 是一个基于 .NET Standard 2.1 的跨平台库,用于在 Windows 和 Linux 上操作虚拟 TUN/TAP 网络接口。它提供了统一且方便的 API,用于创建、管理和配置 VPN 隧道,轻松读取和写入网络数据包。
快速概览
- AdapterManagerBuilder — 用于创建和配置隧道适配器管理器的构建类。
- ITunAdapterManager — 管理隧道生命周期和数据包传输的接口。
- NetworkConfigurator — 用于 VPN 客户端/服务器网络配置的高级方法集。
功能详情
1. AdapterManagerBuilder — 简单创建适配器
示例:
var adapterManager = new AdapterManagerBuilder()
.WithName("tun0")
.WithCapacity(1024 * 1024)
.Build();
2. ITunAdapterManager — 管理隧道
主要成员:
event Action<byte[]> OnPacketReceived
byte[]? ReadPacket()
Task<byte[]?> ReadPacketAsync(CancellationToken)
void WritePacket(ReadOnlySpan<byte>)
Task WritePacketAsync(ReadOnlyMemory<byte>, CancellationToken)
Task StartReceivingAsync(CancellationToken)
void StopReceiving()
bool IsRunning
3. NetworkConfigurator — VPN 网络配置
- 客户端配置:分配 IP,启用接口,添加默认路由。
- 服务器配置:为外部接口分配 IP,启用 IP 转发,配置 NAT。
客户端示例:
await NetworkConfigurator.ConfigureClientSideAsync(
iface: "tun0",
ip: "10.0.0.2",
prefixLength: 24,
serverTunnelIp: "10.0.0.1"
);
服务器示例:
await NetworkConfigurator.ConfigureServerSideAsync(
externalIface: "eth0",
externalIp: "192.168.1.10",
externalPrefix: 24,
internalIface: "tun0"
);
重要注意事项
- 仅支持 Windows 和 Linux。
- 需要管理员权限。
- 需正确管理适配器生命周期。
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 is compatible. 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 is compatible. 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 is compatible. |
.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. |
-
.NETCoreApp 3.1
- TunnelForge.WinTun (>= 3.0.2)
-
.NETStandard 2.1
- TunnelForge.WinTun (>= 3.0.2)
-
net5.0
- TunnelForge.WinTun (>= 3.0.2)
-
net6.0
- TunnelForge.WinTun (>= 3.0.2)
-
net7.0
- TunnelForge.WinTun (>= 3.0.2)
-
net8.0
- TunnelForge.WinTun (>= 3.0.2)
-
net9.0
- TunnelForge.WinTun (>= 3.0.2)
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 | 70 | 7/5/2025 | |
3.0.6 | 86 | 7/5/2025 | |
3.0.5 | 90 | 7/5/2025 | |
3.0.4 | 87 | 7/5/2025 | |
3.0.3 | 88 | 7/5/2025 | |
3.0.2 | 86 | 7/5/2025 | |
3.0.1 | 85 | 7/5/2025 | |
3.0.0 | 89 | 7/5/2025 | |
2.1.15 | 111 | 7/4/2025 | |
2.1.14 | 109 | 7/4/2025 | |
2.1.13 | 161 | 6/30/2025 | |
2.1.12 | 205 | 6/28/2025 | |
2.1.11 | 187 | 6/24/2025 | |
2.1.10 | 220 | 6/24/2025 | |
2.1.9 | 231 | 6/23/2025 | |
2.1.8 | 216 | 6/23/2025 | |
2.1.7 | 217 | 6/23/2025 | |
2.1.6 | 219 | 6/23/2025 | |
2.1.5 | 221 | 6/23/2025 | |
2.1.4 | 231 | 6/22/2025 | |
2.1.3 | 224 | 6/22/2025 | |
2.1.2 | 190 | 6/21/2025 | |
2.1.1 | 229 | 6/19/2025 | |
2.1.0 | 225 | 6/18/2025 |
EN:
- Fixed incorrect parsing of Linux route entries in ListRoutesAsync (LinuxNetworkContext).
- Added explicit await and async use for RestoreRoutesAsync to avoid deadlocks and improve correctness.
- Replaced deprecated synchronous .Result call with async/await in BackupRoutesAsync for better stability.
- Improved compatibility with newer iproute2 output formats (Linux).
- Fixed detection of metric field when not present.
- Improved error reporting for ip and iptables command failures.
RU:
- Исправлен парсинг маршрутов в LinuxNetworkContext (ListRoutesAsync), некорректная обработка вывода `ip route`.
- Реализован полноценный async/await в методе RestoreRoutesAsync, устранена потенциальная блокировка потока.
- В методе BackupRoutesAsync устранён вызов .Result, заменён на async/await — улучшена стабильность.
- Повышена совместимость с новыми версиями iproute2 (формат вывода ip route).
- Исправлена логика обработки отсутствующего метрика в маршрутах.
- Улучшена диагностика ошибок при выполнении ip и iptables команд.
DE:
- Fehlerhafte Verarbeitung von Linux-Routen in ListRoutesAsync (LinuxNetworkContext) behoben.
- RestoreRoutesAsync verwendet nun korrekt async/await zur Vermeidung von Deadlocks.
- Ersetzung von .Result durch async/await in BackupRoutesAsync zur Verbesserung der Stabilität.
- Kompatibilität mit neueren iproute2-Ausgabeformaten verbessert.
- Korrektur beim Erkennen des Metrik-Feldes bei dessen Abwesenheit.
- Verbesserte Fehlerberichte bei ip- und iptables-Befehlen.
CN:
- 修复了 LinuxNetworkContext 中 ListRoutesAsync 方法错误解析 `ip route` 输出的问题。
- RestoreRoutesAsync 现在完全异步,避免死锁风险。
- BackupRoutesAsync 中 .Result 被 async/await 替代,提高稳定性。
- 提高对新版 iproute2 输出格式的兼容性。
- 修复了未指定 metric 时的默认处理逻辑。
- 改进了对 ip 和 iptables 命令失败时的错误提示。