多埠網卡(4-Port PCIe NIC)開機順序變動與IP設定錯亂問題解決方案
多埠網卡(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
setlocalREM 根據 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 建立批次檔(範例):@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 進行修改。設為開機自動執行:使用「工作排程器」建立任務,在電腦開機時執行批次檔(需勾選「使用最高權限執行」)或將批次檔放入 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月目錄準備工作獲取MAC地址創建批次處理腳本配置腳本參數測試腳本設置開機啟動驗證配置常見問題解答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地址步驟圖文步驟按下Win + R鍵輸入cmd按Enter在命令提示字元中輸入:getmac /v /fo list記錄輸出結果(範例):連接名: 乙太網路
網路介面卡: Intel I350-T4 #1
實體位址: 00-15-5D-01-02-01記錄表格請填寫您的實際資訊:端口名稱MAC地址連接名稱乙太網路 乙太網路 2 乙太網路 3 乙太網路 4 3. 創建批次處理腳本詳細步驟桌面右鍵 → 新增 → 文字文件重新命名為set_4port_ip.bat注意:需顯示副檔名如未顯示:檔案總管 → 檢視 → 勾選"副檔名"右鍵檔案 → 編輯腳本範本@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配置完成!
)
)
pause4. 配置腳本參數配置說明修改MAC地址部分:set "mac1=您記錄的MAC地址"修改IP配置部分:set "ip1=您規劃的IP"
set "mask1=255.255.255.0"
set "gateway1=您的閘道"注意事項MAC地址必須包含連字號(-)IP地址不能與網路現有設備衝突不需要的端口可以刪除對應配置段5. 測試腳本測試步驟右鍵腳本 → "以系統管理員身分執行"觀察輸出應類似:正在掃描網路介面卡...
檢查介面卡: 乙太網路 [00-15-5D-01-02-01]
正在配置端口1...
端口1配置完成!出現錯誤時檢查:MAC地址是否正確是否管理員權限執行IP地址是否可用6. 設置開機啟動自動執行配置按Win+R輸入shell:startup將腳本複製到開啟的資料夾建立捷徑:Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd /c C:\path\to\set_4port_ip.bat", 0, False7. 驗證配置驗證方法命令提示字元輸入:ipconfig /all測試網路連通性:ping 您的閘道
ping 8.8.8.88. 常見問題解答Q1: 腳本執行後IP沒有改變A: 檢查:是否以管理員執行MAC地址是否匹配網路介面卡名稱是否一致Q2: 如何恢復DHCPnetsh interface ip set address name="乙太網路" source=dhcp
netsh interface ip set dns name="乙太網路" source=dhcpQ3: 多網段配置範例:: 端口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日
Read More