☁Zero Trust 上手指南
繁體中文
Telegram Cloudflare 文件 ↗

模組 3b — 裝置配置檔案(Device Profiles)

目標: 為不同裝置群組應用不同的 Cloudflare One 客戶端設定——讓受管筆記本、BYOD 手機、伺服器、承包商各自獲得正確的模式、分流與 DNS 行為。

👤 誰來做 終端 / 桌面團隊
⏱️ 用時 約 30 分鐘
🎯 完成後你將擁有 一個或多個自動按序應用到正確裝置的自定義配置檔案
✋ 開始前 模組 3 已完成(至少一臺裝置已註冊並 Connected)

這是對模組 3 B 部分的可選深入。如果你組織里所有裝置都應表現一致,單個 Default 配置檔案就夠了——當筆記本、BYOD、伺服器或承包商需要區別對待時再回到這裡。


什麼是裝置配置檔案

裝置配置檔案是一組具名的 Cloudflare One 客戶端設定(模式、分流、DNS 行為、開關鎖等),外加決定它應用到哪些裝置的匹配規則。裝置連線時,Cloudflare 依據這些規則為它選出一個配置檔案。

設定分為兩層:

層級 應用於 舉例
全域性裝置客戶端設定 每臺已註冊裝置,始終生效 管理員覆蓋碼、緊急斷開、本地網路排除許可
裝置配置檔案設定 僅匹配該配置檔案規則的裝置 客戶端模式、分流、本地域名回退、自動連線、開關鎖

📺 它們在哪: Zero Trust → Team & Resources → Devices → Device profiles。配置檔案位於 General profiles 下。(舊版控制台放在 Settings → WARP Client ——是同一功能。)

⏱️ 提醒: 更改可能需要最多 10 分鐘才到達裝置。


五種客戶端模式(每個配置檔案先定這個)

模式是配置檔案裡最重要的設定——它決定該裝置上哪些 Zero Trust 功能生效。

模式 向 Cloudflare 傳送什麼 適用於
Gateway with WARP DNS 和全部網路流量(隧道) ⭐ 受管裝置的標準選擇——完整 Web 過濾、DLP、ZTNA、姿態
Gateway with DoH 僅 DNS(經 HTTPS) 當你不能/不想隧道全部流量時的 DNS 過濾
Secure Web Gateway(不含 DNS 過濾) 網路流量,但不含 DNS 當 Cloudflare 無法控制裝置 DNS 時
Proxy mode 僅 HTTP 流量(經本地代理) 需要選擇性 HTTP 過濾的應用/開發場景
Device Information Only 不代理任何流量——僅姿態訊號 無客戶端 / 瀏覽器隔離訪問,但仍需裝置姿態

💡 提示: 多陣列織受管筆記本用 Gateway with WARP,BYOD 用 Device Information Only(或 Include 模式的 Gateway with WARP)。


A 部分 — 建立裝置配置檔案

  1. 👉 Zero Trust → Team & Resources → Devices → Device profiles → General profiles。
  2. 👉 點選 Create new profile。
    • 📺 你會看到: 新配置檔案以 Default 配置檔案的副本開始,因此你只需改動不同之處。
  3. ⌨️ 清晰命名,如 BYOD phones 或 Linux servers。
  4. 👉 建立匹配規則,界定哪些裝置使用此配置檔案——見 B 部分。
  5. 👉 配置客戶端設定(模式、開關鎖、自動連線等)。
  6. 👉 點選 Create profile。
    • ⚠️ 注意: Split Tunnels 與 Local Domain Fallback 只能在儲存後編輯。先建立,再重新開啟設定它們(D、E 部分)。
  7. 👉 回到列表,把配置檔案拖動到正確位置——順序很重要(C 部分)。

✅ 檢查點: 你的新配置檔案出現在 Profile settings 列表中,位於 Default 之上。


B 部分 — 匹配規則(選擇器)

匹配規則決定配置檔案應用到哪些裝置。由選擇器、運算子和取值組成。

⚠️ 基於身份的選擇器(郵箱、群組、SAML)僅當用戶通過 IdP 登入註冊時才生效。用服務令牌註冊的裝置無法按身份匹配——請改用 OS、受管網路或服務令牌。

