织梦CMS - 轻松建站从此开始!

欧博ABG官网-欧博官方网址-会员登入

windows10实现带宽叠加的3种方法

时间:2026-02-11 03:53来源: 作者:admin 点击: 4 次
文章浏览阅读2.5k次,点赞5次,收藏6次。windows带宽叠加_win10双网卡网速叠加

目录

3种方法介绍

电脑有两个无线网卡,还有几个手机接上开usb网络,结果发现下载东西时只能用一个。

    看了一圈方法大概就是①cmd设置 InterfaceMetric(接口跃点数)、②powershell使用NetSwitchTeam命令创建创建一个网络交换机组,把所有网卡扔进去、③使用 Connectify Dispatch软件。

Connectify Installer软件

    软件网上可以收到 po解 的橙色版本Connectify Installer (7.3.0.30245).exe,确实可以实现同时使用多个网络。但是在我电脑上实际使用之后发现:不能吃满每个网络的带宽;只看最大值确实可以,把实验室的网络叠加峰值到50Mbps,细看速率图,结果发现是和心电图似的上蹦下跳,隔一段时间还会随机断流一下,平均下来还不如单个网卡的速率,用下来还不如不用。

     软件如果要用的话,设置要改一下才能用,不然就是 断流 或者 只有一个网卡工作,高级设置那里提示覆盖dns最好是不要开

988991095273483488277152d9947375.png

netsh 命令设置跃点数

设置跃点数可以使用bat脚本实现(需要管理员)

需要 自动 递增/递减 设置跃点数可以使用第二个脚本。如果网卡过多 递增/递减 的跨度要缩小 或者 添加辅助 变量 和 一些 if语句 限制 递增/递减的跨度在一个 区间 之内,防止设置的跃点数 过大 或 小于零。

辅助变量及变量限制语句示例

    :: 增加跃点数
    set /a metricF+=5
    set /a metric-=metricF

    :: 如果 metricF 大于 20,则重新设置为 5
    if !metricF! gtr 19 (
        set metricF=5
    )
    :: 确保 metric 的最小值为 25
    if !metric! lss 25 (
        set metric=25
    )
    :: 如果 metric 大于 85,则设置为 85
    if !metric! gtr 84 (
        set metric=85
    )

bat脚本1

@echo off
setlocal enabledelayedexpansion

:: 获取所有网卡的名称
for /f "tokens=*" %%a in ('netsh interface ip show config ^| findstr "接口"') do (
    echo %%a
    set "interface=%%a"
    echo interface=!interface!
    set "interface=!interface:接口 =!"
    set "interface=!interface: 的配置=!"
    echo interface=!interface!
    set "interface=!interface:"=!"
    echo interface=!interface!

    :: 设置跃点数(Metric)
    echo 设置跃点数...
    netsh interface ip set interface "!interface!" metric=20
    echo 设置跃点数完成。
    echo.

)
echo 所有网卡的跃点数设置完成。
pause

bat脚本2

补充一个可以递减/递增设置跃点数的代码。

     set /a metric-=1,根据自己所需改一下符号 ,实现递增/递减 设置跃点数。设置一样的跃点数直接改为0就好。网上有些教程是全部设置为1,但这样有时候会用不了,或者断流、速度上不去。跃点数的取值是1~9999,正常来说设置 20~50 左右就行,但有些情况下设置一个比较大的数值才行。

    比如我使用 NetSwitchTeam 创建交换机组合之后,多个网卡会合并成一个虚拟的 “以太网” 网卡。此时该网络的默认的 网关跃点数是比较大的 256 。这时候设置 跃点数(接口)为 1 会断流,需要设置大一点的数值,后来随便输入了个 7777 设置上速度就跑上去了。

     其他情况可以自行修改代码测试。

@echo off
setlocal enabledelayedexpansion

:: 初始化跃点数
set /a metric=10

:: 获取所有网卡的名称
for /f "tokens=*" %%a in ('netsh interface ip show config ^| findstr "接口"') do (
    echo %%a
    set "interface=%%a"
    echo interface=!interface!
    set "interface=!interface:接口 =!"
    set "interface=!interface: 的配置=!"
    echo interface=!interface!
    set "interface=!interface:"=!"
    echo interface=!interface!

    :: 设置跃点数(Metric)
    echo 设置跃点数为 !metric! ...
    netsh interface ip set interface "!interface!" metric=!metric!
    echo 设置跃点数完成。
    echo.

    :: 递增/递减跃点数
    set /a metric-=1
)

echo 所有网卡的跃点数设置完成。

netsh interface ip show config
pause

46a1b9e0058141918e0917b6d327ce6f.png

网上一些教程是用的route print 命令打印信息查看设置的跃点数,但我不推荐这个方法。因为我发现route print 命令打印出来的跃点数一些显示的是 网关跃点数  和  接口跃点数  相加的结果,而有些则是  接口跃点数 。我一开始用route print打印信息看到和我脚本设置的值不一样,弄半天才发现是这么个情况。

