多埠網卡(4-Port PCIe NIC)順序變化與IP設定錯亂問題解決方案

問題說明

說明:此問題為作業系統與主機板初始化順序造成,非硬體故障,屬於已知限制。

 

問題背景補充

   Windows 在開機時會根據網卡硬體的識別順序來分配名稱(如 Ethernet、Ethernet 2...)。

   同一張多埠網卡在不同主機板上插槽、或者 PCIe 初始化順序變更時,Windows 可能會重新排序介面,造成設定亂掉。

   所以需依據**MAC 地址(唯一不變)**來設定固定 IP 或辨識。

 

當使用多埠網路卡(如 2/4 Port PCIe 網卡)時,某些主機板與 Windows 系統可能出現以下狀況:

  • 開機後網路卡的順序編號變化(例如 LAN1 ➜ LAN3)
  • 導致原本設定好的 IP 配置錯亂,導致網路連線失敗
  • 發生於多埠卡採用獨立通道設計時,Windows 根據初始化順序分配名稱與順序
 
 

解決方法

一:使用 DHCP 並搭配 MAC 地址預設 IP 分配

 

在 DHCP 伺服器中,為每個網卡的 MAC 位址 指定固定的 IP 位址。

  • 穩定性最高
  • 集中管理
  • 適合企業或有 DHCP 管理設備的環境

     

適用情境: 若你網路架構允許使用 DHCP 自動分配,這是最簡單穩定的方式。
步驟:

 1.  控制台 ➜ 網路和共用中心 ➜ 更改介面卡設定。

 2.  找到你的每個網卡(如 Ethernet、Ethernet 2...)。

 3.  右鍵 ➜ 內容 ➜ Internet 協定版本 4 (TCP/IPv4) ➜ 設定為「自動獲取 IP」。

 4.  確保 DHCP Server(如路由器、企業 DHCP 伺服器)有做 MAC 對應固定 IP 分配(可選)。

 5.  測試:重開機,確認每次網卡順序變更時仍可獲得正確 IP。

 

 

 

二:開機後自動根據 MAC 地址設定固定 IP

 

適用情境: 需要固定 IP,但不想受介面名稱變動影響。


實現方式:使用 Windows 批次檔 (.bat) 搭配 netsh 指令

 

步驟一:查出每個介面的 MAC 地址

 

   打開命令提示字元(cmd)輸入:

 

getmac /v

 

記錄下各個網卡的 MAC 地址與目前名稱(如 Ethernet、Ethernet 2...)

 

步驟二:編寫批處理腳本

 

建立一個 .bat 批次檔,範例如下:

 

@echo off
setlocal

REM 根據 MAC 指定對應 IP 設定
for /f "tokens=1,2 delims=," %%A in ('"wmic nic where (NetEnabled=true) get MACAddress,NetConnectionID /format:csv"') do (

   REM 第一張卡
   if /I "%%B"=="00:11:22:33:44:55" (
       netsh interface ip set address name="%%C" static 192.168.1.10 255.255.255.0 192.168.1.1
   )

   REM 第二張卡
   if /I "%%B"=="00:11:22:33:44:66" (
       netsh interface ip set address name="%%C" static 192.168.1.11 255.255.255.0 192.168.1.1
   )

)

endlocal

 

說明:

   %%B 是 MAC 地址,%%C 是介面名稱。

   替換為你實際的 MAC 與希望設定的 IP。

 

可以根據需要設定 DNS,如:

netsh interface ip set dns name="%%C" static 8.8.8.8

 