選擇器 匹配依據 示例表示式
User email 特定使用者郵箱 identity.email == "jane@acme.com"
User group emails IdP 群組的郵箱地址 identity.groups.email == "contractors@acme.com"
User group IDs IdP 群組 ID identity.groups.id == "12jf495bhjd..."
User group names IdP 群組名稱 identity.groups.name == "finance"
Operating system 作業系統型別 os.name in {"windows" "mac"}
Operating system version 特定 OS 版本 os.version == "14.5.0"
Managed network 裝置是否在你定義的網路上 (匹配你配置的受管網路)
SAML attributes 來自 SAML IdP 的名/值 (屬性名 + 值)
Service token 用特定服務令牌註冊的裝置 (該令牌)

運算子:

型別 運算子 含義
比較 is 等於該值
比較 in 匹配多個值之一
邏輯 And 必須全部滿足
邏輯 Or 滿足任一即可

💡 示例——“承包商”配置檔案: 選擇器 User group names · 運算子 is · 取值 contractors。這樣你 IdP 中 contractors 群組的任何人都會自動獲得該配置檔案(更嚴格的)設定。


C 部分 — 優先順序順序(裝置如何被匹配)

這是最容易搞錯的部分,值得講清楚:

  1. 裝置連線時,Cloudflare 從上到下讀取配置檔案列表。
  2. 它使用裝置匹配到的第一個配置檔案,然後停止。下方的配置檔案無法覆蓋它。
  3. Default 配置檔案始終固定在最底部,僅當裝置上方都不匹配時才應用。
   配置檔案列表(自上 ↓ 下評估)           一臺在 “finance” 群組的 Windows 筆記本…
   ┌─────────────────────────────────────┐
   │ 1. Linux servers      (os = linux)   │  ✗ 非 linux
   │ 2. Finance team       (group finance)│  ✓ 匹配 → 使用此配置檔案,就此停止
   │ 3. BYOD phones        (os = ios/andr)│  (不再評估)
   │ 4. Default            (總在最後)      │  (不再評估)
   └─────────────────────────────────────┘

⚠️ 注意: 把更具體的配置檔案放上面,更寬泛的放下面。若寬泛配置檔案(如“所有 Windows”)在具體的(如“finance 中的 Windows”)之上,具體那條將永不匹配。

💡 提示: 若你把某個自定義配置檔案提升為 Default,它的設定會被複製進 Default 配置檔案。


D 部分 — Split Tunnels(按配置檔案)

Split Tunnels 決定哪些 IP 流量 經過 Cloudflare、哪些繞過。請在儲存配置檔案之後配置(開啟配置檔案 → Split Tunnels → Manage)。

常見使用場景:讓 Cloudflare One 客戶端與 VPN 並存(Exclude 模式),或僅為某個特定私有網路授予訪問(Include 模式)。

兩種模式

模式 行為 適用於
Exclude(預設) 除所列外,全部經 Cloudflare ⭐ 受管公司裝置
Include 僅所列經 Cloudflare;其餘留在本地,且不再受你的網路/HTTP 策略過濾 ⭐ BYOD / 個人裝置(保持個人流量私密)

⚠️ 切換模式會清空你的條目。 在 Exclude 與 Include 之間切換時,列表會恢復為 Cloudflare 預設值。請先複製現有條目(Manage → 記錄下來),以便重新新增。

🔑 Split Tunnels 隻影響 IP 流量——不影響 DNS

這是最容易被誤解的一點。Split Tunnels 控制的是 IP 資料包的流向。DNS 是獨立的: 即使你排除了某站點的 IP,其 DNS 查詢仍由 Gateway 解析(並受你的 DNS 策略約束),除非你把該域名也加入 Local Domain Fallback(E 部分)。Split Tunnels 與 Local Domain Fallback 設計上是配合使用來處理私有資源的。

條目型別——IP 地址 vs 域名