两个命令打印的信息对比如下:

netsh interface ip show config | findstr "接口" 命令打印的信息:

2a46ec140f3e44799a448c96e51fe204.png

route print 命令打印的信息:

3faf385b710742f78e7c29e42519baac.png

使用PowerShell中的NetSwitchTeam  命令实现

NetSwitchTeam  命令创建网络交换机团队

     脚本在下面贴出来了。报错可以尝试第二个添加了报错处理:  “自动 禁用-启用 无法添加到交换机组合”  的脚本

create_network_team.ps1脚本(需要管理员),这个方法添加之后会断网一会,然后就是 我的状态栏网速实时显示就用不了了,因为无法选中交换机组作为监测对象。所以我本人不推荐 -,-

此外我还新建了一个bat脚本用来 使用管理员 运行ps1脚本,因为我的右键菜单只有 右键单击bat文件时才会显示一个管理员运行。本来想通过创建 快捷方式 来实现管理员运行ps1脚本,点进去发现管理员运行选项是灰色的无法选中。。。

cf593d010f4d4b80bd6c19797c8643cc.png

0c66bb4313f14b2da212c00c052985fd.png

@echo off
PowerShell -NoProfile -ExecutionPolicy Bypass -File "C:\Users\long\Desktop\create_network_team.ps1"

a1683444b9fa4d84b7b0e8a7fdc1ecbe.png

58a165f17c5f47f186b3a4a0a0fa37dc.png

ps1脚本1

# 设置团队名称
$teamName = "SwitchTeam01"
Write-Host "团队名称设置为:$teamName"

# 检查是否存在旧的网络团队
$existingTeam = Get-NetSwitchTeam -Name $teamName -ErrorAction SilentlyContinue
if ($existingTeam) {
    # 删除旧的网络团队
    Write-Host "删除旧的网络团队..."
    Remove-NetSwitchTeam -Name $teamName
    for ($i = 2; $i -gt 0; $i--) {
    Write-Host "删除完成!将在 $i 秒后开始创建"
    Start-Sleep -s 1
}
}

# 获取网卡列表
Write-Host "获取网卡列表..."
$adapters = Get-NetAdapter

# 找到状态为 Up 的网卡
$upAdapters = $adapters | Where-Object { $_.Status -eq "Up" }
if ($upAdapters.Count -gt 0) {
    $firstAdapter = $upAdapters[0]
    try {
        New-NetSwitchTeam -Name $teamName -TeamMembers $firstAdapter.Name -ThrottleLimit 3
        Write-Host "New-NetSwitchTeam创建网络团队,第一个添加网卡:$( $firstAdapter.Name)"
    } catch {
        Write-Host "创建网络团队时出错:$($_.Exception.Message)"
    }

    # 存储未成功添加的网卡
    $failedAdapters = @()

    foreach ($adapter in $upAdapters) {
        if ($adapter.Name -ne $firstAdapter.Name) {
            Write-Host "添加网卡:$($adapter.Name)"
            try {
                # 检查网卡是否已经是团队成员
                $isMember = Get-NetSwitchTeamMember -Team $teamName -ErrorAction SilentlyContinue | Where-Object { $_.Name -eq $adapter.Name }
                if (-not $isMember) {
                    # 尝试添加网卡,强制捕获错误
                    Add-NetSwitchTeamMember -Team $teamName -Name $adapter.Name -ErrorAction Stop
                    Write-Host "成功添加网卡:$($adapter.Name)"
                } else {
                    Write-Host "网卡 $($adapter.Name) 已经是团队成员,跳过添加。"
                }
            } catch {
                # 特殊处理特定错误
                if ($_.Exception.Message -like "*已保留的名称*") {
                    Write-Host "无法添加网卡 $($adapter.Name):该名称已被保留。"
                } else {
                    Write-Host "Add-NetSwitchTeamMember方法添加网卡时出错:$($_.Exception.Message)"
                }
                # 记录未成功添加的网卡
                $failedAdapters += $adapter.Name
            }
        }
    }

    # 如果有未成功添加的网卡,输出信息
    if ($failedAdapters.Count -gt 0) {
        Write-Host "未成功添加的网卡:$($failedAdapters -join ', ')"
    }
} else {
    Write-Host "没有找到状态为 'Up' 的网卡,无法创建网络团队。"
}

# 显示网络团队信息
Write-Host "显示网络团队信息..."
Get-NetSwitchTeam -Name "SwitchTeam01"
for ($i = 3; $i -gt 0; $i--) {
    Write-Host "将在 $i 秒后退出..."
    Start-Sleep -s 1
}
PAUSE

usb共享的网卡添加报错可以试试 重新插拔 或者 重新执行脚本,报错大致如下:

Add-NetSwitchTeamMember : 该函数尝试使用为让另一事务使用而保留的名称。
所在位置 C:\Users\long\Desktop\create_network_team.ps1:43 字符: 21
+ ...             Add-NetSwitchTeamMember -Team $teamName -Name $adapter.Na ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (MSFT_NetSwitchTeam:root\StandardCimv2\MSFT_NetSwitchTeam) [Add-NetSwitchT
   eamMember], CimException
    + FullyQualifiedErrorId : Windows System Error -2147018096,Add-NetSwitchTeamMember

网卡添加报错也尝试以下代码,在原来的基础上添加了 网卡添加报错自动 禁用-启用 并重新尝试添加的操作。目前在我电脑上 问题复现 可以正常添加。

ab56417cea58416594069367d00b7a57.png

ps1脚本2

# 设置团队名称
$teamName = "SwitchTeam01"
Write-Host "团队名称设置为:$teamName"

# 检查是否存在旧的网络团队
$existingTeam = Get-NetSwitchTeam -Name $teamName -ErrorAction SilentlyContinue
if ($existingTeam) {
    # 删除旧的网络团队
    Write-Host "删除旧的网络团队..."
    Remove-NetSwitchTeam -Name $teamName
    for ($i = 2; $i -gt 0; $i--) {
        Write-Host "删除完成!将在 $i 秒后开始创建"
        Start-Sleep -s 1
    }
}

# 获取网卡列表
Write-Host "获取网卡列表..."
$adapters = Get-NetAdapter

# 找到状态为 Up 的网卡
$upAdapters = $adapters | Where-Object { $_.Status -eq "Up" }
if ($upAdapters.Count -gt 0) {
    $firstAdapter = $upAdapters[0]
    try {
        New-NetSwitchTeam -Name $teamName -TeamMembers $firstAdapter.Name -ThrottleLimit 3
        Write-Host "New-NetSwitchTeam创建网络团队,第一个添加网卡:$( $firstAdapter.Name)"
    } catch {
        Write-Host "创建网络团队时出错:$($_.Exception.Message)"
    }

    # 存储未成功添加的网卡
    $failedAdapters = @()
    $reservedAdapters = @()

    foreach ($adapter in $upAdapters) {
        if ($adapter.Name -ne $firstAdapter.Name) {
            Write-Host "添加网卡:$($adapter.Name)"
            try {
                # 检查网卡是否已经是团队成员
                $isMember = Get-NetSwitchTeamMember -Team $teamName -ErrorAction SilentlyContinue | Where-Object { $_.Name -eq $adapter.Name }
                if (-not $isMember) {
                    # 尝试添加网卡,强制捕获错误
                    Add-NetSwitchTeamMember -Team $teamName -Name $adapter.Name -ErrorAction Stop
                    Write-Host "成功添加网卡:$($adapter.Name)"
                } else {
                    Write-Host "网卡 $($adapter.Name) 已经是团队成员,跳过添加。"
                }
            } catch {
                        if ($_.Exception.Message -like "*为让另一事务使用而保留的名称*") {
                            Write-Host "无法添加网卡 $($adapter.Name):该名称已被保留。"
                            $reservedAdapters += $adapter.Name
        
                            # 禁用网卡
                            Disable-NetAdapter -Name $adapter.Name -Confirm:$false
                            Start-Sleep -s 2  # 等待几秒钟
        
                            # 启用网卡
                            Enable-NetAdapter -Name $adapter.Name -Confirm:$false
                            Write-Host "网卡 $($adapter.Name) 已被禁用并重新启动。"
        
                            # 再次尝试添加网卡
                            try {
                                Add-NetSwitchTeamMember -Team $teamName -Name $adapter.Name -ErrorAction Stop
                                Write-Host "二次尝试成功添加网卡:$($adapter.Name)"
                            } catch {
                                Write-Host "再次尝试添加网卡时出错:$($_.Exception.Message)"
                                # 记录未成功添加的网卡
                                $failedAdapters += $adapter.Name
                            }
                        } else {
                            Write-Host "Add-NetSwitchTeamMember方法添加网卡时出错:$($_.Exception.Message)"
                            # 记录未成功添加的网卡
                            $failedAdapters += $adapter.Name
                        }
                    }
        }
    }

    # 如果有未成功添加的网卡,输出信息
    if ($failedAdapters.Count -gt 0) {
        Write-Host "未成功添加的网卡:$($failedAdapters -join ', ')"
    }
    if ($reservedAdapters.Count -gt 0) {
        Write-Host "被保留的网卡:$($reservedAdapters -join ', ')"
    }
} else {
    Write-Host "没有找到状态为 'Up' 的网卡,无法创建网络团队。"
}

# 显示网络团队信息
Write-Host "显示网络团队信息..."
Get-NetSwitchTeam -Name "SwitchTeam01"
for ($i = 3; $i -gt 0; $i--) {
    Write-Host "将在 $i 秒后退出..."
    Start-Sleep -s 1
}
EXIT

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2026-02-12 16:02 最后登录:2026-02-12 16:02
栏目列表
推荐内容