快訊
2026-10-15
科技大小事

169.254.x.x 是哪來的?沒 DHCP 時 Windows 為什麼自己配一組 IP

約 7 分鐘閱讀 · 42 次瀏覽
廣告

⚡ 站長快讀:核心重點

  • 文章屬性:科技冷知識 / 規格解析
  • 核心結論:169.254 開頭的位址不是亂碼,是 IANA 保留、RFC 3927 定義的 link-local 區段;Windows 端的實作叫 APIPA 自動配置,看到它就代表這張網卡向 DHCP 要位址失敗。
  • 適用對象:對「網路線插著卻上不了網」好奇,或想搞懂這串數字設計邏輯的人

📌 快速答案

一句話答案:169.254 開頭的位址來自 IANA 保留給 link-local 的 169.254.0.0/16,Windows 在要不到 DHCP 位址時用 APIPA 自動配置自行挑一組,只能在同一條鏈路內互通。


🔍 故事的起點

網路線插著、燈也在閃,瀏覽器卻什麼都開不出來。敲一行 ipconfig /all,IPv4 位址是 169.254 開頭、子網路遮罩 255.255.0.0、預設閘道那一欄空空如也——很多人第一反應是「網卡壞了」或「中毒了」,然後開始重灌驅動程式。

其實這組位址一點都不隨便。169.254.0.0/16 是 IANA 保留、由 IETF 的 RFC 3927 寫進標準的 IPv4 link-local 區段,而 Windows 對它的實作名稱就是 APIPA 自動配置(Automatic Private IP Addressing)。它不是故障代碼,是一個「DHCP 沒回應時至少讓同一條線上的機器彼此看得到」的保命設計。

本文要講三件多數教學不會提的事:一是這段位址能挑與不能挑的範圍有明文規定,頭尾各 256 個被留著不准用;二是主機挑位址時有一整套 ARP 防撞流程與常數表,連撞幾次要降速都寫死在標準裡;三是 RFC 反過來規定 169.254 不該由人手動設定、也不該由 DHCP 伺服器派發——要自訂請用 192.168 那類私有位址。


🧪 原理拆解

169.254.0.0/16:誰劃的、能用哪一段

直接講結論:這段位址是 IANA 為了 link-local 用途保留的,RFC 3927(2005 年 5 月發布)把它的取用規則寫死。

RFC 3927 規定,主機要自己挑位址時,必須用虛擬亂數產生器、在 169.254.1.0 到 169.254.254.255 這個範圍內均勻取值;169.254/16 的頭 256 個與尾 256 個位址保留供未來使用,主機不得選用(其中 169.254.255.255 是這個前綴的廣播位址)。換句話說,你機器上跳出來的那組 169.254.x.y,理論上永遠不會是 169.254.0.x 或 169.254.255.x。

另一個常被忽略的定義:RFC 3927 把「可路由位址」定義為 169.254/16 以外的所有有效單播位址,包含 10.x、192.168.x 這類私有位址,但不含 127.0.0.1 這種 loopback 位址。link-local 從定義上就被排除在「可路由」之外。

廣告

Windows 這一側:APIPA 什麼時候會跳出來

微軟官方文件寫得很直白:設定為自動取得 IP 的 Windows 電腦,在 DHCP 伺服器不存在或暫時掛掉時,可以自己指派一組位址;IANA 已保留 169.254.0.0–169.254.255.255 給 APIPA,因此這組位址保證不會和可路由位址撞號。取得後,它能和同一個 LAN 上同樣跑 APIPA、或手動設成 169.254.x.y 且遮罩為 255.255.0.0 的機器溝通;跨網段的電腦、或沒用 APIPA 的電腦,一律通不到。此功能預設為啟用。

那怎麼確認自己中的就是這招?官方給的判準是 ipconfig /all:看 Autoconfiguration Enabled 是不是 Yes,以及 Autoconfiguration IP Address 是不是落在 169.254.x.y。(想複習各種查 IP 的方式,可參考站內的 查詢 IP 位址教學。)

同一份文件也記載了三種情境的重試節奏:從沒拿過位址時,開機會廣播三個以上的 discover 訊息,沒人回應就自配一組,之後每 3 分鐘再送一次 discover;曾經有租約的機器,會先試著聯絡預設閘道,閘道有回應就沿用舊位址;租約到期又找不到伺服器,則是自配後廣播四個 discover,之後每 5 分鐘重跑一輪。

⚠️ 事實類型註記:本文引用該篇微軟文件的三處內容——ipconfig /all 的判準欄位、上述重試秒數、以及後文的登錄值做法——原文都以「For Windows 2000, Windows XP, or Windows Server 2003」限定適用版本。現行 Windows 版本是否完全相同,微軟未在該文更新,本文不代為推測。

位址怎麼挑、怎麼確定沒撞號

挑到號碼只是第一步,難的是確認沒人在用。RFC 3927 的流程是這樣跑的:

APIPA 取得 link-local 位址的四個階段:亂數挑號、ARP 探測、ARP 宣告、使用中衝突偵測
來源:IETF RFC 3927 §2.1/2.2/2.4/2.5・2026-09-17 查證
參數值意義
PROBE_WAIT / PROBE_NUM1 秒 / 3 次開始前的隨機延遲上限、ARP 探測次數
ANNOUNCE_NUM / ANNOUNCE_INTERVAL2 次 / 2 秒確定沒撞號後的宣告次數與間隔
MAX_CONFLICTS / RATE_LIMIT_INTERVAL10 次 / 60 秒撞號超過此數後,每分鐘只准再試一組
DEFEND_INTERVAL10 秒防衛自己位址的最短間隔

重點摘要:

  • 先探測再宣告:主機隨機延遲後送出 3 次 ARP 探測(間隔 1~2 秒),沒人回才用 2 次 ARP 宣告昭告天下。
  • 撞太多次就降速:連續衝突超過 10 次,標準要求把速率壓到每 60 秒才試一組新位址,目的是避免有問題的機器把整條網路打成 ARP 風暴。
  • 用到一半也要盯:使用期間若看到別人用同一組位址,主機可以選擇防衛一次;但若在 10 秒內又收到衝突封包,就必須立刻停用該位址並重挑。

為什麼它永遠出不了這條網路線

這是 169.254 最關鍵、也最常被誤解的性質:RFC 3927 明訂,來源位址為 link-local 的 IPv4 封包不得被轉送出本地鏈路,即使目的地是多播位址也一樣。

廣告

所以「拿到 169.254 卻連不上網」不是 bug,是規格。沒有預設閘道、封包也不准被路由器轉出去,它天生只能在同一條實體或邏輯鏈路上講話。反過來看,這也讓 169.254 成為好用的診斷訊號:看到它,代表問題出在「DHCP 這條路沒通」——該查的是網路線、交換器、路由器的 DHCP 有沒有開、或是網路認證卡住,而不是去修那組位址本身。


💡 總結:冷知識延伸

站長我覺得 169.254 最有趣的地方,是它「出不了本機鏈路」這個限制,後來反而被雲端業者拿來當特色用。以微軟 Azure 為例,官方文件寫明執行個體中繼資料服務(IMDS)就掛在 169.254.169.254 這個「知名、不可路由」的位址上,只能從虛擬機器內部存取,通訊從不離開主機。每台 VM 都用同一個門牌卻不會互相干擾,靠的正是這段位址不會被路由出去的特性。

另一個反直覺的規定:RFC 3927 說 169.254/16 的位址不應該由人工設定或由 DHCP 伺服器派發,因為那樣會讓機器繞過這段位址專屬的重複偵測規則;要規劃自己的內網,請用 RFC 1918 的私有位址。

至於常見的「可以關掉嗎」,微軟文件給了兩條路。第一條不必碰登錄檔:在網路卡的 IPv4 內容裡,一般分頁維持「自動取得 IP 位址」,再到替代組態(Alternate Configuration)分頁選 User configured,填好備援的 IP、遮罩、閘道與 DNS——這條路很適合在公司固定 IP、回家吃 DHCP 的筆電。第二條是微軟記載的登錄值 IPAutoconfigurationEnabled,在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<介面卡 GUID> 下設為 0x0 可停用 APIPA,此值不存在時預設視為 1(啟用)。

⚠️ 登錄檔變更提醒:本文不逐步示範登錄操作。微軟原文也要求動手前先備份登錄檔;若你不確定介面卡 GUID、或機器由公司/學校 IT 管控而未取得授權,請停在這裡不要改。真的改了要回退,把該值刪除或改回 1 即回到預設行為。


❓ 常見問題

Q:兩台電腦都拿到 169.254,它們能互相連線嗎?

可以,這正是這個機制存在的理由。只要兩台在同一條鏈路上、遮罩同為 255.255.0.0,就能互通;但沒有預設閘道與 DNS,跨網段或上網一律不行。

廣告

Q:看到 169.254 是網卡壞了嗎?

不是。它代表 DHCP 沒要到位址。先查實體線路與交換器,再確認路由器的 DHCP 服務有沒有開、位址池是不是發完了,最後才懷疑網卡。

Q:為什麼有時候網路線拔掉再插回去就正常了?

多半是那一刻 DHCP 剛好又通了。Windows 自配 169.254 之後並不會放棄:微軟文件記載它會持續送出 discover 訊息(每 3 分鐘或每 5 分鐘一輪),一旦 DHCP 伺服器重新上線,系統就會產生「已重新建立與 DHCP 伺服器通訊」的訊息。拔插網路線常被當成萬用解法,但真正決定成敗的是 DHCP 服務本身有沒有回來。

Q:169.254 和 192.168 到底差在哪?

192.168 屬於 RFC 1918 私有位址,可以在內網被路由、也能透過 NAT 出去;169.254 是 link-local,標準規定不得被轉送出本地鏈路,連閘道都沒有。


🔗 延伸閱讀


📎 參考資料來源

📖 第一級|標準組織與廠商官方:


廣告