點選 Manage → 新增時,你可選擇 IP Address 或 Domain:

  • IP 地址 / CIDR(⭐ 推薦)——如 10.0.0.0/8。快速且可預測。要從較大網段中切出較小網段,可用 UI 內建的 CIDR 計算器。
  • 域名——如 example.com。當用戶訪問它時,域名會被解析(由 Gateway,或經 Local Domain Fallback 的私有 DNS),隨後 Split Tunnels 動態地 include/exclude 返回的 IP。若該域名沒有公共 DNS 記錄,你必須新增一條 Local Domain Fallback 條目(E 部分)才能解析。

💡 優先用 IP 而非域名。 域名更慢——客戶端每次都要即時做 IP 查詢並改寫路由表/本地防火牆。保持列表簡短:每個條目都增加解析時間,且存在按賬戶的上限。

需要了解的預設值

  • Exclude 模式預設已排除 RFC 1918 私有網段、CGNAT 網段 100.64.0.0/10(供 Cloudflare One 服務使用)以及組播網段。
  • ⚠️ 若你需要經客戶端訪問私有應用/主機名:
    • Exclude 模式: 從排除列表中移除 100.64.0.0/10(並把你本地實際使用的非 Cloudflare CGNAT 網段加回,以免衝突)。
    • Include 模式: 新增這些以便私有主機名可解析——IPv4 100.80.0.0/16 與 IPv6 2606:4700:0cf1:4000::/64,外加你私有網路自身的 CIDR。

常見 Exclude 模式用例

  • Microsoft 365 / Teams / Zoom / VoIP——需要使用者真實裝置 IP、或對延遲敏感的應用,排除後往往表現更好。(裝置設定裡有一鍵 Directly route Microsoft 365 traffic 選項。)
  • 分階段遷移期間與既有 VPN 並存。

⚠️ 權衡: 你排除的任何流量都會繞過 Gateway——該流量將失去過濾、DLP 與日誌。若你需要對某目的地保留可見性或策略,就不要排除它。

💡 提示: 要向用戶路由某個私有網路(如 10.50.0.0/16),在 Include 模式新增該 CIDR,或確保它在 Exclude 模式未被排除。


E 部分 — Local Domain Fallback(本地域名回退)

Local Domain Fallback(LDF) 讓客戶端用你自己管理的私有/內部 DNS 解析器解析特定域名,而不是把這些 DNS 查詢傳送到 Cloudflare Gateway。客戶端會把匹配的查詢直接代理到你指定的 DNS 伺服器。

用於: Active Directory、*.internal 以及其他公共 DNS(和 Cloudflare)無法解析的僅內部域名——尤其當該 DNS 伺服器僅能從使用者裝置訪問時。

內建預設值(已為你處理)

開箱即用地,Zero Trust 會把常見的本地解析頂級域名排除在 Gateway 之外,交給裝置自身的解析器處理。預設字尾為:

corp · domain · home · home.arpa · host · internal · intranet · invalid · lan · local · localdomain · localhost · private · test

你只需為該列表之外的私有域名新增條目(如 acme.internal、ad.acme.com)。

如何新增條目

  1. 👉 開啟配置檔案 → Local Domain Fallback → Manage(僅在儲存後可編輯)。
  2. ⌨️ Domain——輸入頂級(apex)域名,如 example.com。它被視為 *.example.com,因此所有子域都被覆蓋。
  3. ⌨️ DNS Servers——輸入應解析它的解析器 IP(如 10.0.0.25)。為效能考慮請保持在 ≤ 8 臺。客戶端會查詢全部並採用最快的響應——即使該響應是“無記錄”,因此務必至少指定一臺可靠伺服器。(留空則客戶端回退到 WARP 啟動前裝置所用的 DNS。)
  4. ⌨️ 填寫可選描述 → Save domain。

LDF 是按裝置配置檔案限定的。沒有 LDF 資源的配置檔案僅使用上面的預設字尾。

⚠️ 重要限制——Gateway 無可見性

由 Local Domain Fallback 處理的 DNS 查詢繞過 Gateway 解析器,因此不受 Gateway DNS 策略約束,也不出現在 DNS 日誌中。若你需要對私有 DNS 做過濾或記錄,請改用 解析器策略(resolver policies)。

LDF vs. 解析器策略——該用哪個?