步驟三:自動化執行

 

   將 .bat 檔放在固定路徑,如:C:\SetIP\set_ip.bat

   用「工作排程器(Task Scheduler)」建立一個開機後自動執行的任務。

       觸發條件:開機時執行。

       執行帳戶:系統帳戶或具管理員權限。

       設定「使用最高權限執行」。

       動作:執行 C:\SetIP\set_ip.bat

 

  1. 建立批次檔(範例)
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=," %%A in ('"wmic nic where (NetEnabled=true) get MACAddress,NetConnectionID /format:csv"') do (
    set "MAC=%%B"
    set "IFACE=%%C"
    if /I "!MAC!"=="00:11:22:33:44:01" (
        netsh interface ip set address name="!IFACE!" static 192.168.1.101 255.255.255.0 192.168.1.1
    )
    if /I "!MAC!"=="00:11:22:33:44:02" (
        netsh interface ip set address name="!IFACE!" static 192.168.1.102 255.255.255.0 192.168.1.1
    )
    if /I "!MAC!"=="00:11:22:33:44:03" (
        netsh interface ip set address name="!IFACE!" static 192.168.1.103 255.255.255.0 192.168.1.1
    )
    if /I "!MAC!"=="00:11:22:33:44:04" (
        netsh interface ip set address name="!IFACE!" static 192.168.1.104 255.255.255.0 192.168.1.1
    )
)
endlocal

 

請根據實際 MAC 位址與期望 IP 進行修改。

  1. 設為開機自動執行
  • 使用「工作排程器」建立任務,在電腦開機時執行批次檔(需勾選「使用最高權限執行」)
  • 或將批次檔放入 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 資料夾中

     

 

 

無法解決的根本原因(為什麼介面編號會變)

Windows 的介面名稱(如 Ethernet、Ethernet 2)會根據內部 PnP ID 與插槽變動。只要網卡重新註冊或主機板順序變,名稱就可能變。因此「杜絕介面順序變動」目前沒有穩定可靠的方式。

 

問題無法解決的限制

目前無任何方式可完全禁止 Windows 改變網卡順序編號。此問題源自 BIOS 與 Windows 裝置管理機制。

我們已與 ASMEDIA 及其他晶片原廠多次確認,為系統層級限制。

 

聯絡我們

若您在設定過程中有任何疑問,歡迎聯絡我們技術支援部門,我們將提供進一步協助。

4端口網卡固定IP設定教學手冊

文件資訊

文件版本V1.0
適用系統Windows 10/11
適用硬體多端口網卡(4端口)
最後更新2023年11月

目錄

  1. 準備工作
  2. 獲取MAC地址
  3. 創建批次處理腳本
  4. 配置腳本參數
  5. 測試腳本
  6. 設置開機啟動
  7. 驗證配置
  8. 常見問題解答

1. 準備工作

所需工具

  • 管理員權限的Windows帳戶
  • 文字編輯器(記事本即可)
  • 4端口網卡已正確安裝

網路資訊準備

請準備以下資訊(範例):

端口用途計劃IP地址子網掩碼閘道DNS1DNS2
端口1主網路192.168.1.101255.255.255.0192.168.1.18.8.8.88.8.4.4
端口2備用網路192.168.1.102255.255.255.0192.168.1.1同上同上
端口3監控網路192.168.2.101255.255.255.0192.168.2.1同上同上
端口4保留DHCP----

2. 獲取MAC地址步驟

圖文步驟

  1. 按下Win + R
  2. 輸入cmd按Enter
  3. 在命令提示字元中輸入:

    getmac /v /fo list
  4. 記錄輸出結果(範例):

    連接名:        乙太網路
    網路介面卡:    Intel I350-T4 #1
    實體位址:      00-15-5D-01-02-01

記錄表格

請填寫您的實際資訊:

端口名稱MAC地址連接名稱
乙太網路  
乙太網路 2  
乙太網路 3  
乙太網路 4  

3. 創建批次處理腳本

詳細步驟

  1. 桌面右鍵 → 新增 → 文字文件
  2. 重新命名為set_4port_ip.bat
    • 注意:需顯示副檔名
    • 如未顯示:檔案總管 → 檢視 → 勾選"副檔名"
  3. 右鍵檔案 → 編輯

