You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中使用DOTRAS断开已成功连接的VPN?

使用DotRAS库实现VPN断开操作

嘿,很高兴看到你的VPN连接已经成功跑起来了!要实现不删除条目的断开操作其实很简单,DotRAS库提供了专门管理活跃连接的API,完全不用动你之前创建的VPN配置。下面是具体的实现方案:

核心思路

通过RasConnection类获取系统中当前活跃的VPN连接,筛选出你目标的连接实例,调用断开方法即可——这个操作只会终止当前会话,保留你之前创建的VPN条目。

完整代码示例

using DotRas;
using System.Linq;

// 替换成你创建时的VPN名称
string targetVpnName = "Test1";

// 获取所有当前活跃的RAS连接
var activeConnections = RasConnection.GetActiveConnections();

// 筛选出我们要断开的目标VPN连接
var vpnConnection = activeConnections.FirstOrDefault(conn => conn.EntryName == targetVpnName);

if (vpnConnection != null)
{
    try
    {
        // 同步断开连接(也可以用异步版本DisconnectAsync)
        vpnConnection.Disconnect();
        Console.WriteLine("VPN已成功断开");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"断开VPN时发生错误:{ex.Message}");
    }
}
else
{
    Console.WriteLine("未找到当前活跃的目标VPN连接");
}

额外说明

  • 如果你需要异步处理断开操作,可以使用await vpnConnection.DisconnectAsync();,记得将包含该代码的方法标记为async
  • 该操作仅终止当前VPN会话,不会删除你之前添加到电话簿的VpnEntry条目,后续仍可直接使用该条目重新发起连接
  • 确保你的项目已正确引用DotRAS库,并且代码中包含using DotRas;命名空间

内容的提问来源于stack exchange,提问作者Bella Swan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:24:34