IPMI 使用什麼連接埠?UDP 623 與各廠商 BMC 連接埠彙總
IPMI over LAN 只用一個連接埠:UDP 623。但日常遠端管理還會用到 BMC 的 Web 介面(TCP 443)、遠端控制檯和虛擬介質,這幾個連接埠各廠商並不相同,放行防火牆前要按型號逐項核對。
IPMI 協議本身只用 UDP 623
IPMI 使用什麼連接埠,取決於你問的是協議本身還是整套遠端管理。協議本身的答案很簡單:IPMI over LAN 走 UDP 623。IPMI 1.5 使用 RMCP(Remote Management Control Protocol),IPMI 2.0 使用帶加密和更完善認證的 RMCP+,兩者都封裝在 UDP 623 裡,這也是 IANA 為 ASF-RMCP 登記的連接埠號。部分 BMC 還會監聽 UDP 664(ASF 安全 RMCP),實際管理工具幾乎不用。
幾個容易誤解的地方:
- 只有 BMC 一側固定 623。ipmitool 之類的客戶端用隨機高位源連接埠發包,BMC 從 623 回包到這個源連接埠。防火牆必須允許這條 UDP 回程:帶連線跟蹤的防火牆會自動處理,老式無狀態 ACL 需要額外寫一條反向規則。
- SOL 不需要額外連接埠。串列連接埠重定向(Serial over LAN)跑在同一條 RMCP+ 會話裡,放行了 623 就能用。
- 帶內 IPMI 不走網路。在伺服器作業系統裡透過
/dev/ipmi0(KCS 介面)執行 ipmitool,不經過網口,與連接埠無關。 - 連接埠可以在命令裡指定。如果 BMC 確實改了連接埠(少見),ipmitool 用
-p引數指定:
ipmitool -I lanplus -H 10.20.0.15 -p 623 -U admin -P '密碼' chassis power status
遠端管理實際用到的連接埠清單
真正讓人頭疼的不是 623,而是 BMC 上的其他服務。一台伺服器的帶外管理通常涉及下面這些連接埠:
| 用途 | 預設連接埠 | 協議 | 說明 |
|---|---|---|---|
| IPMI over LAN(RMCP/RMCP+、SOL) | 623 | UDP | 標準固定,各廠商一致 |
| Web 管理介面、Redfish、WS-Man | 443(80 多為跳轉) | TCP | 部分廠商的 HTML5 控制檯也複用 443 |
| SSH 命令列(RACADM、iLO CLI、SMASH CLP) | 22 | TCP | 多數預設開啟,不用時可關閉 |
| SNMP 採集與告警 | 161 / 162 | UDP | 162 是 BMC 向監控伺服器發 Trap |
| 遠端控制檯(KVM,獨立客戶端或 Java) | 因廠商而異 | TCP | 見下表 |
| 虛擬介質(掛載 ISO) | 因廠商而異 | TCP | 部分廠商與控制檯共用連接埠 |
| VNC 服務(部分 BMC 提供) | 5900 或 5901 | TCP | 需在 BMC 裡手動開啟 |
“伺服器遠端控制連接埠號是多少”這個問題,答案落在最後三行:控制檯與虛擬介質的連接埠沒有統一標準,每家自己定。
各廠商 BMC 預設連接埠對照
下表是主流 BMC 的出廠預設值,韌體版本不同會有出入,以廠商當前文件為準。
| 廠商 / BMC | Web | SSH | IPMI | 遠端控制檯 | 虛擬介質 | 其他 |
|---|---|---|---|---|---|---|
| Dell iDRAC7/8/9 | 443 | 22 | UDP 623 | TCP 5900 | TCP 5900 | VNC 服務 TCP 5901(Enterprise 許可開啟後) |
| Dell iDRAC6 | 443 | 22 | UDP 623 | TCP 5900(鍵鼠)、5901(影片) | TCP 3668 / 3669 | 老機型連接埠拆得更細 |
| HPE iLO 4/5 | 443 | 22 | UDP 623 | TCP 17990 | TCP 17988 | iLO 5 的 IPMI over LAN 出廠預設關閉,需手動開啟 |
| 超微 Supermicro | 443 | 22 | UDP 623 | TCP 5900(Java iKVM);HTML5 走 443 | TCP 623 | 虛擬介質用的是 TCP 623 |
| 聯想 XCC | 443 | 22 | UDP 623 | TCP 3900 | TCP 3900 | — |
| 華為 iBMC | 443 | 22 | UDP 623 | TCP 2198 | TCP 8208 | VNC 服務 TCP 5900 |
| 思科 CIMC | 443 | 22 | UDP 623 | TCP 2068 | TCP 2068 | — |
| AMI MegaRAC 白牌 | 443 | 22 | UDP 623 | 因主機板廠商而異,常見 5900 或 7578 | 常見 5120–5123,或與控制檯共用 | 以主機板廠商文件為準 |
幾點實際經驗:
- iDRAC 和超微都用 5900,但含義不同:iDRAC 的 5900 是虛擬控制檯和虛擬介質共用;超微的 5900 只給 Java iKVM,掛 ISO 要另外放行 TCP 623。
- iLO 的 17990 和 17988 是 HPE 獨有的連接埠號,在防火牆上很容易被漏掉,表現為網頁能登入、控制檯打不開。
- HTML5 控制檯不一定只走 443:超微的 HTML5 iKVM 複用 443,而 iDRAC9 的 HTML5 虛擬控制檯仍然要放行 5900。穩妥的做法是把 443 與控制檯、虛擬介質連接埠一起放行,不要只開 443。
防火牆怎麼放行
原則是:BMC 只對管理網開放,來源限定為維運跳板機或管理系統所在的位址段,不對公網開放任何連接埠。下面是一台 Linux 閘道器把管理網 10.10.0.0/24 與 BMC 網段 10.20.0.0/24 隔開時的規則:
# 允許管理網存取 BMC 網段的 IPMI 與常用 TCP 服務
iptables -A FORWARD -s 10.10.0.0/24 -d 10.20.0.0/24 -p udp --dport 623 -j ACCEPT
iptables -A FORWARD -s 10.10.0.0/24 -d 10.20.0.0/24 -p tcp -m multiport --dports 22,443,5900,5901 -j ACCEPT
# 放行已建立連線的回程包(UDP 623 的回包也靠這條)
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 其餘進入 BMC 網段的流量一律丟棄
iptables -A FORWARD -d 10.20.0.0/24 -j DROP
如果機房裡混有 HPE、華為等品牌,把 17990、17988、2198、8208 等連接埠按實際型號加進 --dports 列表;有超微還要加一條 TCP 623。SNMP 採集單獨放行 UDP 161;Trap 是 BMC 主動發往監控伺服器的 UDP 162,方向相反,規則要寫在另一側。
怎麼測試連接埠通不通
# UDP 623:顯示 open 說明收到 RMCP 回應;open|filtered 表示沒被拒絕但也沒應答
nmap -sU -p 623 --script ipmi-version 10.20.0.15
# 直接用 ipmitool 探測,比連接埠掃描更可靠
ipmitool -I lanplus -H 10.20.0.15 -U admin -P '密碼' mc info
# TCP 連接埠(Web、控制檯、虛擬介質),逐個測試
for p in 22 443 5900; do nc -zv -w 3 10.20.0.15 $p; done
Windows 上可以用 Test-NetConnection 10.20.0.15 -Port 443 檢查 TCP,但它不能測 UDP,623 還是要靠 ipmitool。
順手多做一項檢查:nmap -sU -p 623 --script ipmi-cipher-zero 10.20.0.15。老韌體的 BMC 常常開著 RMCP+ 的 Cipher Suite 0,這個套件不校驗密碼,任何知道使用者名稱的人都能建立會話。掃描結果提示存在時,在 BMC 的 IPMI 設定裡關閉該套件,或者升級韌體。這也是 623 連接埠絕不能對公網開放的原因之一。
ipmitool 報錯怎麼讀:
| 現象 | 常見原因 |
|---|---|
長時間無回應後提示 Unable to establish IPMI v2 / RMCP+ session |
UDP 623 被攔、BMC 未開啟 IPMI over LAN,或 BMC 網口沒通 |
RAKP 2 HMAC is invalid |
密碼錯誤 |
Insufficient privilege level |
帳號許可權不是 Administrator,或 LAN 通道的許可權上限被限制 |
| nmap 顯示 623 open 但 ipmitool 超時 | 中間裝置只放行了去程沒放回程,或 ipmitool 使用的加密套件被 BMC 禁用 |
開關 IPMI over LAN 與修改連接埠
近幾年的 BMC 韌體出於安全考慮,出廠時往往關閉了 IPMI over LAN,只保留 Web 和 Redfish。如果 nmap 顯示 623 被過濾而防火牆規則沒問題,先檢查 BMC 裡的開關:
- Dell iDRAC9:iDRAC Settings → Connectivity → Network → IPMI Settings,勾選 Enable IPMI Over LAN,並把 Channel Privilege Level Limit 設為 Administrator;命令列執行
racadm set iDRAC.IPMILan.Enable 1。 - HPE iLO 5:Security → Access Settings → Network,開啟 IPMI/DCMI over LAN;iLO 4 在 Administration → Access Settings。
- 聯想 XCC:BMC Configuration → Network → Service Enablement and Port Assignment,啟用 IPMI。
- 超微:Configuration → Port 頁面列出各服務及連接埠狀態。
- 華為 iBMC:在服務管理頁面開啟 IPMI 相關服務。
UDP 623 由標準固定,主流 BMC 都不提供修改入口,只能開或關。Web、SSH、控制檯、虛擬介質、VNC 這些 TCP 連接埠大多可以改。以 iDRAC 為例:
racadm set iDRAC.WebServer.HttpsPort 8443
racadm set iDRAC.SSH.Port 22
racadm set iDRAC.VirtualConsole.Port 5900
racadm set iDRAC.VNCServer.Enable 1
racadm set iDRAC.VNCServer.Port 5901
iLO 在 Access Settings 頁面修改 SSH、Web、Remote Console、Virtual Media 連接埠;超微在 Configuration → Port;XCC 在 Service Enablement and Port Assignment。
要不要改?在獨立管理 VLAN 裡,改連接埠帶來的安全收益很小,代價是所有管理工具、監控指令碼和防火牆規則都要跟著改,一旦有台機器忘了同步就會失聯。更穩妥的做法是保持預設連接埠,把精力放在存取來源控制、關閉不用的服務和及時升級韌體上。
在管理系統裡怎麼落地
機房裡品牌一多,每台機器該放行哪些連接埠、控制檯該用哪種客戶端,很難靠人記。Toplink DCIM 的做法是在每個機房部署從節點,從節點接入 BMC 所在的管理網就近連線,維運人員只需存取 DCIM 後台,不必為每個人的電腦逐一開通到 BMC 的防火牆策略。IPMI 遠端管理頁面列出了針對 iDRAC、iLO、iBMC、超微等主流 BMC 做過支援的控制檯型別;BMC 位址段可以在 IP 位址管理裡標記為 IPMI 型別單獨統計,哪台機器的管理口用的哪個位址,一查便知。
常見問題
IPMI 623 連接埠是 TCP 還是 UDP?
標準的 IPMI over LAN(RMCP/RMCP+)只用 UDP 623。個別廠商會另外在 TCP 623 上執行虛擬介質等私有服務,例如超微的 BMC,所以防火牆規則要把 UDP 和 TCP 分開寫。
Redfish 用什麼連接埠?
Redfish 是跑在 HTTPS 上的 REST 介面,與 BMC 的 Web 介面共用 TCP 443,入口路徑是 /redfish/v1。放行了 443 就能用,不需要額外連接埠。
IPMI 連接埠可以改成別的嗎?
UDP 623 由標準固定,主流 BMC 都不允許修改,只能開關;Web、SSH、控制檯、虛擬介質這些 TCP 連接埠通常可以在 BMC 的服務設定裡修改。
機房裡 BMC 連接埠需要對公網開放嗎?
不需要,也不建議。BMC 連接埠只應對管理網或跳板機開放,暴露在公網的 623 連接埠會被持續掃描,而 BMC 擁有伺服器的完全控制權。