腳本範本

@echo off
:: 4端口網卡IP配置腳本
:: 創建日期:%date%

setlocal enabledelayedexpansion

:: ===== 端口配置區 =====
:: 端口1配置
set "mac1=00-15-5D-01-02-01"
set "ip1=192.168.1.101"
set "mask1=255.255.255.0"
set "gateway1=192.168.1.1"
set "dns1_1=8.8.8.8"
set "dns1_2=8.8.4.4"

:: 端口2配置
set "mac2=00-15-5D-01-02-02"
set "ip2=192.168.1.102"
set "mask2=255.255.255.0"
set "gateway2=192.168.1.1"
set "dns2_1=8.8.8.8"
set "dns2_2=8.8.4.4"

:: ===== 執行配置區 =====
echo 開始網路配置...
for /f "tokens=1-12 delims= " %%a in ('getmac /v /fo list ^| findstr "乙太網路"') do (
    set "adapter=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k"
    set "mac=%%l"
    
    echo 檢查介面卡: !adapter! [!mac!]
    
    if "!mac!"=="%mac1%" (
        echo 正在配置端口1...
        netsh interface ip set address name="!adapter!" static %ip1% %mask1% %gateway1% 1
        netsh interface ip set dns name="!adapter!" static %dns1_1% primary
        netsh interface ip add dns name="!adapter!" %dns1_2% index=2
        echo 端口1配置完成!
    )
    
    if "!mac!"=="%mac2%" (
        echo 正在配置端口2...
        netsh interface ip set address name="!adapter!" static %ip2% %mask2% %gateway2% 1
        netsh interface ip set dns name="!adapter!" static %dns2_1% primary
        netsh interface ip add dns name="!adapter!" %dns2_2% index=2
        echo 端口2配置完成!
    )
)

pause

4. 配置腳本參數

配置說明

  1. 修改MAC地址部分:

    set "mac1=您記錄的MAC地址"
  2. 修改IP配置部分:

    set "ip1=您規劃的IP"
    set "mask1=255.255.255.0"
    set "gateway1=您的閘道"

注意事項

  • MAC地址必須包含連字號(-)
  • IP地址不能與網路現有設備衝突
  • 不需要的端口可以刪除對應配置段

5. 測試腳本

測試步驟

  1. 右鍵腳本 → "以系統管理員身分執行"
  2. 觀察輸出應類似:

    正在掃描網路介面卡...
    檢查介面卡: 乙太網路 [00-15-5D-01-02-01]
    正在配置端口1...
    端口1配置完成!
  3. 出現錯誤時檢查:
    • MAC地址是否正確
    • 是否管理員權限執行
    • IP地址是否可用

6. 設置開機啟動

自動執行配置

  1. Win+R輸入shell:startup
  2. 將腳本複製到開啟的資料夾
  3. 建立捷徑:

    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "cmd /c C:\path\to\set_4port_ip.bat", 0, False

7. 驗證配置

驗證方法

  1. 命令提示字元輸入:

    ipconfig /all
  2. 測試網路連通性:

    ping 您的閘道
    ping 8.8.8.8

8. 常見問題解答

Q1: 腳本執行後IP沒有改變

A: 檢查:

  1. 是否以管理員執行
  2. MAC地址是否匹配
  3. 網路介面卡名稱是否一致

Q2: 如何恢復DHCP

netsh interface ip set address name="乙太網路" source=dhcp
netsh interface ip set dns name="乙太網路" source=dhcp

Q3: 多網段配置範例

:: 端口3使用不同子網
set "ip3=192.168.2.101"
set "mask3=255.255.255.0"
set "gateway3=192.168.2.1"

附錄A:完整腳本
[此處貼上完整批次處理腳本內容]

附錄B:網路規劃範本
[此處可新增網路規劃表格]


文件結束
技術支援聯絡人:您的IT部門
最後更新日期:2023年11月15日