什麼是 TTL(Time To Live) 存活時間?|Skycloud

在網路通訊與資料傳輸的世界中,「TTL」是一個常被提到卻容易被忽略的重要參數。TTL 是「Time To Live」的縮寫,中文為「存活時間」。它不只是代表「資料包能活多久」,更是網路效率與安全管理的一環。
➤TTL 要設定多少才合理?
➤還有哪些情況會使用 TTL?
➤設定 TTL 的實務建議
TTL是什麼
我們在一些設定,如 CDN 或 DNS 服務中經常可以看到「TTL」這個英文縮寫,那麼什麼是TTL呢?
TTL(Time To Live) 存活時間,是一個定義資料在網路中可以存活多久的數值,例如:
IP 封包中的 TTL 值:
限制封包能經過多少個路由器(Hop) 後還能繼續傳遞,以防止無限循環。DNS 記錄中的 TTL 值:
定義 DNS 快取多久後需重新查詢來源伺服器,常用於控制網域紀錄更新的頻率。
IP 封包中的 TTL
當一個封包從來源主機出發時,它會帶著一個 TTL 值(例如 64 或 128),每經過一個路由器(Hop),TTL 就會減 1,當 TTL 值減到 0,該封包就會被丟棄,並回報錯誤訊息給來源主機。
這個設計的原因是為了防止封包因路由設定錯誤而無限迴圈、保護網路資源不被耗盡,並且快速偵錯路由問題。
DNS 中的 TTL
在 DNS 系統中,每一筆記錄,如 A、CNAME、MX…等,都會設定一個 TTL 值(單位是秒),告訴快取伺服器這筆記錄可以快取多久。
比如:
某個 A 紀錄的 TTL 是 3600 秒,代表快取伺服器可以快取這個 IP 資訊 1 小時,1 小時後才需重新向 DNS 來源伺服器查詢。
為什麼要設定 TTL 呢?
提高效能:減少 DNS 查詢次數,提升網站存取速度。
減少流量:降低 DNS 伺服器的負載。
控制更新速度:TTL 越短,更新紀錄的速度越快、TTL 越長,快取效果越好。
TTL如何運作
TTL 的運作方式,指的是 TTL 在不同場景中是如何被計算與執行的,而 TTL 運作的核心概念很簡單,也就是「設定一個『壽命倒數』值,直到過期為止就會被丟棄或重新查詢。」
IP 封包中的 TTL 運作方式
當一個資料封包從電腦出發時(例如開啟一個網站),它會帶上一個 TTL 數值,例如 64、128 或 255,這個值的意義是「最多可以經過多少個路由器(Hop)後還能繼續傳送」。
封包出發,帶著 TTL = 64 (以此為例)
經過第一個路由器,TTL 減 1,變成 63
經過第二個路由器,再減 1,變成 62
…
當 TTL 減到 0,封包就會被該路由器直接丟棄
同時,該路由器會送出一個「ICMP 錯誤訊息」回給來源,通知封包無法送達
其功能意義是為了防止封包在網路中無限繞圈、協助偵測路由錯誤與減少資源浪費。
※TTL 在 IP 封包中是以「跳數(Hop)」為單位遞減
DNS 記錄中的 TTL 運作方式
當使用者查詢一個網域時,DNS 系統會從來源伺服器查詢紀錄,並將該紀錄快取起來,其中就會包含一個 TTL 值(例如 3600 秒),這個意義在於「這筆資料可以在快取中保留多久」。
使用者第一次查詢網域,如 example.com
解析器向權威 DNS 查詢,取得 A 紀錄與 TTL,如 3600 秒
這筆資料被快取,存在本地或 ISP DNS 中
在 TTL 倒數 3600 秒內,再次查詢都會直接從快取中回應
一旦 TTL 倒數完(=0),下一次查詢就會重新向權威 DNS 查詢,取得新紀錄與新 TTL
其功能意義在於降低 DNS 伺服器的負載、控制記錄變更後的更新反應速度,以及提升查詢速度並減少延遲。
※TTL 在 DNS 是以「時間(秒)」為單位倒數
TTL 要設定多少才合理?
當設定 TTL 值的時候,沒有絕對的標準,是要根據實際需求來權衡「快取效果」和「更新靈活性」來考慮,TTL 的單位是「秒」,一般從幾十秒到幾天都有可能,不過 TTL 並不是愈長愈好,TTL的長短都有利弊,其關鍵還是在於我們的「需求」如何。
使用場景 | 建議 TTL 範圍 | 說明 |
---|---|---|
網站 IP 很穩定 (如企業官網) | 4~24 小時 (14,400~86,400 秒) | 適合穩定服務,可減少 DNS 查詢頻率、提升效能。 |
網站頻繁改版或搬家 (如新站上線初期) | 300~1,800 秒 (5~30 分鐘) | TTL 設短可快速反映 DNS 記錄變更。 |
即將遷移或測試期間 | 60~300 秒 (1~5 分鐘) | 測試或轉址期間,短 TTL 有助於快速切換。 |
CDN 或多節點服務 | 幾十秒~數小時不等 | 根據快取更新頻率與容忍延遲彈性調整。 |
郵件伺服器(MX 記錄) | 1~12 小時 (3,600~43,200 秒) | 郵件伺服器較穩定,可設定較長 TTL 減少查詢。 |
TTL 長 (如一天) | TTL 短 (如5分鐘) |
---|---|
|
|
適合穩定網站 | 適合經常更新或測試中網站 |
※備註:
TTL 改了不會馬上生效,即使改了 TTL,DNS 快取伺服器會根據「舊 TTL」繼續快取,直到過期才會抓取新設定;所以,若有預計切換或更新操作,建議提前幾天縮短 TTL,等舊快取過期後再進行更新,影響才會最小化。
還有哪些情況會使用 TTL?
TTL 雖然最常見於 IP 封包與 DNS 快取,但 TTL 其實還會被廣泛地用在其他的技術與系統當中,目的是一樣的,也就是控制資料或資源的生命週期、避免過期或無限存在。以下是幾個常見的應用場景。
快取系統
控制資料保留多久,過期自動清除。HTTP 快取
網頁資源如圖片、CSS 設定 TTL,加快載入速度。驗證碼與 Token
設定有效時間,確保安全性與時效性。訊息系統
訊息過期就不再投遞,避免傳送舊資料。CDN 快取控制
CDN 節點會根據來源伺服器提供的 TTL 來決定資源保留多久,部分 CDN 會允許你自訂 TTL 設定以強制更新或延長快取。
設定 TTL 的實務建議
網站上線初期:
設定較短 TTL(如 300 秒),方便隨時更新 DNS。穩定營運期:
延長 TTL(如 3600 秒~86400 秒),減少不必要的查詢。重大變更前一週:
提前縮短 TTL,確保更改時能快速生效。使用 CDN 時:
根據 CDN 的快取設計與動態內容頻率靈活調整 TTL。防禦 DDoS 或異常導流:
搭配 DNS 流量管控平台,保持中等 TTL(如 600~1800 秒)彈性處理切換。
延伸閱讀:
✔CDN概念全解析!一篇搞懂CDN的原理、用途與案例分析!
✔DNS是什麼?DNS運作流程、設定教學、攻擊手法全解析!
✔什麼網站需要CDN?網站使用CDN有什麼好處?
✔頻寬是什麼?頻寬與網站速度、DDoS 攻擊、CDN 防護關係