Local Domain Fallback 解析器策略
執行位置 在裝置上(客戶端側) 在 Cloudflare Gateway 中
何時使用 DNS 伺服器僅能從裝置訪問 DNS 伺服器可從 Cloudflare 網路訪問(經 Tunnel、IPsec/GRE 或公網)
日誌 / DNS 策略 ❌ 無 ✅ 有(可見性更強)

⭐ 建議: 若你的 DNS 伺服器能連到 Cloudflare 接入匝道,優先用解析器策略以獲得日誌/可見性。若同一裝置上兩者都配置了,則 Local Domain Fallback 規則優先生效。

⚠️ AWS 陷阱: 不要把所有 *.amazonaws.com 都指向內部 Route 53 解析器——公共 AWS 端點(如 ssm.us-east-1.amazonaws.com)將無法解析並導致功能異常。只路由特定的 Route 53 區域或 VPC 端點(vpce.amazonaws.com)。

驗證

  • 👉 在裝置上執行 warp-cli settings,檢視 fallback domains 部分以確認你的條目已生效。

F 部分 — 全域性裝置客戶端設定(所有裝置)

這些位於配置檔案之外,全組織生效。位置:Team & Resources → Devices → Device settings(全域性區):

設定 作用 建議
Allow admin override codes 讓管理員生成驗證碼,供使用者臨時關閉客戶端 為 IT 支援啟用,謹慎分發驗證碼
Allow users to enable local network exclusion 讓使用者排除其本地網路——當家庭網路與公司 IP 網段重疊時的變通辦法 僅在需要時啟用;需要 Exclude 模式
Global / emergency disconnect 事故/故障時強制斷開(或重連)所有客戶端——包括通過外部本地 HTTPS 訊號 在需要之前就先配置好

G 部分 — 驗證裝置拿到了哪個配置檔案

通過控制台:

  1. 👉 Team & Resources → Devices → 開啟某裝置 → 檢視其分配的配置檔案。

通過裝置(命令列):

warp-cli settings
  • 📺 檢視 Profile ID 欄位——它顯示當前應用配置檔案的 UUID。

✅ 檢查點: 你的測試裝置報告了你預期的配置檔案(如 BYOD 裝置顯示 BYOD 配置檔案,而非 Default)。


實戰示例(照抄這些模式)

配置檔案(順序) 匹配規則 關鍵設定
1. Linux 伺服器 os.name is linux 模式:Gateway with WARP · 開關鎖 · 服務令牌註冊
2. Finance(嚴格) identity.groups.name is finance 模式:Gateway with WARP · 短自動連線 · 下游要求更嚴姿態
3. BYOD 手機 os.name in {ios android} 模式:Gateway with WARP · Include 分流(僅公司應用)
4. 承包商 identity.groups.name is contractors 模式:Device Information Only 或 Include 分流 · 開關鎖
5. Default (總在最後) 模式:Gateway with WARP · Exclude 分流

✅ 模組 3b 完成!

你現在擁有:

  • ✅ 對全域性設定與配置檔案設定、以及五種客戶端模式的理解
  • ✅ 一個或多個帶匹配規則的自定義裝置配置檔案
  • ✅ 正確的優先順序順序(具體在上、寬泛在下)
  • ✅ 按需設定的按配置檔案分流與本地域名回退
  • ✅ 驗證裝置所獲配置檔案的方法

快速排障

問題 解決辦法
裝置拿到錯誤配置檔案 檢查優先順序順序——上方某個更寬泛的配置檔案先匹配了(C 部分)。把具體的上移
身份選擇器永不匹配 裝置是用服務令牌註冊的,而非 IdP 登入——身份選擇器不適用;改用 OS/受管網路/服務令牌(B 部分)
建立時找不到 Split Tunnels / Local Domain Fallback 它們僅在儲存後可編輯——先建立再重開(D、E 部分)
某裝置無法訪問私有應用 修正分流:Exclude 移除 100.64.0.0/10,或 Include 新增 100.80.0.0/16 + IPv6 及你的 CIDR(D 部分)
設定更改未生效 允許最多 10 分鐘傳播;隨後重連客戶端
連線後家庭網路中斷 啟用本地網路排除(全域性設定;需 Exclude 模式)(F 部分)

👉 下一步:模組 4 — ZTNA / Access

釋出你的第一個私有應用,並替代對它的 VPN 訪問。