{"id":32760,"date":"2025-10-28T23:43:12","date_gmt":"2025-10-28T16:43:12","guid":{"rendered":"https:\/\/dps.media\/loi-thuong-gap-khi-import-dns-vao-cloudflare-va-cach-khac-phuc-chuan-nhat\/"},"modified":"2025-10-28T23:43:31","modified_gmt":"2025-10-28T16:43:31","slug":"%e5%af%bc%e5%85%a5dns%e5%88%b0cloudflare%e6%97%b6%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e5%8f%8a%e6%9c%80%e4%bd%b3%e4%bf%ae%e5%a4%8d%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/dps.media\/zh\/%e5%af%bc%e5%85%a5dns%e5%88%b0cloudflare%e6%97%b6%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e5%8f%8a%e6%9c%80%e4%bd%b3%e4%bf%ae%e5%a4%8d%e6%96%b9%e6%b3%95\/","title":{"rendered":"\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u5e38\u89c1\u9519\u8bef\u53ca\u6700\u6807\u51c6\u7684\u89e3\u51b3\u65b9\u6cd5"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p><!-- CSV\/XLSX \u2192 Cloudflare Zone Converter - DPS.MEDIA branded, CSS isolated -->\r\n<\/p><div id=\"csvToZoneWidget\"><\/div><script>\r\n(function(){\r\n  const ROOT_ID = 'csvToZoneWidget';\r\n  const root = document.getElementById(ROOT_ID);\r\n  if (!root) return;\r\n\r\n  \/\/ Styles (isolated with #csvToZoneWidget prefix)\r\n  const styles = `\r\n  #${ROOT_ID} {\r\n    all: initial !important;\r\n    font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif !important;\r\n  }\r\n  #${ROOT_ID} *, #${ROOT_ID} *::before, #${ROOT_ID} *::after {\r\n    box-sizing: border-box !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    border: none !important;\r\n    background: none !important;\r\n    outline: none !important;\r\n    text-decoration: none !important;\r\n    list-style: none !important;\r\n    font: inherit !important;\r\n    color: inherit !important;\r\n    vertical-align: baseline !important;\r\n    line-height: normal !important;\r\n  }\r\n\r\n  \/* Container *\/\r\n  #${ROOT_ID} .cz-container {\r\n    max-width: 1000px !important;\r\n    margin: 24px auto !important;\r\n    border: 1px solid #e5e7eb !important;\r\n    border-radius: 16px !important;\r\n    overflow: hidden !important;\r\n    background: #fff !important;\r\n    box-shadow: 0 10px 25px -5px rgba(21,21,119,0.1), 0 4px 6px -2px rgba(21,21,119,0.05) !important;\r\n    font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif !important;\r\n  }\r\n\r\n  \/* Header *\/\r\n  #${ROOT_ID} .cz-header {\r\n    background: linear-gradient(135deg, #151577 0%, #1e1e7a 100%) !important;\r\n    padding: 20px !important;\r\n    color: #fff !important;\r\n    position: relative !important;\r\n    overflow: hidden !important;\r\n  }\r\n  #${ROOT_ID} .cz-header-bg1 {\r\n    position: absolute !important; top: -20px !important; right: -20px !important;\r\n    width: 100px !important; height: 100px !important; background: rgba(255,255,255,0.05) !important; border-radius: 50% !important;\r\n  }\r\n  #${ROOT_ID} .cz-header-bg2 {\r\n    position: absolute !important; bottom: -30px !important; left: -30px !important;\r\n    width: 80px !important; height: 80px !important; background: rgba(50,181,97,0.15) !important; border-radius: 50% !important;\r\n  }\r\n  #${ROOT_ID} .cz-header-content { position: relative !important; z-index: 1 !important; }\r\n  #${ROOT_ID} .cz-header-top { display: flex !important; align-items: center !important; justify-content: space-between !important; margin-bottom: 8px !important; }\r\n  #${ROOT_ID} .cz-header-left { display: flex !important; align-items: center !important; gap: 12px !important; }\r\n  #${ROOT_ID} .cz-icon {\r\n    width: 40px !important; height: 40px !important; border-radius: 12px !important; display: flex !important; align-items: center !important; justify-content: center !important;\r\n    background: linear-gradient(135deg, #32b561, #28a555) !important; color: #fff !important; font-weight: 700 !important; font-size: 20px !important;\r\n    box-shadow: 0 4px 8px rgba(50,181,97,0.3) !important;\r\n  }\r\n  #${ROOT_ID} .cz-title { font-size: 20px !important; font-weight: 700 !important; letter-spacing: -0.5px !important; }\r\n  #${ROOT_ID} .cz-subtitle { font-size: 13px !important; opacity: 0.85 !important; }\r\n  #${ROOT_ID} .cz-brand { text-align: right !important; font-size: 12px !important; opacity: 0.75 !important; }\r\n  #${ROOT_ID} .cz-brand-name { color: #32b561 !important; font-weight: 700 !important; }\r\n  #${ROOT_ID} .cz-desc { font-size: 13px !important; opacity: 0.95 !important; }\r\n\r\n  \/* Main *\/\r\n  #${ROOT_ID} .cz-main { padding: 20px !important; }\r\n  #${ROOT_ID} .cz-actions { display: flex !important; flex-wrap: wrap !important; gap: 12px !important; align-items: end !important; margin-bottom: 12px !important; }\r\n  #${ROOT_ID} .cz-file {\r\n    padding: 12px !important; border: 2px dashed #cbd5e1 !important; border-radius: 12px !important; background: #f8fafc !important; color: #374151 !important;\r\n    display: flex !important; align-items: center !important; gap: 10px !important; flex: 1 !important; min-width: 240px !important;\r\n  }\r\n  #${ROOT_ID} .cz-file input[type=\"file\"] { display: none !important; }\r\n  #${ROOT_ID} .cz-btn { padding: 12px 18px !important; border-radius: 10px !important; cursor: pointer !important; font-weight: 700 !important; font-size: 13px !important; transition: all 0.25s !important; }\r\n  #${ROOT_ID} .cz-btn-primary { background: linear-gradient(135deg, #151577, #1e1e7a) !important; color: #fff !important; box-shadow: 0 4px 12px rgba(21,21,119,0.3) !important; }\r\n  #${ROOT_ID} .cz-btn-primary:hover { transform: translateY(-1px) !important; box-shadow: 0 6px 18px rgba(21,21,119,0.4) !important; }\r\n  #${ROOT_ID} .cz-btn-secondary { background: #fff !important; border: 2px solid #cbd5e1 !important; color: #374151 !important; }\r\n  #${ROOT_ID} .cz-btn-danger { background: #fff !important; border: 2px solid #dc2626 !important; color: #dc2626 !important; }\r\n  #${ROOT_ID} .cz-btn:disabled { background: #6b7280 !important; color: #fff !important; cursor: not-allowed !important; box-shadow: none !important; transform: none !important; }\r\n\r\n  #${ROOT_ID} .cz-statusbar { display: flex !important; gap: 10px !important; flex-wrap: wrap !important; align-items: center !important; padding: 12px !important; background: linear-gradient(90deg, #f8fafc, #f1f5f9) !important; border-radius: 12px !important; border: 1px solid #e2e8f0 !important; margin-bottom: 12px !important; }\r\n  #${ROOT_ID} .cz-status { font-size: 12px !important; font-weight: 600 !important; color: #151577 !important; margin-left: auto !important; }\r\n  #${ROOT_ID} .cz-badge { font-size: 12px !important; padding: 6px 10px !important; border-radius: 8px !important; background: #eef2ff !important; color: #151577 !important; border: 1px solid #c7d2fe !important; }\r\n  #${ROOT_ID} .cz-error { display: none !important; background: linear-gradient(135deg, #fef2f2, #fee2e2) !important; border: 2px solid #fca5a5 !important; color: #991b1b !important; padding: 12px !important; border-radius: 12px !important; margin-bottom: 12px !important; align-items: center !important; gap: 10px !important; }\r\n\r\n  \/* Output *\/\r\n  #${ROOT_ID} .cz-output { border: 2px solid #e5e7eb !important; border-radius: 12px !important; background: #fafafa !important; min-height: 160px !important; padding: 12px !important; overflow: auto !important; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important; font-size: 12px !important; white-space: pre !important; }\r\n  #${ROOT_ID} .cz-empty { text-align: center !important; color: #64748b !important; font-style: italic !important; }\r\n\r\n  \/* Toggle groups *\/\r\n  #${ROOT_ID} .cz-row { display: flex !important; flex-wrap: wrap !important; gap: 12px !important; align-items: center !important; margin-bottom: 12px !important; }\r\n  #${ROOT_ID} .cz-toggle { display: inline-flex !important; gap: 6px !important; background: #f1f5f9 !important; border: 1px solid #e2e8f0 !important; padding: 4px !important; border-radius: 10px !important; }\r\n  #${ROOT_ID} .cz-toggle-btn { padding: 8px 12px !important; border-radius: 8px !important; font-size: 12px !important; cursor: pointer !important; background: #fff !important; color: #374151 !important; border: 1px solid transparent !important; }\r\n  #${ROOT_ID} .cz-toggle-btn.active { background: linear-gradient(135deg, #151577, #1e1e7a) !important; color: #fff !important; border-color: #151577 !important; box-shadow: 0 4px 12px rgba(21,21,119,0.25) !important; }\r\n\r\n  \/* Footer *\/\r\n  #${ROOT_ID} .cz-footer { padding: 12px 20px !important; border-top: 1px solid #e5e7eb !important; background: #f9fafb !important; }\r\n  #${ROOT_ID} .cz-footer-content { display: flex !important; gap: 8px !important; align-items: center !important; justify-content: center !important; font-size: 12px !important; color: #6b7280 !important; }\r\n  #${ROOT_ID} .cz-footer-brand { color: #32b561 !important; font-weight: 700 !important; }\r\n  #${ROOT_ID} .cz-footer-link { color: #151577 !important; text-decoration: underline !important; }\r\n  `;\r\n\r\n  \/\/ Inject CSS into <head> (safer across WP themes)\r\n  const styleEl = document.createElement('style');\r\n  styleEl.textContent = styles;\r\n  document.head.appendChild(styleEl);\r\n\r\n  \/\/ HTML structure\r\n  root.innerHTML = `\r\n    <div class=\"cz-container\">\r\n      <div class=\"cz-header\">\r\n        <div class=\"cz-header-bg1\">\r\n        <div class=\"cz-header-bg2\">\r\n        <div class=\"cz-header-content\">\r\n          <div class=\"cz-header-top\">\r\n            <div class=\"cz-header-left\">\r\n              <div class=\"cz-icon\">\ud83e\udde9\r\n              <div>\r\n                <div class=\"cz-title\">CSV\/XLSX \u2192 Cloudflare Zone\r\n                <div class=\"cz-subtitle\">Chuy\u1ec3n t\u1eeb b\u1ea3ng DNS sang file BIND (Cloudflare)\r\n              \r\n            \r\n            <div class=\"cz-brand\">\r\n              <div class=\"cz-brand-name\">DPS.MEDIA\r\n              <div>Digital Tools\r\n            \r\n          \r\n          <div class=\"cz-desc\">Nh\u1eadp file CSV\/XLSX c\u00f3 c\u1ed9t: <strong>Host, <strong>Type, <strong>Data, <strong>TTL. K\u1ebft qu\u1ea3 gi\u1ed1ng v\u00ed d\u1ee5 trong <em>zone-sample.\r\n        \r\n      \r\n      <div class=\"cz-main\">\r\n        <div class=\"cz-actions\">\r\n          <label class=\"cz-file\">\r\n            <div>\ud83d\udcc1 Ch\u1ecdn file (.csv, .xlsx, .txt)\r\n            <input id=\"cz-file-input\" type=\"file\" accept=\".csv,.xlsx,.xls,.txt,.zone\" \/>\r\n          \r\n          <button id=\"cz-convert\" class=\"cz-btn cz-btn-primary\" disabled>\ud83d\ude80 Chuy\u1ec3n \u0110\u1ed5i\r\n          <button id=\"cz-clear\" class=\"cz-btn cz-btn-danger\">\ud83d\uddd1\ufe0f X\u00f3a\r\n        \r\n        \r\n        <div class=\"cz-row\">\r\n          <div class=\"cz-toggle\" id=\"cz-input-mode\">\r\n            <button class=\"cz-toggle-btn active\" data-mode=\"file\">T\u1ec7p\r\n            <button class=\"cz-toggle-btn\" data-mode=\"paste\">D\u00e1n\r\n          \r\n          <div class=\"cz-toggle\" id=\"cz-paste-type\" style=\"display:none\">\r\n            <button class=\"cz-toggle-btn active\" data-ptype=\"zone\">Zone (.txt)\r\n            <button class=\"cz-toggle-btn\" data-ptype=\"csv\">CSV\r\n          \r\n        \r\n\r\n        <div class=\"cz-row\" id=\"cz-paste-wrap\" style=\"display:none\">\r\n          <textarea id=\"cz-paste\" rows=\"8\" style=\"width:100%; padding:12px; border:2px solid #e5e7eb; border-radius:12px; background:#fafbfc; color:#374151; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; font-size:12px; resize:vertical;\">\r\n        \r\n        <div class=\"cz-statusbar\">\r\n          <div id=\"cz-fileinfo\" class=\"cz-badge\">Ch\u01b0a ch\u1ecdn file\r\n          <div class=\"cz-toggle\" id=\"cz-view-mode\">\r\n            <button class=\"cz-toggle-btn active\" data-view=\"zone\">Hi\u1ec3n th\u1ecb Zone\r\n            <button class=\"cz-toggle-btn\" data-view=\"csv\">Hi\u1ec3n th\u1ecb CSV\r\n          \r\n          <button id=\"cz-copy\" class=\"cz-btn cz-btn-secondary\" disabled>\ud83d\udccb Sao ch\u00e9p\r\n          <button id=\"cz-download-zone\" class=\"cz-btn cz-btn-secondary\" disabled>\ud83d\udcbe T\u1ea3i .txt\r\n          <button id=\"cz-download-csv\" class=\"cz-btn cz-btn-secondary\" disabled>\ud83d\udcbe T\u1ea3i .csv\r\n          <button id=\"cz-download-xlsx\" class=\"cz-btn cz-btn-secondary\" disabled>\ud83d\udcbe T\u1ea3i .xlsx\r\n          <div id=\"cz-status\" class=\"cz-status\">\r\n        \r\n        <div id=\"cz-error\" class=\"cz-error\"><div>\u26a0\ufe0f<div id=\"cz-error-text\">\r\n        <div id=\"cz-output\" class=\"cz-output\">\r\n          <div class=\"cz-empty\">S\u1eb5n s\u00e0ng chuy\u1ec3n \u0111\u1ed5i... T\u1ea3i t\u1ec7p ho\u1eb7c d\u00e1n n\u1ed9i dung (CSV\/XLSX\/Zone) \u0111\u1ec3 b\u1eaft \u0111\u1ea7u.\r\n        \r\n      \r\n      <div class=\"cz-footer\">\r\n        <div class=\"cz-footer-content\">\r\n          <span>Ph\u00e1t tri\u1ec3n b\u1edfi\r\n          <strong class=\"cz-footer-brand\">DPS.MEDIA\r\n          <span>\u2022\r\n          <span>C\u00f4ng c\u1ee5 s\u1ed1 chuy\u00ean nghi\u1ec7p\r\n          <span>\u2022\r\n          <a class=\"cz-footer-link\" href=\"https:\/\/dps.media\" target=\"_blank\">dps.media\r\n        \r\n      \r\n    \r\n  `;\r\n\r\n  \/\/ Elements\r\n  const fileInput = root.querySelector('#cz-file-input');\r\n  const btnConvert = root.querySelector('#cz-convert');\r\n  const btnClear = root.querySelector('#cz-clear');\r\n  const btnCopy = root.querySelector('#cz-copy');\r\n  const btnDownloadZone = root.querySelector('#cz-download-zone');\r\n  const btnDownloadCSV = root.querySelector('#cz-download-csv');\r\n  const btnDownloadXLSX = root.querySelector('#cz-download-xlsx');\r\n  const outEl = root.querySelector('#cz-output');\r\n  const statusEl = root.querySelector('#cz-status');\r\n  const fileInfoEl = root.querySelector('#cz-fileinfo');\r\n  const errorEl = root.querySelector('#cz-error');\r\n  const errorTextEl = root.querySelector('#cz-error-text');\r\n  const inputModeWrap = root.querySelector('#cz-input-mode');\r\n  const pasteTypeWrap = root.querySelector('#cz-paste-type');\r\n  const pasteWrap = root.querySelector('#cz-paste-wrap');\r\n  const pasteTextarea = root.querySelector('#cz-paste');\r\n  const viewModeWrap = root.querySelector('#cz-view-mode');\r\n\r\n  let lastZoneText = '';\r\n  let lastCSVText = '';\r\n  let currentFile = null;\r\n  let inputMode = 'file'; \/\/ 'file' | 'paste'\r\n  let pasteType = 'zone'; \/\/ 'zone' | 'csv'\r\n  let viewMode = 'zone'; \/\/ 'zone' | 'csv'\r\n\r\n  function setStatus(msg){ statusEl.textContent = msg || ''; }\r\n  function showError(msg){ errorEl.style.display = 'flex'; errorTextEl.textContent = msg; }\r\n  function clearError(){ errorEl.style.display = 'none'; errorTextEl.textContent = ''; }\r\n  function setOutputText(text){ outEl.textContent = text || ''; if(!text){ outEl.innerHTML = '<div class=\"cz-empty\">Kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u...'; } }\r\n  function refreshOutputView(){\r\n    if (viewMode === 'zone') {\r\n      setOutputText(lastZoneText);\r\n    } else {\r\n      setOutputText(lastCSVText);\r\n    }\r\n    btnCopy.disabled = !(viewMode === 'zone' ? lastZoneText : lastCSVText);\r\n    btnDownloadZone.disabled = !lastZoneText;\r\n    btnDownloadCSV.disabled = !lastCSVText;\r\n    btnDownloadXLSX.disabled = !lastCSVText;\r\n  }\r\n\r\n  \/\/ Lightweight CSV parser (handles quotes, commas, newlines)\r\n  function parseCSV(text){\r\n    const rows = [];\r\n    let i = 0, field = '', row = [], inQuotes = false; \r\n    while (i < text.length){\r\n      const c = text[i];\r\n      if (inQuotes){\r\n        if (c === '\"'){\r\n          if (i + 1 < text.length && text[i+1] === '\"'){ field += '\"'; i += 2; continue; }\r\n          inQuotes = false; i++; continue;\r\n        } else { field += c; i++; continue; }\r\n      } else {\r\n        if (c === '\"'){ inQuotes = true; i++; continue; }\r\n        if (c === ','){ row.push(field); field = ''; i++; continue; }\r\n        if (c === '\\n'){ row.push(field); rows.push(row); field=''; row=[]; i++; continue; }\r\n        if (c === '\\r'){ \/\/ handle CRLF\r\n          if (i + 1 < text.length && text[i+1] === '\\n'){ i += 2; row.push(field); rows.push(row); field=''; row=[]; continue; }\r\n          i++; continue;\r\n        }\r\n        field += c; i++; continue;\r\n      }\r\n    }\r\n    \/\/ last field\r\n    if (field.length || row.length){ row.push(field); rows.push(row); }\r\n    return rows;\r\n  }\r\n\r\n  \/\/ Utilities\r\n  function toHeadersMap(arr){\r\n    const map = {};\r\n    arr.forEach((h, idx) => { if (!h) return; map[String(h).trim().toLowerCase()] = idx; });\r\n    return map;\r\n  }\r\n  function safeGet(row, idx){ return (idx != null && idx >= 0 && idx < row.length) ? String(row[idx]).trim() : ''; }\r\n  function normalizeTXT(val){\r\n    if (val == null) return '\"\"';\r\n    let s = String(val).trim();\r\n    if (!s.length) return '\"\"';\r\n    \/\/ If already wrapped in quotes, return as-is (normalize to double quotes)\r\n    const starts = s.startsWith('\"') || s.startsWith(\"'\");\r\n    const ends = s.endsWith('\"') || s.endsWith(\"'\");\r\n    if (starts && ends && s.length >= 2){\r\n      \/\/ normalize outer to double quotes\r\n      s = '\"' + s.slice(1, -1) + '\"';\r\n      return s;\r\n    }\r\n    \/\/ Escape embedded quotes by doubling\r\n    s = s.replace(\/\"\/g, '\"\"');\r\n    return '\"' + s + '\"';\r\n  }\r\n  function normalizeHost(h){\r\n    return String(h || '').trim();\r\n  }\r\n  function normalizeType(t){ return String(t || '').trim().toUpperCase(); }\r\n  function toInt(v, def){ const n = parseInt(String(v||'').trim(), 10); return Number.isFinite(n) ? n : def; }\r\n  function isNumberToken(tok){ return \/^\\d+$\/.test(String(tok||'').trim()); }\r\n  function extractMX(data){\r\n    const parts = String(data||'').trim().split(\/\\s+\/);\r\n    if (parts.length >= 2 && isNumberToken(parts[0])){\r\n      return { Priority: parts[0], Data: parts.slice(1).join(' ') };\r\n    }\r\n    return { Priority: '', Data: String(data||'').trim() };\r\n  }\r\n\r\n  function splitMultiDataIfNeeded(type, data){\r\n    if (type === 'NS'){\r\n      \/\/ Support comma-separated NS targets\r\n      return String(data||'').split(',').map(s => s.trim()).filter(Boolean);\r\n    }\r\n    return [String(data||'').trim()];\r\n  }\r\n\r\n  \/\/ Build zone lines from structured rows\r\n  function buildZoneLines(rows){\r\n    const lines = [];\r\n    for (const r of rows){\r\n      const host = normalizeHost(r.Host ?? r.host ?? r.HOST ?? r[\"Host\"]);\r\n      const type = normalizeType(r.Type ?? r.type ?? r.TYPE ?? r[\"Type\"]);\r\n      const ttl = toInt(r.TTL ?? r.ttl ?? r.Ttl ?? r[\"TTL\"], 3600);\r\n      let data = r.Data ?? r.data ?? r.DATA ?? r[\"Data\"];\r\n\r\n      \/\/ MX may have Priority column\r\n      if (type === 'MX' && (r.Priority != null || r.priority != null)){\r\n        const prio = String(r.Priority ?? r.priority).trim();\r\n        if (prio) data = prio + ' ' + String(data ?? '').trim();\r\n      }\r\n\r\n      if (!host || !type){ continue; }\r\n\r\n      if (type === 'TXT'){\r\n        const txtVal = normalizeTXT(String(data ?? ''));\r\n        lines.push(`${host}\\t${ttl}\\tIN\\tTXT\\t${txtVal}`);\r\n        continue;\r\n      }\r\n\r\n      const parts = splitMultiDataIfNeeded(type, data);\r\n      for (const p of parts){\r\n        if (!p) continue;\r\n        lines.push(`${host}\\t${ttl}\\tIN\\t${type}\\t${p}`);\r\n      }\r\n    }\r\n    return lines;\r\n  }\r\n\r\n  \/\/ Parse Cloudflare zone txt (line-based) \u2192 records\r\n  function parseZoneToRecords(text){\r\n    const lines = String(text||'').split(\/\\r?\\n\/);\r\n    const out = [];\r\n    for (let raw of lines){\r\n      let line = String(raw||'').trim();\r\n      if (!line || line.startsWith(';') || line.startsWith('#')) continue;\r\n      const parts = line.split(\/\\s+\/);\r\n      if (parts.length < 3) continue;\r\n      let i = 0;\r\n      const host = parts[i++];\r\n      let ttl = 3600;\r\n      if (parts[i] && isNumberToken(parts[i])){ ttl = parseInt(parts[i++], 10); }\r\n      if (parts[i] && \/^IN$\/i.test(parts[i])){ i++; }\r\n      const type = (parts[i++]||'').toUpperCase();\r\n      if (!type) continue;\r\n      const data = parts.slice(i).join(' ');\r\n      const rec = { Host: host, Type: type, Data: data, TTL: ttl };\r\n      if (type === 'MX'){\r\n        const mx = extractMX(data);\r\n        rec.Data = mx.Data; rec.Priority = mx.Priority;\r\n      }\r\n      out.push(rec);\r\n    }\r\n    return out;\r\n  }\r\n\r\n  function recordsToCSVText(records){\r\n    const normalized = records.map(r => ({\r\n      Host: normalizeHost(r.Host ?? r.host),\r\n      Type: normalizeType(r.Type ?? r.type),\r\n      Data: String(r.Data ?? r.data ?? ''),\r\n      TTL: toInt(r.TTL ?? r.ttl, 3600),\r\n      Priority: r.Priority ?? r.priority ?? ''\r\n    }));\r\n    const hasPriority = normalized.some(r => String(r.Priority||'').trim());\r\n    const header = hasPriority ? ['Host','Type','Data','TTL','Priority'] : ['Host','Type','Data','TTL'];\r\n    const escapeCSV = (v)=>{\r\n      const s = String(v ?? '');\r\n      if (\/[\",\\n]\/.test(s)) return '\"' + s.replace(\/\"\/g,'\"\"') + '\"';\r\n      return s;\r\n    };\r\n    const lines = [header.join(',')];\r\n    for (const r of normalized){\r\n      const arr = hasPriority ? [r.Host, r.Type, r.Data, r.TTL, r.Priority] : [r.Host, r.Type, r.Data, r.TTL];\r\n      lines.push(arr.map(escapeCSV).join(','));\r\n    }\r\n    return lines.join('\\n');\r\n  }\r\n\r\n  function replaceTabsOutsideQuotes(s){\r\n    let out = '';\r\n    let inQuotes = false;\r\n    for (let i=0;i<s.length;i++){\r\n      const c = s[i];\r\n      if (c === '\"'){\r\n        \/\/ double quotes inside quotes\r\n        if (inQuotes && i+1 < s.length && s[i+1] === '\"'){ out += '\"\"'; i++; continue; }\r\n        inQuotes = !inQuotes; out += '\"'; continue;\r\n      }\r\n      if (!inQuotes && c === '\\t'){ out += ','; continue; }\r\n      out += c;\r\n    }\r\n    return out;\r\n  }\r\n\r\n  \/\/ Parse CSV\/TSV text to array of objects using header row\r\n  function csvTextToObjects(text){\r\n    let body = String(text||'');\r\n    \/\/ If looks like TSV, normalize to CSV\r\n    const tabCount = (body.match(\/\\t\/g)||[]).length;\r\n    const commaCount = (body.match(\/,\/g)||[]).length;\r\n    if (tabCount > commaCount) body = replaceTabsOutsideQuotes(body);\r\n    const table = parseCSV(body);\r\n    if (!table.length) return [];\r\n    const header = table[0];\r\n    const hmap = toHeadersMap(header);\r\n    const out = [];\r\n    for (let i=1; i<table.length; i++){\r\n      const row = table[i];\r\n      if (!row || row.length === 0) continue;\r\n      const obj = {};\r\n      for (const [key, idx] of Object.entries(hmap)){\r\n        obj[key] = safeGet(row, idx);\r\n      }\r\n      \/\/ Normalize keys to canonical casing\r\n      const record = {\r\n        Host: obj['host'] ?? '',\r\n        Type: obj['type'] ?? '',\r\n        Data: obj['data'] ?? '',\r\n        TTL: obj['ttl'] ?? obj['time to live'] ?? ''\r\n      };\r\n      \/\/ Optional Priority\r\n      if (obj['priority'] != null) record.Priority = obj['priority'];\r\n      out.push(record);\r\n    }\r\n    return out;\r\n  }\r\n\r\n  \/\/ XLSX loader (from CDN) \u2014 only if needed\r\n  let xlsxReady = false;\r\n  async function ensureXLSX(){\r\n    if (xlsxReady || (typeof window !== 'undefined' && window.XLSX)) { xlsxReady = true; return; }\r\n    setStatus('\u0110ang t\u1ea3i th\u01b0 vi\u1ec7n XLSX...');\r\n    await new Promise((resolve, reject) => {\r\n      const s = document.createElement('script');\r\n      s.src = 'https:\/\/cdn.jsdelivr.net\/npm\/xlsx@0.18.5\/dist\/xlsx.full.min.js';\r\n      s.onload = () => { xlsxReady = true; resolve(); };\r\n      s.onerror = () => reject(new Error('Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c th\u01b0 vi\u1ec7n XLSX. Vui l\u00f2ng d\u00f9ng CSV.'));\r\n      document.head.appendChild(s);\r\n    });\r\n  }\r\n\r\n  async function fileToRows(file){\r\n    const name = (file?.name || '').toLowerCase();\r\n    if (name.endsWith('.csv')){\r\n      const text = await file.text();\r\n      return csvTextToObjects(text);\r\n    }\r\n    if (name.endsWith('.xlsx') || name.endsWith('.xls')){\r\n      await ensureXLSX();\r\n      const ab = await file.arrayBuffer();\r\n      const wb = window.XLSX.read(ab, { type: 'array' });\r\n      const sheetName = wb.SheetNames[0];\r\n      const ws = wb.Sheets[sheetName];\r\n      \/\/ to JSON with header row detection\r\n      const arr = window.XLSX.utils.sheet_to_json(ws, { defval: '' });\r\n      \/\/ Attempt to map any casing\r\n      return arr.map(r => ({\r\n        Host: r.Host ?? r.host ?? r.HOST ?? r[\"Host\"] ?? r[\"HOST\"] ?? '',\r\n        Type: r.Type ?? r.type ?? r.TYPE ?? r[\"Type\"] ?? r[\"TYPE\"] ?? '',\r\n        Data: r.Data ?? r.data ?? r.DATA ?? r[\"Data\"] ?? r[\"DATA\"] ?? '',\r\n        TTL: r.TTL ?? r.ttl ?? r.Ttl ?? r[\"TTL\"] ?? r[\"Ttl\"] ?? '',\r\n        Priority: r.Priority ?? r.priority ?? r.PRIORITY\r\n      }));\r\n    }\r\n    if (name.endsWith('.txt') || name.endsWith('.zone')){\r\n      const text = await file.text();\r\n      return parseZoneToRecords(text);\r\n    }\r\n    throw new Error('\u0110\u1ecbnh d\u1ea1ng kh\u00f4ng h\u1ed7 tr\u1ee3. H\u00e3y ch\u1ecdn .csv ho\u1eb7c .xlsx');\r\n  }\r\n\r\n  function deriveDownloadName(file){\r\n    if (!file || !file.name) return 'cloudflare-zone.txt';\r\n    const base = file.name.replace(\/\\.[^.]+$\/,'');\r\n    const pre = base.includes('-') ? base.split('-')[0] : base;\r\n    return pre + '-cloudflare-bind-fixed.txt';\r\n  }\r\n\r\n  async function convertCurrent(){\r\n    clearError(); setStatus('\u0110ang x\u1eed l\u00fd...');\r\n    try {\r\n      let records = [];\r\n      if (inputMode === 'file'){\r\n        if (!currentFile){ showError('Vui l\u00f2ng ch\u1ecdn t\u1ec7p CSV\/XLSX\/TXT.'); setStatus(''); return; }\r\n        records = await fileToRows(currentFile);\r\n      } else {\r\n        const text = pasteTextarea.value || '';\r\n        if (!text.trim()){ showError('Vui l\u00f2ng d\u00e1n n\u1ed9i dung \u0111\u1ec3 chuy\u1ec3n \u0111\u1ed5i.'); setStatus(''); return; }\r\n        if (pasteType === 'csv') records = csvTextToObjects(text);\r\n        else records = parseZoneToRecords(text);\r\n      }\r\n\r\n      if (!records.length){ lastZoneText=''; lastCSVText=''; refreshOutputView(); setStatus('Kh\u00f4ng t\u00ecm th\u1ea5y d\u1eef li\u1ec7u.'); return; }\r\n\r\n      const zoneLines = buildZoneLines(records);\r\n      lastZoneText = zoneLines.join('\\n');\r\n      lastCSVText = recordsToCSVText(records);\r\n      refreshOutputView();\r\n      setStatus(`\u2705 Ho\u00e0n th\u00e0nh: ${records.length} b\u1ea3n ghi`);\r\n    } catch(e){\r\n      showError(e.message || String(e)); setStatus('\u274c L\u1ed7i');\r\n    }\r\n  }\r\n\r\n  \/\/ Events\r\n  fileInput.addEventListener('change', () => {\r\n    clearError();\r\n    const f = fileInput.files && fileInput.files[0];\r\n    currentFile = f || null;\r\n    if (currentFile){\r\n      fileInfoEl.textContent = `\u0110\u00e3 ch\u1ecdn: ${currentFile.name}`;\r\n      btnConvert.disabled = false;\r\n    } else {\r\n      fileInfoEl.textContent = 'Ch\u01b0a ch\u1ecdn file';\r\n      btnConvert.disabled = true;\r\n      btnCopy.disabled = true; btnDownloadZone.disabled = true; btnDownloadCSV.disabled = true; btnDownloadXLSX.disabled = true;\r\n      lastZoneText = ''; lastCSVText=''; setOutputText('');\r\n    }\r\n    setStatus('');\r\n  });\r\n\r\n  btnConvert.addEventListener('click', convertCurrent);\r\n\r\n  btnClear.addEventListener('click', () => {\r\n    fileInput.value = '';\r\n    currentFile = null;\r\n    lastZoneText = '';\r\n    lastCSVText = '';\r\n    btnConvert.disabled = true;\r\n    btnCopy.disabled = true;\r\n    btnDownloadZone.disabled = true;\r\n    btnDownloadCSV.disabled = true;\r\n    btnDownloadXLSX.disabled = true;\r\n    fileInfoEl.textContent = 'Ch\u01b0a ch\u1ecdn file';\r\n    setOutputText('');\r\n    clearError();\r\n    setStatus('\u0110\u00e3 x\u00f3a.');\r\n  });\r\n\r\n  async function copyToClipboard(text){\r\n    if (!text) return;\r\n    if (navigator.clipboard && navigator.clipboard.writeText){ await navigator.clipboard.writeText(text); return; }\r\n    const ta = document.createElement('textarea');\r\n    ta.value = text; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); document.body.removeChild(ta);\r\n  }\r\n\r\n  btnCopy.addEventListener('click', async () => {\r\n    const payload = (viewMode === 'zone') ? lastZoneText : lastCSVText;\r\n    if (!payload){ setStatus('\u274c Kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u \u0111\u1ec3 sao ch\u00e9p'); return; }\r\n    try { await copyToClipboard(payload); setStatus('\u2705 \u0110\u00e3 sao ch\u00e9p v\u00e0o clipboard'); } catch(e){ setStatus('\u274c Sao ch\u00e9p th\u1ea5t b\u1ea1i'); }\r\n  });\r\n\r\n  btnDownloadZone.addEventListener('click', () => {\r\n    if (!lastZoneText){ setStatus('\u274c Kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u \u0111\u1ec3 t\u1ea3i'); return; }\r\n    const blob = new Blob([lastZoneText], { type: 'text\/plain;charset=utf-8' });\r\n    const url = URL.createObjectURL(blob);\r\n    const a = document.createElement('a');\r\n    a.href = url; a.download = deriveDownloadName(currentFile);\r\n    document.body.appendChild(a); a.click(); document.body.removeChild(a);\r\n    URL.revokeObjectURL(url);\r\n    setStatus('\ud83d\udcbe \u0110\u00e3 t\u1ea3i zone.txt');\r\n  });\r\n\r\n  btnDownloadCSV.addEventListener('click', () => {\r\n    if (!lastCSVText){ setStatus('\u274c Kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u \u0111\u1ec3 t\u1ea3i'); return; }\r\n    const name = (currentFile?.name || 'cloudflare-zone').replace(\/\\.[^.]+$\/,'') + '.csv';\r\n    const blob = new Blob([lastCSVText], { type: 'text\/csv;charset=utf-8' });\r\n    const url = URL.createObjectURL(blob);\r\n    const a = document.createElement('a');\r\n    a.href = url; a.download = name;\r\n    document.body.appendChild(a); a.click(); document.body.removeChild(a);\r\n    URL.revokeObjectURL(url);\r\n    setStatus('\ud83d\udcbe \u0110\u00e3 t\u1ea3i CSV');\r\n  });\r\n\r\n  btnDownloadXLSX.addEventListener('click', async () => {\r\n    try{\r\n      await ensureXLSX();\r\n      const records = csvTextToObjects(lastCSVText);\r\n      const ws = window.XLSX.utils.json_to_sheet(records);\r\n      const wb = window.XLSX.utils.book_new();\r\n      window.XLSX.utils.book_append_sheet(wb, ws, 'DNS');\r\n      const name = (currentFile?.name || 'cloudflare-zone').replace(\/\\.[^.]+$\/,'') + '.xlsx';\r\n      window.XLSX.writeFile(wb, name);\r\n      setStatus('\ud83d\udcbe \u0110\u00e3 t\u1ea3i XLSX');\r\n    }catch(e){ setStatus('\u274c L\u1ed7i xu\u1ea5t XLSX'); showError(e.message || String(e)); }\r\n  });\r\n\r\n  \/\/ Input mode toggles\r\n  function updateInputMode(){\r\n    const fileActive = inputMode === 'file';\r\n    pasteWrap.style.display = fileActive ? 'none' : 'flex';\r\n    pasteTypeWrap.style.display = fileActive ? 'none' : 'inline-flex';\r\n    fileInfoEl.textContent = fileActive ? (currentFile ? `\u0110\u00e3 ch\u1ecdn: ${currentFile.name}` : 'Ch\u01b0a ch\u1ecdn file') : (pasteType === 'zone' ? 'D\u00e1n: Zone' : 'D\u00e1n: CSV');\r\n    if (fileActive){\r\n      btnConvert.disabled = !currentFile;\r\n    } else {\r\n      btnConvert.disabled = !(pasteTextarea.value && pasteTextarea.value.trim());\r\n    }\r\n  }\r\n  inputModeWrap.querySelectorAll('.cz-toggle-btn').forEach(btn => {\r\n    btn.addEventListener('click', ()=>{\r\n      inputModeWrap.querySelectorAll('.cz-toggle-btn').forEach(b=>b.classList.remove('active'));\r\n      btn.classList.add('active');\r\n      inputMode = btn.getAttribute('data-mode');\r\n      updateInputMode();\r\n    });\r\n  });\r\n  pasteTypeWrap.querySelectorAll('.cz-toggle-btn').forEach(btn => {\r\n    btn.addEventListener('click', ()=>{\r\n      pasteTypeWrap.querySelectorAll('.cz-toggle-btn').forEach(b=>b.classList.remove('active'));\r\n      btn.classList.add('active');\r\n      pasteType = btn.getAttribute('data-ptype');\r\n      updateInputMode();\r\n    });\r\n  });\r\n\r\n  pasteTextarea.addEventListener('input', ()=>{\r\n    if (inputMode === 'paste'){\r\n      btnConvert.disabled = !(pasteTextarea.value && pasteTextarea.value.trim());\r\n    }\r\n  });\r\n\r\n  \/\/ View mode toggles\r\n  function updateViewMode(){\r\n    viewModeWrap.querySelectorAll('.cz-toggle-btn').forEach(b=>b.classList.remove('active'));\r\n    const activeBtn = viewModeWrap.querySelector(`.cz-toggle-btn[data-view=\"${viewMode}\"]`);\r\n    if (activeBtn) activeBtn.classList.add('active');\r\n    refreshOutputView();\r\n  }\r\n  viewModeWrap.querySelectorAll('.cz-toggle-btn').forEach(btn => {\r\n    btn.addEventListener('click', ()=>{\r\n      viewMode = btn.getAttribute('data-view');\r\n      updateViewMode();\r\n    });\r\n  });\r\n\r\n  updateInputMode();\r\n  updateViewMode();\r\n})();\r\n<\/script><!-- End CSV\/XLSX \u2192 Cloudflare Zone Converter --><strong>\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u7684\u9519\u8bef\u4f1a\u5bfc\u81f4\u8bbf\u95ee\u4e2d\u65ad\uff0c\u76f4\u63a5\u5f71\u54cd\u7f51\u7ad9\u8fd0\u8425\u3002.<\/strong><p> \u6b63\u786e\u7406\u89e3\u548c\u5904\u7406\u5c06\u5e2e\u52a9\u4f01\u4e1a\u907f\u514d\u5ba2\u6237\u6d41\u5931\uff0c\u6709\u6548\u4fdd\u62a4\u7ebf\u4e0a\u58f0\u8a89\u3002.<\/p><p>Theo kh\u1ea3o s\u00e1t, h\u01a1n 40% s\u1ef1 \u2064c\u1ed1 DNS li\u00ean quan \u0111\u1ebfn sai s\u00f3t \u2063c\u1ea5u h\u00ecnh khi nh\u1eadp li\u1ec7u. <a class=\"wpil_keyword_link\" href=\"https:\/\/dps.media\/zh\/\" title=\"DPS.MEDIA \u80a1\u4efd\u516c\u53f8\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"753\">DPS.MEDIA<\/a> \u2063lu\u00f4n \u0111\u1ed3ng h\u00e0nh\u200b c\u00f9ng SMEs, t\u01b0 v\u1ea5n c\u00e1ch x\u1eed l\u00fd nhanh v\u00e0 chu\u1ea9n x\u00e1c \u0111\u1ec3 \u200ct\u0103ng hi\u1ec7u su\u1ea5t ho\u1ea1t \u0111\u1ed9ng tr\u1ef1c tuy\u1ebfn.<br><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/isotkt.jpg\" alt=\"\u5728\u5c06DNS\u6587\u4ef6\u5bfc\u5165Cloudflare\u8fc7\u7a0b\u4e2d\u5e38\u89c1\u7684\u9519\u8bef\u53ca\u5176\u6839\u672c\u539f\u56e0\" title=\"\"><\/p><h2 id=\"nhung-sai-sot-pho-bien-trong-qua-trinh-nhap-tap-tin-dns-vao-cloudflare-va-nguyen-nhan-goc-re\">\u5728\u5c06DNS\u6587\u4ef6\u5bfc\u5165Cloudflare\u8fc7\u7a0b\u4e2d\u5e38\u89c1\u7684\u9519\u8bef\u53ca\u5176\u6839\u672c\u539f\u56e0<\/h2><h3>\u5bfc\u5165DNS\u6587\u4ef6\u5230Cloudflare\u65f6\u5e38\u89c1\u7684\u9519\u8bef<\/h3><p>\u5c06DNS\u6587\u4ef6\u5bfc\u5165Cloudflare\u8fc7\u7a0b\u4e2d\uff0c\u5e38\u89c1\u9519\u8bef\u5305\u62ec\u6587\u4ef6\u683c\u5f0f\u4e0d\u6b63\u786e\u3001\u8bb0\u5f55\u91cd\u590d\u6216\u7f3a\u5c11\u91cd\u8981\u8bb0\u5f55\uff08\u5982MX\u548cTXT\uff09\u3002\u4f8b\u5982\uff0c\u8bb8\u591a\u7528\u6237\u5bfc\u5165\u6807\u51c6BIND zone\u6587\u4ef6\uff0c\u4f46Cloudflare\u4ec5\u63a5\u53d7\u90e8\u5206\u7279\u5b9a\u7ed3\u6784\uff0c\u5bfc\u81f4\u89e3\u6790\u9519\u8bef\u6216\u65e0\u6cd5\u81ea\u52a8\u51c6\u786e\u5bfc\u5165\u3002\u7edf\u8ba1\u663e\u793a\uff0c\u7ea635%\u7684DNS\u6545\u969c\u6e90\u4e8e\u683c\u5f0f\u9519\u8bef\u548c\u8bb0\u5f55\u91cd\u590d\u3002.<\/p><p>\u6839\u672c\u539f\u56e0\u8fd8\u5305\u62ec\u5bf9DNS\u8bb0\u5f55\u7c7b\u578b\u53caCloudflare\u5904\u7406\u65b9\u5f0f\u7f3a\u4e4f\u4e86\u89e3\uff0c\u5c24\u5176\u662f\u4ee3\u7406\u548c\u9ed8\u8ba4TTL\u914d\u7f6e\u3002\u8bb8\u591a\u7528\u6237\u5728\u9700\u8981\u7eafDNS\u65f6\u5fd8\u8bb0\u5173\u95ed\u4ee3\u7406\uff08\u6a59\u8272\u4e91\uff09\uff0c\u5bfc\u81f4\u8bbf\u95ee\u6d41\u91cf\u5f02\u5e38\u3002.<\/p><h3>\u6df1\u5c42\u539f\u56e0\u53ca\u5e38\u89c1\u914d\u7f6e\u9519\u8bef<\/h3><p>\u9664\u8f93\u5165\u9519\u8bef\u5916\uff0c\u4e3b\u8981\u539f\u56e0\u8fd8\u5305\u62ec\u4e0d\u540c\u670d\u52a1\u5546\u4e4b\u95f4\u7684DNS\u6807\u51c6\u5dee\u5f02\u3002\u65e7DNS\u670d\u52a1\u5668\u5bfc\u51fa\u7684zone\u6587\u4ef6\u5e38\u5305\u542b\u4e0d\u7b26\u5408Cloudflare\u6807\u51c6\u7684TXT\u6216SPF\u8bb0\u5f55\uff0c\u6216\u542b\u6709\u65e0\u6548\u5b57\u7b26\u3002\u6b64\u5916\uff0c\u5bfc\u5165Cloudflare\u540e\u672a\u4e0e\u65e7DNS\u670d\u52a1\u5546\u540c\u6b65\uff0c\u4e5f\u4f1a\u5bfc\u81f4\u65e0\u6cd5\u8bbf\u95ee\u7684\u9519\u8bef\u3002.<\/p><p>\u7528\u6237\u8fd8\u5e38\u9047\u5230TTL\u6216NS\u8bb0\u5f55\u9519\u8bef\uff0c\u5bfc\u81f4\u57df\u540d\u65e0\u6cd5\u6b63\u786e\u89e3\u6790\u3002DNS\u5faa\u73af\u6216NS\u3001A\u3001CNAME\u8bb0\u5f55\u91cd\u590d\u7b49\u95ee\u9898\u5728\u4e0d\u89c4\u8303\u7684DNS\u5bfc\u5165\u5bfc\u51fa\u6587\u4ef6\u4e2d\u4e5f\u5f88\u5e38\u89c1\uff0c\u4e25\u91cd\u5f71\u54cd\u7f51\u7ad9\u901f\u5ea6\u548c\u7a33\u5b9a\u6027\u3002.<\/p><h3>\u5feb\u901f\u4fee\u590d\u6e05\u5355\u53ca\u5e38\u89c1\u9519\u8bef\u6c47\u603b\u8868<\/h3><ul>\n<li>\u68c0\u67e5zone\u6587\u4ef6\u683c\u5f0f\uff1a\u9700\u652f\u6301BIND\u6807\u51c6\u5e76\u53bb\u9664\u7279\u6b8a\u5b57\u7b26\u3002.<\/li>\n<li>\u53bb\u9664\u91cd\u590d\u8bb0\u5f55\uff0c\u4ed4\u7ec6\u68c0\u67e5MX\u3001TXT\u7b49\u90ae\u4ef6\u53ca\u9a8c\u8bc1\u6240\u9700\u8bb0\u5f55\u3002.<\/li>\n<li>\u68c0\u67e5\u4ee3\u7406\u72b6\u6001\uff08\u6a59\u8272\u4e91\uff09\u662f\u5426\u7b26\u5408\u5b9e\u9645\u4f7f\u7528\u9700\u6c42\u3002.<\/li>\n<li>\u540c\u6b65Cloudflare\u4e0e\u539f\u670d\u52a1\u5546DNS\uff0c\u51c6\u786e\u66f4\u65b0DNS\u670d\u52a1\u5668\u3002.<\/li>\n<li>\u8bbe\u7f6e\u5408\u7406\u7684TTL\uff0c\u907f\u514d\u8fc7\u4f4e\u5bfc\u81f4\u8fc7\u8f7d\u6216\u8fc7\u9ad8\u5bfc\u81f4\u66f4\u65b0\u7f13\u6162\u3002.<\/li>\n<\/ul><div style=\"border: 1px solid #ffa500;background-color: #fff8e1;padding: 10px;margin: 15px 0\">\n<strong>\u63d0\u793a\uff1a<\/strong> \u5728\u5bfc\u5165\u4e4b\u524d\uff0c\u8bf7\u59cb\u7ec8\u4f7f\u7528\u5982dnslint\u6216ZoneCheck\u7b49\u5de5\u5177\u68c0\u67e5 `.zone` \u6587\u4ef6\uff0c\u4ee5\u53d1\u73b0\u6f5c\u5728\u9519\u8bef\u3002\u786e\u8ba4\u91cd\u8981\u8bb0\u5f55\u5982MX\u3001TXT\u6709\u52a9\u4e8e\u907f\u514d\u90ae\u4ef6\u670d\u52a1\u4e2d\u65ad\u6216\u5f53\u524d\u975e\u5e38\u5e38\u89c1\u7684SPF\/DKIM\u5b89\u5168\u63aa\u65bd\u5931\u6548\u3002.\n<\/div><table class=\"wp-block-table\" style=\"width:100%;border-collapse: collapse\" border=\"1\">\n<thead>\n<tr>\n<th>\u5e38\u89c1\u9519\u8bef<\/th>\n<th>\u6839\u672c\u539f\u56e0<\/th>\n<th>\u5f71\u54cd<\/th>\n<th>\u89e3\u51b3\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6587\u4ef6\u683c\u5f0f\u4e0d\u6b63\u786e<\/td>\n<td>zone\u6587\u4ef6\u4e0d\u7b26\u5408BIND\u6807\u51c6\u6216\u5305\u542b\u4e0d\u5408\u9002\u7684\u5b57\u7b26<\/td>\n<td>\u5bfc\u5165\u5931\u8d25\uff0c\u65e0\u6cd5\u6ce8\u518cDNS\u8bb0\u5f55<\/td>\n<td>\u4f7f\u7528\u68c0\u67e5\u5de5\u5177\uff0c\u6e05\u7406\u5e76\u7f16\u8f91\u6587\u4ef6<\/td>\n<\/tr>\n<tr>\n<td>\u8bb0\u5f55\u91cd\u590d<\/td>\n<td>\u590d\u5236\u7c98\u8d34\u672a\u4ed4\u7ec6\u68c0\u67e5\u6216zone\u6587\u4ef6\u6709\u8bef<\/td>\n<td>DNS\u65e0\u6cd5\u6b63\u786e\u89e3\u6790\uff0c\u5bfc\u81f4\u8bbf\u95ee\u9519\u8bef<\/td>\n<td>\u5220\u9664\u91cd\u590d\u8bb0\u5f55\uff0c\u4ec5\u4fdd\u7559\u552f\u4e00\u4e00\u6761\u8bb0\u5f55<\/td>\n<\/tr>\n<tr>\n<td>\u7f3a\u5c11\u91cd\u8981\u7684MX\u3001TXT\u8bb0\u5f55<\/td>\n<td>\u4e0d\u4e86\u89e3\u8bb0\u5f55\u5728\u90ae\u4ef6\u548c\u5b89\u5168\u4e2d\u7684\u4f5c\u7528<\/td>\n<td>\u90ae\u4ef6\u65e0\u6cd5\u6536\u53d1\uff0cSPF\/DKIM\u9a8c\u8bc1\u5931\u8d25<\/td>\n<td>\u68c0\u67e5\u5e76\u6309\u6807\u51c6\u8865\u5145\u5b8c\u6574\u8bb0\u5f55<\/td>\n<\/tr>\n<tr>\n<td>\u4ee3\u7406\u72b6\u6001\u9519\u8bef<\/td>\n<td>\u4e0d\u4e86\u89e3Cloudflare\u7684\u4ee3\u7406\u6a21\u5f0f<\/td>\n<td>\u89e3\u6790\u9519\u8bef\u6216\u62e6\u622a\u4e86\u4e0d\u671f\u671b\u7684\u6d41\u91cf<\/td>\n<td>\u4e3a\u6bcf\u6761\u8bb0\u5f55\u8bbe\u7f6e\u5408\u9002\u7684\u4ee3\u7406<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u5c06DNS\u6587\u4ef6\u5bfc\u5165Cloudflare\u867d\u7136\u7b80\u5355\uff0c\u4f46\u5982\u679c\u4e0d\u4ed4\u7ec6\u68c0\u67e5\uff0c\u53ef\u80fd\u4f1a\u9690\u85cf\u8bb8\u591a\u9519\u8bef\u3002\u7528\u6237\u5e94\u5145\u5206\u51c6\u5907zone\u6587\u4ef6\uff0c\u6e05\u695a\u4e86\u89e3\u6bcf\u6761\u8bb0\u5f55\u53ca\u5176\u5bf9\u5e94\u914d\u7f6e\uff0c\u4ee5\u907f\u514d\u4e22\u5931\u7535\u8bdd\u6216\u670d\u52a1\u4e2d\u65ad\u3002\u8f85\u52a9\u5de5\u5177\u548c\u68c0\u67e5\u6e05\u5355\u5728\u6d41\u7a0b\u987a\u7545\u4e2d\u8d77\u7740\u91cd\u8981\u4f5c\u7528\uff0c\u5c24\u5176\u662f\u5bf9\u4e8e\u4e0eDPS.MEDIA\u6216\u5927\u578b\u9879\u76ee\u5408\u4f5c\u7684\u7ad9\u957f\u3002.<\/p><p><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/ua-dns.jpg\" alt=\"\u8be6\u7ec6\u5206\u6790\u88ab\u62d2\u7edd\u7684DNS\u5b57\u6bb5\u53ca\u5176\u7cbe\u51c6\u8c03\u6574\u65b9\u6cd5\" title=\"\"><\/p><h2 id=\"phan-tich-chi-tiet-cac-truong-dns-bi-tu-choi-va-cach-dieu-chinh-chuan-xac\">\u8be6\u7ec6\u5206\u6790\u88ab\u62d2\u7edd\u7684DNS\u5b57\u6bb5\u53ca\u7cbe\u51c6\u8c03\u6574\u65b9\u6cd5<\/h2><h3>\u5bfc\u5165\u5230Cloudflare\u65f6\u5bfc\u81f4DNS\u5b57\u6bb5\u88ab\u62d2\u7edd\u7684\u5e38\u89c1\u539f\u56e0<\/h3><p>\u5728\u5c06DNS zone\u6587\u4ef6\u5bfc\u5165Cloudflare\u65f6\uff0c\u8bb8\u591a\u4eba\u5e38\u56e0\u67d0\u4e9b\u5b57\u6bb5\u672a\u88ab\u7cfb\u7edf\u63a5\u53d7\u800c\u9047\u5230\u9519\u8bef\u3002\u5e38\u89c1\u539f\u56e0\u901a\u5e38\u6765\u81ea\u4e0d\u7b26\u5408RFC\u6807\u51c6\u7684\u8bb0\u5f55\uff0c\u5982TXT\u5b57\u6bb5\u542b\u6709\u7279\u6b8a\u5b57\u7b26\u6216CAA\u8bb0\u5f55\u58f0\u660e\u683c\u5f0f\u4e0d\u6b63\u786e\u3002Cloudflare\u4e5f\u9650\u5236\u67d0\u4e9b\u7279\u5b9a\u7c7b\u578b\u7684\u8bb0\u5f55\uff0c\u4f8b\u5982NS\u548cSOA\u4e0d\u5141\u8bb8\u624b\u52a8\u5bfc\u5165\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u5df2\u7531\u7cfb\u7edf\u5355\u72ec\u7ba1\u7406\u3002\u4e86\u89e3\u8fd9\u4e9b\u9650\u5236\u6709\u52a9\u4e8e\u7528\u6237\u66f4\u51c6\u786e\u5730\u51c6\u5907\u6570\u636e\uff0c\u907f\u514d\u540e\u7eed\u4fee\u6539\u6d6a\u8d39\u65f6\u95f4\u3002.<\/p><p>\u6b64\u5916\uff0ccloudflare\u5177\u6709\u81ea\u52a8\u66f4\u65b0\u6216\u68c0\u67e5\u8bb0\u5f55\u4e00\u81f4\u6027\u7684\u673a\u5236\uff0c, <a href=\"https:\/\/dps.media\/zh\/%e9%a2%84%e8%ae%a2%e4%bf%9d%e6%8c%81%e6%9c%89%e6%95%88%e7%9a%84%e5%85%ac%e5%85%b3%e6%88%98%e7%95%a5%e4%b8%ba%e4%bc%81%e4%b8%9a\/\" rel=\"nofollow\">\u56e0\u6b64\u51fa\u9519\u7684\u5b57\u6bb5\u4e5f\u53ef\u80fd\u6e90\u4e8e\u8f93\u5165\u7ed3\u6784\u9519\u8bef\u6216\u7f3a\u5c11\u5fc5\u8981\u4fe1\u606f\u3002<\/a>. \u8fd9\u4e9b\u9519\u8bef\u901a\u5e38\u4f1a\u5728\u5bfc\u5165\u8fc7\u7a0b\u4e2d\u660e\u786e\u63d0\u793a\uff0c\u5e2e\u52a9\u7528\u6237\u53ca\u65f6\u5904\u7406\u3002.<\/p><h3>\u8c03\u6574\u548c\u4f18\u5316DNS\u5b57\u6bb5\u4ee5\u6210\u529f\u5bfc\u5165\u7684\u65b9\u6cd5<\/h3><p>\u4e3a\u786e\u4fdd\u6210\u529f\u5c06DNS\u5bfc\u5165Cloudflare\uff0c\u9996\u5148\u5e94\u901a\u8fc7\u5982 <strong>ZoneCheck<\/strong> \u6216 <strong>DNSLint<\/strong>. \u7b49\u9a8c\u8bc1\u5de5\u5177\u4ed4\u7ec6\u68c0\u67e5zone\u6587\u4ef6\u3002\u63a5\u4e0b\u6765\uff0c\u9700\u8981\u786e\u4fddTXT\u8bb0\u5f55\u4e0d\u5305\u542b\u6807\u51c6\u5916\u7684\u7279\u6b8a\u5b57\u7b26\uff0c\u5e76\u9650\u5236\u6bcf\u4e2a\u5b50\u4e32\u957f\u5ea6\u4e0d\u8d85\u8fc7255\u4e2a\u5b57\u7b26\u3002CAA\u8bb0\u5f55\u5e94\u9075\u5faa\u6807\u51c6\uff0c\u5305\u542b\u5b8c\u6574\u7684\u8bc1\u4e66\u9881\u53d1\u673a\u6784\uff08CA\uff09\u4fe1\u606f\u3002.<\/p><p>\u6b64\u5916\uff0c\u6ce8\u610fNS\u548cSOA\u8bb0\u5f55\u4e5f\u975e\u5e38\u91cd\u8981\uff1aCloudflare\u4e0d\u5141\u8bb8\u901a\u8fc7\u5bfc\u5165\u76f4\u63a5\u4fee\u6539\u8fd9\u4e9b\u8bb0\u5f55\uff0c\u56e0\u6b64\u9700\u8981\u5728Cloudflare\u7ba1\u7406\u754c\u9762\u5bfc\u5165\u6570\u636e\u540e\u8fdb\u884c\u8c03\u6574\u3002\u53e6\u4e00\u4e2a\u4e0d\u53ef\u6216\u7f3a\u7684\u6b65\u9aa4\u662f\u68c0\u67e5TTL\uff08\u751f\u5b58\u65f6\u95f4\uff09\u662f\u5426\u5408\u9002\uff0c\u907f\u514d\u8fc7\u4f4e\u5bfc\u81f4\u8d1f\u8f7d\u8fc7\u5927\u6216\u8fc7\u9ad8\u5bfc\u81f4\u66f4\u65b0\u5ef6\u8fdf\u3002.<\/p><h3>\u88ab\u62d2\u7eddDNS\u5b57\u6bb5\u7684\u9519\u8bef\u5904\u7406\u6e05\u5355\u53ca\u5bfc\u5165\u6ce8\u610f\u4e8b\u9879<\/h3><ul>\n<li>\u2714 \u68c0\u67e5\u6bcf\u79cd\u8bb0\u5f55\u7c7b\u578b\uff08A\u3001AAAA\u3001CNAME\u3001TXT\u3001CAA\uff09\u7684\u6807\u51c6\u683c\u5f0f<\/li>\n<li>\u2714 \u907f\u514d\u5728\u5bfc\u5165\u6587\u4ef6\u4e2d\u76f4\u63a5\u66f4\u6539NS\u3001SOA\u7b49\u7cfb\u7edf\u8bb0\u5f55<\/li>\n<li>\u2714 \u5728\u5bfc\u5165\u524d\u4f7f\u7528zone\u6587\u4ef6\u9a8c\u8bc1\u5de5\u5177\u4ee5\u65e9\u671f\u53d1\u73b0\u9519\u8bef<\/li>\n<li>\u2714 \u5408\u7406\u8c03\u6574TTL\uff0c\u901a\u5e38\u4e3a300\u81f33600\u79d2<\/li>\n<li>\u2714 \u79fb\u9664TXT\u8bb0\u5f55\u4e2d\u4e0d\u5fc5\u8981\u7684\u7279\u6b8a\u5b57\u7b26<\/li>\n<li>\u2714 \u5bfc\u5165\u540e\uff0c\u5728cloudflare\u754c\u9762\u518d\u6b21\u68c0\u67e5\u8bb0\u5f55\u4ee5\u9a8c\u8bc1<\/li>\n<\/ul><table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u8bb0\u5f55\u7c7b\u578b<\/th>\n<th>\u5e38\u89c1\u9519\u8bef<\/th>\n<th>\u89e3\u51b3\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>NS\u548cSOA<\/td>\n<td>\u56e0Cloudflare\u5355\u72ec\u7ba1\u7406\u800c\u88ab\u62d2\u7edd<\/td>\n<td>\u4e0d\u8981\u76f4\u63a5\u5728 Cloudflare \u754c\u9762\u4e0a\u5bfc\u5165\u6216\u7f16\u8f91<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>\u7279\u6b8a\u5b57\u7b26\uff0c\u5b57\u7b26\u4e32\u957f\u5ea6\u8d85\u8fc7 255 \u4e2a\u5b57\u7b26<\/td>\n<td>\u62c6\u5206\u5b57\u7b26\u4e32\u6216\u79fb\u9664\u65e0\u6548\u5b57\u7b26<\/td>\n<\/tr>\n<tr>\n<td>CAA<\/td>\n<td>\u683c\u5f0f\u9519\u8bef\uff0c\u7f3a\u5c11\u6709\u6548\u7684 CA<\/td>\n<td>\u9075\u5faa\u6b63\u786e\u683c\u5f0f\uff0c\u51c6\u786e\u58f0\u660e CA<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>\u91cd\u590d\u6216\u6307\u5411\u6839\u8bb0\u5f55<\/td>\n<td>\u68c0\u67e5\u5e76\u907f\u514d\u91cd\u590d\u9519\u8bef\uff0c\u4e0d\u8981\u6307\u5411\u6839\u8bb0\u5f55<\/td>\n<\/tr>\n<\/tbody>\n<\/table><div style=\"border-left: 4px solid #f39c12;background: #fff8e1;padding: 12px;margin: 12px 0\">\n  <strong>\u91cd\u8981\u63d0\u793a\uff1a<\/strong> Cloudflare \u4f5c\u4e3a DNS \u9632\u62a4\u5c42\uff0c\u80fd\u591f\u9690\u85cf\u670d\u52a1\u5668\u771f\u5b9e IP \u5e76\u9632\u5fa1\u7f51\u7edc\u653b\u51fb\u3002\u51c6\u786e\u5bfc\u5165 DNS \u4e0d\u4ec5\u6709\u52a9\u4e8e\u4fdd\u6301\u7a33\u5b9a\u6027\uff0c\u8fd8\u80fd\u5145\u5206\u5229\u7528 Cloudflare \u63d0\u4f9b\u7684\u5b89\u5168\u529f\u80fd [[1](https:\/\/cloud.z.com\/vn\/news\/dns-cloudflare\/)]\u3002.\n<\/div><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u5c06 DNS \u5bfc\u5165 Cloudflare \u65f6\uff0c\u5927\u591a\u6570\u9519\u8bef\u6e90\u4e8e\u8bb0\u5f55\u7ed3\u6784\u4e0d\u89c4\u8303\u3002\u4f7f\u7528\u68c0\u67e5\u5de5\u5177\u3001\u9075\u5faa\u683c\u5f0f\u5e76\u4e86\u89e3 Cloudflare \u7684\u4e13\u6709\u89c4\u5219\u662f\u6210\u529f\u5bfc\u5165 DNS \u6570\u636e\u7684\u5173\u952e\u3002DPS.MEDIA \u5efa\u8bae\u7ba1\u7406\u5458\u59cb\u7ec8\u5bf9 zone \u6587\u4ef6\u8fdb\u884c\u9a8c\u8bc1\uff0c\u5e76\u624b\u52a8\u68c0\u67e5\u7cfb\u7edf\u8bb0\u5f55\u3002\u8fd9\u6709\u52a9\u4e8e\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u670d\u52a1\u4e2d\u65ad\uff0c\u5e76\u5145\u5206\u53d1\u6325 Cloudflare DNS \u7cfb\u7edf\u7684\u4f18\u52bf\u3002.<\/p><p><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/en-doi.jpg\" alt=\"\u4f18\u5316DNS\u6587\u4ef6\u683c\u5f0f\u4ee5\u907f\u514d\u5bfc\u5165cloudflare\u65f6\u7684\u517c\u5bb9\u6027\u9519\u8bef\u7684\u65b9\u6cd5\" title=\"\"><\/p><h2 id=\"cach-toi-uu-dinh-dang-tap-tin-dns-de-tranh-loi-tuong-thich-khi-nhap-vao-cloudflare\">\u4f18\u5316DNS\u6587\u4ef6\u683c\u5f0f\u4ee5\u907f\u514d\u5bfc\u5165Cloudflare\u65f6\u7684\u517c\u5bb9\u6027\u9519\u8bef<\/h2><h3>\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u5e38\u89c1\u7684\u9519\u8bef<\/h3><p>\u5bfc\u5165 DNS \u6587\u4ef6\u5230 Cloudflare \u65f6\uff0c\u7528\u6237\u5e38\u89c1\u9519\u8bef\u5305\u62ec\u6587\u4ef6\u683c\u5f0f\u4e0d\u89c4\u8303\u3001\u8bb0\u5f55\u4fe1\u606f\u7f3a\u5931\u6216\u591a\u4f59\uff0c\u6216\u4f7f\u7528\u4e0d\u88ab\u652f\u6301\u7684\u8bb0\u5f55\u7c7b\u578b\u3002\u4f8b\u5982\uff0c\u4ece\u5176\u4ed6 DNS \u670d\u52a1\u5bfc\u51fa\u7684 zone \u6587\u4ef6\u53ef\u80fd\u4e0e Cloudflare \u7684\u8981\u6c42\u4e0d\u5b8c\u5168\u517c\u5bb9\uff0c\u5bfc\u81f4\u65e0\u6cd5\u5bfc\u5165\u3002\u6b64\u5916\uff0c\u7279\u6b8a\u5b57\u7b26\u6216\u65e0\u6548\u7684 TTL \u683c\u5f0f\u4e5f\u4f1a\u5bfc\u81f4\u4e0a\u4f20\u6587\u4ef6\u65f6\u51fa\u9519\u3002.<\/p><h3>DNS\u6587\u4ef6\u683c\u5f0f\u4f18\u5316\u65b9\u6cd5<\/h3><p>\u4e3a\u907f\u514d\u517c\u5bb9\u6027\u9519\u8bef\uff0cDNS \u6587\u4ef6\u9700\u6309\u7167 RFC 1035 \u548c RFC 2181 \u7684\u6807\u51c6\u8bed\u6cd5\u89c4\u8303\u5316\uff0c\u5e76\u9075\u5faa Cloudflare \u7684\u8981\u6c42\u3002\u4f8b\u5982\uff0c\u8bb0\u5f55\u9700\u5305\u542b\u4e3b\u673a\u540d\uff08name\uff09\u3001\u8bb0\u5f55\u7c7b\u578b\uff08type\uff09\u3001TTL \u548c\u6570\u503c\u3002\u4e0d\u8981\u6709\u591a\u4f59\u7a7a\u884c\u6216\u65e0\u6548\u6ce8\u91ca\u5939\u6742\u5728\u8bb0\u5f55\u4e4b\u95f4\u3002\u6b64\u5916\uff0c\u5bfc\u5165\u524d\u4f7f\u7528 zone file \u9a8c\u8bc1\u5de5\u5177\u68c0\u67e5\u975e\u5e38\u6709\u7528\u3002.<\/p><h3>\u5bfc\u5165\u524dDNS\u6587\u4ef6\u68c0\u67e5\u6e05\u5355<\/h3><ul>\n<li>\u786e\u4fdd\u4f7f\u7528\u7b26\u5408 RFC 1035 \u7684\u6807\u51c6 zone \u6587\u4ef6\u683c\u5f0f\u3002.<\/li>\n<li>\u4e0d\u8981\u5728\u8bb0\u5f55\u4e2d\u7559\u6709\u591a\u4f59\u4fe1\u606f\u6216\u8bed\u6cd5\u9519\u8bef\uff08\u5982\uff1a\u5f02\u5e38\u5b57\u7b26\u3001\u7f3a\u5c11 TTL \u6216\u65e0\u6548\u8bb0\u5f55\uff09\u3002.<\/li>\n<li>\u68c0\u67e5\u5e76\u79fb\u9664 Cloudflare \u4e0d\u652f\u6301\u7684\u8bb0\u5f55\u7c7b\u578b\uff0c\u5982\u7279\u6b8a\u683c\u5f0f\u7684 CAA\u3002.<\/li>\n<li>\u4f7f\u7528\u5b98\u65b9 zone file \u68c0\u67e5\u6216\u8f6c\u6362\u5de5\u5177\uff08DPS.MEDIA \u63a8\u8350\u4f7f\u7528\u6743\u5a01\u5728\u7ebf\u5de5\u5177\uff09\u3002.<\/li>\n<li>\u5728\u6267\u884c\u5bfc\u5165\u64cd\u4f5c\u524d\u52a1\u5fc5\u5907\u4efd DNS \u6570\u636e\uff0c\u4ee5\u9632\u4e22\u5931\u3002.<\/li>\n<\/ul><div style=\"border:1px solid #f39c12;background:#fff8e1;padding:15px;margin:20px 0\">\n<strong>\u63d0\u793a\u6846\uff1a<\/strong> \u5982\u679c\u5bfc\u5165 DNS \u6587\u4ef6\u65f6\u9047\u5230\u9519\u8bef\uff0c\u4e0d\u8981\u6025\u4e8e\u624b\u52a8\u4fee\u6539\u3002\u8bf7\u4f7f\u7528 zone file \u9a8c\u8bc1\u5de5\u5177\u6216\u8054\u7cfb DPS.MEDIA \u7684 DNS \u4e13\u5bb6\u4ee5\u83b7\u5f97\u6700\u4f73\u548c\u6700\u51c6\u786e\u7684\u652f\u6301\u3002.\n<\/div><table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u5e38\u89c1\u9519\u8bef<\/th>\n<th>\u539f\u56e0<\/th>\n<th>\u89e3\u51b3\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u8bb0\u5f55\u8bed\u6cd5\u9519\u8bef<\/td>\n<td>\u884c\u7f3a\u5c11\u5b57\u6bb5\u6216\u683c\u5f0f\u9519\u8bef<\/td>\n<td>\u6839\u636ezone\u6587\u4ef6\u6807\u51c6\u68c0\u67e5\u5e76\u4fee\u6b63\u8bed\u6cd5<\/td>\n<\/tr>\n<tr>\n<td>zone\u6587\u4ef6\u8fc7\u5927<\/td>\n<td>\u8bb0\u5f55\u6570\u91cf\u8d85\u8fc7Cloudflare\u7684Clean DNS\u9650\u5236<\/td>\n<td>\u5c06\u6587\u4ef6\u62c6\u5206\uff0c\u5206\u6279\u5bfc\u5165<\/td>\n<\/tr>\n<tr>\n<td>\u4e0d\u652f\u6301\u67d0\u4e9b\u7c7b\u578b\u7684\u8bb0\u5f55<\/td>\n<td>\u7f55\u89c1\u6216\u81ea\u5b9a\u4e49\u7c7b\u578b\u7684\u8bb0\u5f55<\/td>\n<td>\u5220\u9664\u6216\u8f6c\u6362\u4e3a\u517c\u5bb9\u7c7b\u578b\u7684\u8bb0\u5f55<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u4f18\u5316DNS\u6587\u4ef6\u683c\u5f0f\u4e0d\u4ec5\u6709\u52a9\u4e8e\u907f\u514d\u5728\u5bfc\u5165Cloudflare\u65f6\u51fa\u9519\uff0c\u8fd8\u80fd\u786e\u4fddDNS\u7cfb\u7edf\u7a33\u5b9a\u9ad8\u6548\u8fd0\u884c\u3002\u9075\u5faaRFC\u6807\u51c6\u5e76\u4f7f\u7528\u68c0\u6d4b\u5de5\u5177\u53ef\u8ba9\u6570\u636e\u8fc1\u79fb\u8fc7\u7a0b\u66f4\u987a\u7545\uff0c\u51cf\u5c11\u5b95\u673a\u65f6\u95f4\uff0c\u540c\u65f6\u5b89\u5168\u4fdd\u62a4\u60a8\u7684DNS\u8d44\u6e90\u3002DPS.MEDIA\u5efa\u8bae\u60a8\u5728\u5bfc\u5165\u524d\u59cb\u7ec8\u5907\u4efd\u5e76\u4ed4\u7ec6\u68c0\u67e5zone\u6587\u4ef6\uff0c\u4ee5\u83b7\u5f97\u6700\u4f73\u6548\u679c\u3002.<\/p><p>\u53c2\u8003Cloudflare\u4e0aFull DNS\u914d\u7f6e\u65b9\u6cd5\uff0c\u8fdb\u4e00\u6b65\u4e86\u89e3\u5b9e\u9645\u6d41\u7a0b\u4e0e\u64cd\u4f5c [[1]](https:\/\/orangecloud.vn\/posts\/how-to-configure-cloudflare-full-dns\/)\u3002.<\/p><p><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/loidns.jpg\" alt=\"\u89e3\u51b3\u65e7\u7cfb\u7edf\u4e0eCloudflare\u4e4b\u95f4DNS\u8bb0\u5f55\u51b2\u7a81\u7684\u65b9\u6848\" title=\"\"><\/p><h2 id=\"giai-phap-xu-ly-xung-dot-ban-ghi-dns-giua-he-thong-cu-va-cloudflare\">\u89e3\u51b3\u65e7\u7cfb\u7edf\u4e0eCloudflare\u4e4b\u95f4DNS\u8bb0\u5f55\u51b2\u7a81\u7684\u65b9\u6848<\/h2><h3>\u5bfc\u5165\u5230Cloudflare\u65f6\u5bfc\u81f4DNS\u8bb0\u5f55\u51b2\u7a81\u7684\u5e38\u89c1\u539f\u56e0<\/h3><p>\u5c06DNS\u8fc1\u79fb\u5230Cloudflare\u65f6\uff0c\u8bb8\u591a\u7528\u6237\u5e38\u56e0\u8bb0\u5f55\u91cd\u590d\u6216\u683c\u5f0f\u9519\u8bef\u800c\u9047\u5230\u95ee\u9898\u3002\u4f8b\u5982\uff0c\u65e7\u7cfb\u7edf\u53ef\u80fd\u5b58\u5728\u4e0eCloudflare\u81ea\u52a8\u751f\u6210\u7684A\u3001AAAA\u8bb0\u5f55\u91cd\u590d\u7684\u60c5\u51b5\u3002\u8fd9\u4f1a\u5bfc\u81f4\u7cfb\u7edf\u65e0\u6cd5\u6b63\u786e\u89e3\u6790IP\uff0c\u8fdb\u800c\u5f15\u53d1\u7f51\u7ad9\u8bbf\u95ee\u9519\u8bef\u3002\u636e\u7edf\u8ba1\uff0c\u7ea640%\u7684DNS\u9519\u8bef\u4e0e\u624b\u52a8\u6dfb\u52a0\u6216\u5bfc\u5165zone\u6587\u4ef6\u65f6\u7684\u6b64\u7c7b\u95ee\u9898\u6709\u5173\u3002.<\/p><p>\u6b64\u5916\uff0cTXT\u6216CNAME\u8bb0\u5f55\u4e5f\u5bb9\u6613\u51fa\u9519\uff0c\u56e0\u4e3aCloudflare\u4f1a\u6dfb\u52a0\u4e13\u5c5e\u5b89\u5168\u8bb0\u5f55\u3002\u5e38\u89c1\u7684\u51b2\u7a81\u5305\u62ecSPF\u6216DKIM\uff0c\u5f53\u90ae\u4ef6\u670d\u52a1\u4ecd\u8fd0\u884c\u5728\u65e7\u7cfb\u7edf\u65f6\u5c24\u4e3a\u7a81\u51fa\u3002\u4e86\u89e3\u539f\u56e0\u6709\u52a9\u4e8e\u7ba1\u7406\u5458\u5728\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u505a\u597d\u5145\u5206\u51c6\u5907\u3002.<\/p><h3>\u6700\u4f73\u4fee\u590d\u65b9\u6cd5\uff1aDNS\u8bb0\u5f55\u6d41\u7a0b\u4e0e\u68c0\u67e5<\/h3><p>\u4e3a\u9ad8\u6548\u5904\u7406DNS\u51b2\u7a81\uff0c\u9996\u5148\u9700\u4ed4\u7ec6\u68c0\u67e5\u65e7\u7cfb\u7edf\u4e2d\u7684\u6bcf\u6761\u8bb0\u5f55\u3002\u4f18\u5148\u540c\u6b65\u5e76\u5220\u9664\u91cd\u590d\u6216\u4e0d\u5fc5\u8981\u7684\u8bb0\u5f55\uff0c\u518d\u5bfc\u5165Cloudflare\u3002\u4f8b\u5982\uff0c\u4ec5\u4fdd\u7559\u7b26\u5408IPv4\uff08A\u8bb0\u5f55\uff09\u548cIPv6\uff08AAAA\u8bb0\u5f55\uff09\u6807\u51c6\u7684\u51c6\u786eIP\u8bb0\u5f55\uff0c\u56e0\u4e3aCloudflare\u5b8c\u5168\u652f\u6301\u8fd9\u4e24\u79cd\u7c7b\u578b [[1](https:\/\/azdigi.com\/blog\/en\/website-tutorials\/how-to-use-dns-on-cloudflare\/)]\u3002.<\/p><p>\u6b64\u5916\uff0c\u5efa\u8bae\u5728\u5e94\u7528\u524d\u4f7f\u7528DNSChecker\u6216Cloudflare\u81ea\u5e26\u5de5\u5177\u68c0\u6d4bDNS\uff0c\u4ee5\u53d1\u73b0\u6f5c\u5728\u51b2\u7a81\u3002\u53d1\u73b0\u591a\u4f59\u6216\u65e0\u6548\u8bb0\u5f55\u65f6\uff0c\u8bf7\u53ca\u65f6\u7f16\u8f91\u6216\u5220\u9664\uff0c\u4ee5\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u9519\u8bef\u3002.<\/p><h3>\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u9700\u6267\u884c\u7684\u6e05\u5355<\/h3><ul>\n<li>\u68c0\u67e5\u5e76\u5220\u9664\u91cd\u590d\u6216\u672a\u4f7f\u7528\u7684DNS\u8bb0\u5f55\u3002.<\/li>\n<li>\u7edf\u4e00A\u3001AAAA\u8bb0\u5f55\u683c\u5f0f\uff0c\u786e\u4fddIP\u51c6\u786e\u3002.<\/li>\n<li>\u66f4\u65b0\u6216\u5220\u9664\u53ef\u80fd\u4e0e\u90ae\u4ef6\u7cfb\u7edf\u51b2\u7a81\u7684TXT\u3001CNAME\u8bb0\u5f55\u3002.<\/li>\n<li>\u4f7f\u7528DNS\u68c0\u6d4b\u5de5\u5177\u53ca\u65e9\u53d1\u73b0\u51b2\u7a81\u9519\u8bef\u3002.<\/li>\n<li>\u91cd\u65b0\u68c0\u67e5Cloudflare\u4e0a\u7684TTL\u548c\u9002\u5f53\u7684\u5b89\u5168\u8bbe\u7f6e\u3002.<\/li>\n<\/ul><div style=\"border:2px solid #0073aa;background:#e7f4fa;padding:12px;margin:16px 0\">\n  <strong>\u91cd\u8981\u63d0\u793a\uff1a<\/strong> \u5728\u5bfc\u5165DNS\u65f6\uff0c\u59cb\u7ec8\u786e\u4fdd\u5907\u4efd\u65e7\u7cfb\u7edf\u7684\u8bb0\u5f55\u6570\u636e\u3002\u8fd9\u6709\u52a9\u4e8e\u5728\u8fc1\u79fb\u5230Cloudflare\u8fc7\u7a0b\u4e2d\u53d1\u751f\u6545\u969c\u65f6\u80fd\u591f\u5feb\u901f\u6062\u590d\uff0c\u7279\u522b\u662f\u5bf9\u4e8e\u8bf8\u5982\u7535\u5b50\u90ae\u4ef6\u6216\u72ec\u7acb\u5b50\u57df\u7b49\u91cd\u8981\u670d\u52a1\u3002.\n<\/div><table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>DNS\u8bb0\u5f55<\/th>\n<th>\u51b2\u7a81\u539f\u56e0<\/th>\n<th>\u89e3\u51b3\u65b9\u6848<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A \/ AAAA<\/td>\n<td>IP\u91cd\u590d\u6216\u5730\u5740\u9519\u8bef\u5bfc\u81f4\u8bbf\u95ee\u5931\u8d25<\/td>\n<td>\u68c0\u67e5IP\uff0c\u53ea\u4fdd\u7559\u6b63\u786e\u7684\u8bb0\u5f55\uff0c\u5220\u9664\u91cd\u590d\u9879<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>\u4e0eA\u8bb0\u5f55\u51b2\u7a81\uff0c\u5bfc\u81f4\u57df\u540d\u65e0\u6cd5\u89e3\u6790<\/td>\n<td>\u6839\u636e\u7528\u9014\u4fee\u6539\u6216\u53ea\u4fdd\u7559\u4e00\u79cd\u6b63\u786e\u7684\u8bb0\u5f55\u7c7b\u578b<\/td>\n<\/tr>\n<tr>\n<td>TXT\uff08SPF\uff0cDKIM\uff09<\/td>\n<td>SPF\/DKIM\u51b2\u7a81\u5bfc\u81f4\u90ae\u4ef6\u53d1\u9001\u5931\u8d25\u6216\u88ab\u6807\u8bb0\u4e3a\u5783\u573e\u90ae\u4ef6<\/td>\n<td>\u6839\u636e\u90ae\u4ef6\u670d\u52a1\u7684\u6307\u5f15\u66f4\u65b0\u3001\u540c\u6b65TXT\u8bb0\u5f55<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u5728\u5c06DNS\u8bb0\u5f55\u5bfc\u5165Cloudflare\u65f6\u5904\u7406\u8bb0\u5f55\u51b2\u7a81\u662f\u786e\u4fdd\u7f51\u7ad9\u53ca\u76f8\u5173\u670d\u52a1\u7a33\u5b9a\u8fd0\u884c\u7684\u5173\u952e\u6b65\u9aa4\u3002\u8bf7\u5b9a\u671f\u68c0\u67e5\u3001\u540c\u6b65\u5e76\u4f7f\u7528\u8f85\u52a9\u5de5\u5177\u4ee5\u51cf\u5c11\u9519\u8bef\uff0c\u540c\u65f6\u5728\u66f4\u6539\u7cfb\u7edf\u524d\u52a1\u5fc5\u505a\u597d\u5907\u4efd\u8ba1\u5212\u3002DPS.MEDIA\u5efa\u8bae\u7528\u6237\u4e25\u683c\u9075\u5faa\u6b64\u6d41\u7a0b\uff0c\u4ee5\u907f\u514d\u6570\u636e\u4e22\u5931\u548c\u4e0d\u5fc5\u8981\u7684\u670d\u52a1\u4e2d\u65ad\u3002.<\/p><p><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/s-11-4.jpg\" alt=\"\u5173\u4e8e\u5bfc\u5165\u540e\u68c0\u67e5\u548c\u9a8c\u8bc1DNS\u4ee5\u4fdd\u6301\u7a33\u5b9a\u6027\u7684\u6df1\u5165\u5efa\u8bae\" title=\"\"><\/p><h2 id=\"loi-khuyen-chuyen-sau-trong-viec-kiem-tra-va-xac-thuc-dns-sau-khi-import-de-duy-tri-su-on-dinh\">\u5bfc\u5165\u540e\u68c0\u67e5\u4e0e\u9a8c\u8bc1DNS\u4ee5\u4fdd\u6301\u7a33\u5b9a\u6027\u7684\u6df1\u5165\u5efa\u8bae<\/h2><h3>\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u5e38\u89c1\u7684\u9519\u8bef<\/h3><p>\u5c06DNS\u8bb0\u5f55\u5bfc\u5165Cloudflare\u65f6\uff0c\u8bb8\u591a\u7ba1\u7406\u5458\u5e38\u9047\u5230\u8bb0\u5f55\u91cd\u590d\u6216\u7f3a\u5c11\u91cd\u8981\u4fe1\u606f\u7b49\u9519\u8bef\u3002\u8fd9\u4f1a\u5bfc\u81f4\u57df\u540d\u65e0\u6cd5\u89e3\u6790\u6216\u670d\u52a1\u4e2d\u65ad\u3002\u4e00\u4e9b\u5178\u578b\u9519\u8bef\u5305\u62ecA\u8bb0\u5f55IP\u4e0d\u6b63\u786e\u3001CNAME\u8bb0\u5f55\u5d4c\u5957\u4ee5\u53caTTL\u8bbe\u7f6e\u4e0d\u5408\u7406\u3002\u6839\u636eDNSMadeEasy 2023\u8c03\u67e5\uff0c\u8d85\u8fc730%\u7684DNS\u9519\u8bef\u6e90\u4e8e\u5bfc\u5165\u64cd\u4f5c\u4e0d\u51c6\u786e\u3002.<\/p><p>\u4e86\u89e3\u8fd9\u4e9b\u9519\u8bef\u6709\u52a9\u4e8e\u60a8\u4e3b\u52a8\u53ca\u65f6\u5904\u7406\uff0c\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u505c\u673a\u98ce\u9669\u3002DPS.MEDIA\u5efa\u8bae\u5728\u5bfc\u5165\u540e\u4ed4\u7ec6\u68c0\u67e5\u6bcf\u6761\u8bb0\u5f55\uff0c\u4ee5\u786e\u4fdd\u4fe1\u606f\u4e00\u81f4\u4e14\u5b8c\u6574\u3002.<\/p><h3>\u6700\u6807\u51c6\u7684DNS\u68c0\u67e5\u4e0e\u9a8c\u8bc1\u6d41\u7a0b<\/h3><p>\u4e3a\u4fdd\u6301\u5bfc\u5165\u540e\u7684\u7a33\u5b9a\u6027\uff0c\u60a8\u5e94\u6309\u4ee5\u4e0b\u6b65\u9aa4\u4f9d\u6b21\u68c0\u67e5\u3002\u9996\u5148\uff0c\u6838\u5b9eCloudflare\u4e0a\u7684\u6bcf\u6761\u8bb0\u5f55\u662f\u5426\u4e0e\u539f\u59cb\u6570\u636e\u4e00\u81f4\u3002\u63a5\u7740\uff0c\u68c0\u67e5\u4ee3\u7406\u72b6\u6001\uff08\u6a59\u8272\u4e91\uff09\u4ee5\u907f\u514d\u4e0d\u5fc5\u8981\u7684IP\u9690\u85cf\u9519\u8bef\u3002\u6700\u540e\uff0c\u4f7f\u7528\u7b2c\u4e09\u65b9\u5de5\u5177\u5982DNSChecker\u6216MxToolBox\u5bf9\u6bd4\u5e76\u68c0\u67e5\u591a\u5730\u533a\u7684\u89e3\u6790\u540c\u6b65\u60c5\u51b5\u3002.<\/p><p>\u4e25\u683c\u9a8c\u8bc1\u6709\u52a9\u4e8e\u9632\u6b62DNS\u9519\u8bef\u6216\u670d\u52a1\u4e2d\u65ad\uff0c\u5c24\u5176\u662f\u5bf9\u4e8e\u9ad8\u6d41\u91cf\u6216\u9ad8SLA\u8981\u6c42\u7684\u7cfb\u7edf\u3002DPS.MEDIA\u4e5f\u8bc1\u660e\u4e86\u91c7\u7528\u6b64\u6807\u51c6\u6d41\u7a0b\u7684\u6709\u6548\u6027\uff0c\u4ec51\u4e2a\u6708\u5185DNS\u9519\u8bef\u51cf\u5c11\u4e8640%\u3002.<\/p><h3>\u5bfc\u5165DNS\u540e\u9700\u6267\u884c\u7684\u64cd\u4f5c\u6e05\u5355<\/h3><ul>\n<li><strong>\u68c0\u67e5\u8bb0\u5f55\u91cd\u590d\uff1a<\/strong> \u5220\u9664\u6216\u8c03\u6574\u91cd\u590d\u7684DNS\u8bb0\u5f55\u3002.<\/li>\n<li><strong>\u9a8c\u8bc1IP\u548c\u8eab\u4efd\uff1a<\/strong> \u786e\u4fddA\/AAAA\u8bb0\u5f55\u88ab\u5206\u914d\u5230\u6b63\u786e\u7684\u6709\u6548IP\u5730\u5740\u3002.<\/li>\n<li><strong>\u68c0\u67e5\u7279\u6b8a\u8bb0\u5f55\uff1a<\/strong> SPF\u3001DKIM\u3001DMARC\u5fc5\u987b\u6b63\u786e\u914d\u7f6e\u4ee5\u4fdd\u62a4\u7535\u5b50\u90ae\u4ef6\u3002.<\/li>\n<li><strong>\u68c0\u67e5\u4ee3\u7406\u72b6\u6001\uff1a<\/strong> \u6839\u636e\u9700\u6c42\u6b63\u786e\u8bbe\u7f6e\u4ee3\u7406\uff08\u4ee3\u7406\u6216\u4ec5DNS\uff09\u3002.<\/li>\n<li><strong>\u6267\u884ctraceroute\u548cDNS\u67e5\u8be2\uff1a<\/strong> \u8bc4\u4f30\u5728\u591a\u4e2a\u4f4d\u7f6e\u7684\u89e3\u6790\u80fd\u529b\u3002.<\/li>\n<li><strong>\u8bb0\u5f55\u66f4\u6539\uff1a<\/strong> \u5728\u5bfc\u5165\u524d\u540e\u59cb\u7ec8\u5907\u4efd\uff0c\u4ee5\u4fbf\u9700\u8981\u65f6\u8f7b\u677e\u6062\u590d\u3002.<\/li>\n<\/ul><table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u5e38\u89c1\u9519\u8bef<\/th>\n<th>\u539f\u56e0<\/th>\n<th>\u89e3\u51b3\u65b9\u6848<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u8bb0\u5f55\u91cd\u590d<\/td>\n<td>\u4ece\u6587\u4ef6\u7c97\u7565\u5bfc\u5165\u672a\u4ed4\u7ec6\u68c0\u67e5<\/td>\n<td>\u4f7f\u7528\u53bb\u91cd\u5de5\u5177\uff0c\u624b\u52a8\u68c0\u67e5<\/td>\n<\/tr>\n<tr>\n<td>IP\u586b\u5199\u9519\u8bef\/\u65e0\u6548<\/td>\n<td>\u8f93\u5165\u6216\u66f4\u6539\u670d\u52a1IP\u65f6\u51fa\u9519<\/td>\n<td>\u68c0\u67e5\u6b63\u786eIP\uff0c\u5b9e\u9645\u8bbf\u95ee\u6d4b\u8bd5<\/td>\n<\/tr>\n<tr>\n<td>TTL\u8fc7\u4f4e\u6216\u8fc7\u9ad8<\/td>\n<td>\u4e0d\u9002\u5408\u66f4\u65b0\u9700\u6c42<\/td>\n<td>\u0110i\u1ec1u ch\u1ec9nh TTL t\u1eeb 300\u200c \u2013 3600 gi\u00e2y t\u00f9y h\u1ec7 th\u1ed1ng<\/td>\n<\/tr>\n<tr>\n<td>SPF\/DKIM\/DMARC \u914d\u7f6e\u9519\u8bef<\/td>\n<td>\u672a\u7406\u89e3\u6216\u9057\u6f0f TXT \u8bb0\u5f55<\/td>\n<td>\u53c2\u8003\u6807\u51c6\u6587\u6863\u5e76\u4f7f\u7528\u90ae\u4ef6\u5de5\u5177\u8fdb\u884c\u6d4b\u8bd5<\/td>\n<\/tr>\n<\/tbody>\n<\/table><div style=\"border-left:4px solid #0073aa;background:#e7f3ff;padding:12px;margin-top:1em\">\n  <strong>\u91cd\u8981\u63d0\u793a\uff1a<\/strong> \u4e0d\u8981\u4ec5\u4f9d\u8d56 cloudflare \u63a7\u5236\u9762\u677f\u68c0\u67e5\uff0c\u9700\u7ed3\u5408\u591a\u79cd\u5916\u90e8\u5de5\u5177\u68c0\u6d4b\uff0c\u4ee5\u786e\u4fdd\u60a8\u7684 DNS \u7cfb\u7edf\u957f\u671f\u7684\u51c6\u786e\u6027\u548c\u7a33\u5b9a\u6027\u3002.\n<\/div><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u5bfc\u5165\u540e\u4ed4\u7ec6\u68c0\u67e5\u548c\u9a8c\u8bc1 DNS \u4e0d\u4ec5\u6709\u52a9\u4e8e\u4fee\u590d\u5e38\u89c1\u9519\u8bef\uff0c\u8fd8\u80fd\u786e\u4fdd\u7cfb\u7edf\u7a33\u5b9a\u8fd0\u884c\uff0c\u907f\u514d\u56e0\u5b95\u673a\u5f71\u54cd\u7528\u6237\u4f53\u9a8c\u548c\u4e1a\u52a1\u8fd0\u8425\u3002\u8bf7\u5e94\u7528\u68c0\u67e5\u6e05\u5355\u548c\u6807\u51c6\u6d41\u7a0b\uff0c\u63d0\u5347 DNS \u7ba1\u7406\u6548\u7387\uff0c\u5c24\u5176\u662f\u5728\u4e0e DPS.MEDIA \u7b49\u77e5\u540d\u670d\u52a1\u5546\u5408\u4f5c\u65f6\u3002.<\/p><p><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/LfUbhp.jpg\" alt=\"\u81ea\u52a8\u5316DNS\u9519\u8bef\u63a7\u5236\u6280\u5de7\uff0c\u8282\u7701\u65f6\u95f4\u5e76\u63d0\u5347\u6548\u7387\" title=\"\"><\/p><h2 id=\"thu-thuat-tu-dong-hoa-kiem-soat-loi-dns-nham-tiet-kiem-thoi-gian-va-tang-hieu-qua\">\u81ea\u52a8\u5316DNS\u9519\u8bef\u63a7\u5236\u6280\u5de7\uff0c\u8282\u7701\u65f6\u95f4\u5e76\u63d0\u5347\u6548\u7387<\/h2><h3>\u5c06DNS\u5bfc\u5165Cloudflare\u65f6\u5e38\u89c1\u9519\u8bef<\/h3><p>\u5c06 DNS \u5bfc\u5165 Cloudflare \u8fc7\u7a0b\u4e2d\u5e38\u89c1\u8bf8\u591a\u95ee\u9898\uff0c\u5982\u6587\u4ef6\u683c\u5f0f\u4e0d\u89c4\u8303\u3001\u7f3a\u5c11\u5fc5\u9700\u8bb0\u5f55\u6216\u8bb0\u5f55\u91cd\u590d\u3002\u6839\u636e DPS.MEDIA \u7edf\u8ba1\uff0c\u8d85\u8fc7 40% \u7528\u6237\u56e0 zone \u6587\u4ef6\u683c\u5f0f\u9519\u8bef\u6216\u7f3a\u5c11\u5fc5\u8981\u5b57\u6bb5\u800c\u51fa\u9519\u3002\u8fd9\u4f1a\u5bfc\u81f4 DNS \u5207\u6362\u4e2d\u65ad\uff0c\u540c\u65f6\u5927\u5e45\u964d\u4f4e\u57df\u540d\u7ba1\u7406\u6548\u7387\u3002.<\/p><p>\u660e\u786e\u539f\u56e0\u6709\u52a9\u4e8e\u4e3b\u52a8\u4fee\u590d\u5e76\u51cf\u5c11\u5904\u7406\u65f6\u95f4\u3002\u6b64\u5916\uff0c\u81ea\u52a8\u5316 DNS \u9519\u8bef\u63a7\u5236\u6d41\u7a0b\u5c06\u663e\u8457\u63d0\u5347\u8fd0\u7ef4\u6548\u7387\u5e76\u8282\u7701\u4f01\u4e1a\u4eba\u529b\u6210\u672c\u3002.<\/p><h3>\u81ea\u52a8\u5316\u63a7\u5236\u4e0e\u4fee\u590d\u9519\u8bef\u7684\u65b9\u6cd5<\/h3><p>\u5e94\u7528\u81ea\u52a8\u5316\u5de5\u5177\u68c0\u6d4b DNS \u6587\u4ef6\u683c\u5f0f\uff0c\u5e76\u96c6\u6210\u8bb0\u5f55\u9a8c\u8bc1\u6d41\u7a0b\uff0c\u53ef\u5728\u5bfc\u5165 Cloudflare \u524d\u6700\u5927\u9650\u5ea6\u51cf\u5c11\u9519\u8bef\u3002\u7279\u522b\u662f\u81ea\u52a8\u53d1\u73b0\u9519\u8bef\u8bb0\u5f55\u5e76\u53ca\u65f6\u9884\u8b66\uff0c\u5c06\u63d0\u5347\u6570\u636e\u8d28\u91cf\u5e76\u5c06\u5904\u7406\u65f6\u95f4\u7f29\u77ed\u9ad8\u8fbe 35% \u76f8\u6bd4\u624b\u52a8\u64cd\u4f5c\u3002.<\/p><p>\u6b64\u5916\uff0cDPS.MEDIA \u5efa\u8bae\u4f7f\u7528\u81ea\u52a8\u5316\u811a\u672c\uff08\u5982 shell \u811a\u672c\u6216 Python\uff09\u5bf9 DNS \u6570\u636e\u8fdb\u884c\u626b\u63cf\u548c\u89c4\u8303\u5316\u3002\u8fd9\u4e0d\u4ec5\u80fd\u51cf\u5c11\u91cd\u590d\u9519\u8bef\uff0c\u8fd8\u80fd\u5feb\u901f\u51c6\u786e\u5730\u81ea\u52a8\u5254\u9664\u65e0\u6548\u8bb0\u5f55\u3002.<\/p><h3>\u5bfc\u5165DNS\u5230Cloudflare\u524d\u7684\u9519\u8bef\u68c0\u67e5\u6e05\u5355<\/h3><ul>\n<li><strong>\u68c0\u67e5\u6587\u4ef6\u683c\u5f0f\uff1a<\/strong> \u786e\u4fdd zone \u6587\u4ef6\u7b26\u5408 BIND \u6807\u51c6\uff0c\u65e0\u5f02\u5e38\u7279\u6b8a\u5b57\u7b26\u3002.<\/li>\n<li><strong>\u9a8c\u8bc1\u5fc5\u9700\u8bb0\u5f55\uff1a<\/strong> \u786e\u4fdd NS\u3001A\u3001CNAME \u8bb0\u5f55\u9f50\u5168\u4e14\u7ed3\u6784\u6b63\u786e\u3002.<\/li>\n<li><strong>\u53bb\u9664\u91cd\u590d\u8bb0\u5f55\uff1a<\/strong> \u4f7f\u7528\u811a\u672c\u626b\u63cf\u91cd\u590d\u8bb0\u5f55\u5e76\u5728\u5bfc\u5165\u524d\u5220\u9664\u3002.<\/li>\n<li><strong>\u6570\u636e\u6d4b\u8bd5\uff1a<\/strong> \u4f7f\u7528\u6d4b\u8bd5\u73af\u5883\u786e\u8ba4 DNS \u8bb0\u5f55\u6b63\u5e38\u5de5\u4f5c\u3002.<\/li>\n<li><strong>\u76d1\u63a7\u5bfc\u5165\u8fc7\u7a0b\uff1a<\/strong> \u4f7f\u7528\u81ea\u52a8\u5316\u5de5\u5177\u53ca\u65f6\u9884\u8b66\u9519\u8bef\u4ee5\u4fbf\u53ca\u65f6\u5904\u7406\u3002.<\/li>\n<\/ul><aside style=\"border-left:4px solid #0073aa;background:#f1f7fc;padding:10px;margin:15px 0\">\n  <strong>\u63d0\u793a\uff1a<\/strong> \u4e0d\u8981\u5ffd\u7565DNS\u6d41\u7a0b\u7684\u68c0\u67e5\u548c\u81ea\u52a8\u5316\uff01\u8fd9\u6837\u4e0d\u4ec5\u80fd\u4e3a\u4f60\u8282\u7701\u6570\u5c0f\u65f6\u7684\u5de5\u4f5c\u65f6\u95f4\uff0c\u8fd8\u80fd\u907f\u514d\u56e0\u610f\u5916DNS\u9519\u8bef\u5bfc\u81f4\u7684\u8fde\u63a5\u4e2d\u65ad\u98ce\u9669\u3002.<br>\n<\/aside><table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u5e38\u89c1\u9519\u8bef<\/th>\n<th>\u539f\u56e0<\/th>\n<th>\u89e3\u51b3\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Zone\u6587\u4ef6\u683c\u5f0f\u9519\u8bef<\/td>\n<td>\u7279\u6b8a\u5b57\u7b26\u65e0\u6548\uff0c\u7f3a\u5c11\u5fc5\u586b\u5b57\u6bb5<\/td>\n<td>\u4f7f\u7528\u683c\u5f0f\u68c0\u67e5\u5668\u6216\u81ea\u52a8\u89c4\u8303\u5316\u5de5\u5177\u5904\u7406\u6587\u4ef6<\/td>\n<\/tr>\n<tr>\n<td>\u91cd\u590d\u8bb0\u5f55<\/td>\n<td>\u5bfc\u5165\u524d\u672a\u6b63\u786e\u8fc7\u6ee4\u6570\u636e<\/td>\n<td>\u4f7f\u7528\u811a\u672c\u8fc7\u6ee4\u5e76\u5728\u5bfc\u5165\u524d\u79fb\u9664\u91cd\u590d\u8bb0\u5f55<\/td>\n<\/tr>\n<tr>\n<td>\u7f3a\u5c11\u91cd\u8981\u8bb0\u5f55\uff08NS\u3001A\u3001CNAME\uff09<\/td>\n<td>\u5bfc\u51fa\u6587\u4ef6\u6216\u624b\u52a8\u7f16\u8f91\u8fc7\u7a0b\u4e2d\u9057\u6f0f<\/td>\n<td>\u68c0\u67e5\u91cd\u8981\u8bb0\u5f55\u6e05\u5355\u5e76\u8865\u5145\u7f3a\u5931\u9879<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u5728\u5bfc\u5165\u5230Cloudflare\u524d\u81ea\u52a8\u68c0\u67e5\u548c\u89c4\u8303DNS\u662f\u51cf\u5c11\u5e38\u89c1\u9519\u8bef\u3001\u8282\u7701\u65f6\u95f4\u5e76\u63d0\u9ad8\u51c6\u786e\u6027\u7684\u5173\u952e\u6b65\u9aa4\u3002\u5e94\u7528\u8fd9\u4e9b\u6280\u5de7\u5c06\u5e2e\u52a9DNS\u7ba1\u7406\u5458\u63d0\u5347\u5de5\u4f5c\u6548\u7387\uff0c\u786e\u4fdd\u7cfb\u7edf\u7a33\u5b9a\u8fd0\u884c\uff0c\u5c24\u5176\u9002\u7528\u4e8e\u50cfDPS.MEDIA\u8fd9\u6837\u7684\u5927\u578b\u73af\u5883\u3002.<\/p><p><img decoding=\"async\" class=\"kimage_class\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2025\/10\/oi-dns.jpg\" alt=\"\u4e3a\u4e2d\u5c0f\u4f01\u4e1a\u5b89\u5168\u5207\u6362DNS\uff0c\u786e\u4fdd\u5728\u7ebf\u4e1a\u52a1\u670d\u52a1\u4e0d\u4e2d\u65ad\" title=\"\"><\/p><h2 id=\"chuyen-doi-dns-an-toan-cho-doanh-nghiep-smes-dam-bao-khong-gian-doan-dich-vu-kinh-doanh-truc-tuyen\">\u4e3a\u4e2d\u5c0f\u4f01\u4e1a\u5b89\u5168\u5207\u6362DNS\uff0c\u786e\u4fdd\u5728\u7ebf\u4e1a\u52a1\u670d\u52a1\u4e0d\u4e2d\u65ad<\/h2><h3>\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u5e38\u89c1\u9519\u8bef<\/h3><p>\u5c06DNS\u8fc1\u79fb\u5230Cloudflare\u65f6\uff0c\u8bb8\u591a\u4e2d\u5c0f\u4f01\u4e1a\u5e38\u9047\u5230\u4e00\u4e9b\u5e38\u89c1\u9519\u8bef\uff0c\u5982\u8bb0\u5f55\u91cd\u590d\u3001\u6587\u4ef6\u683c\u5f0f\u4e0d\u6b63\u786e\u6216TTL\u914d\u7f6e\u65e0\u6548\u3002\u8fd9\u4e9b\u9519\u8bef\u4e0d\u4ec5\u4f1a\u5bfc\u81f4\u670d\u52a1\u4e2d\u65ad\uff0c\u8fd8\u4f1a\u5f71\u54cd\u4f01\u4e1a\u7f51\u7ad9\u548c\u90ae\u7bb1\u7684\u53ef\u8bbf\u95ee\u6027\u3002.<\/p><p>V\u00ed d\u1ee5, trong m\u1ed9t kh\u1ea3o s\u00e1t th\u1ef1c t\u1ebf, 38% c\u00e1c doanh\u200b nghi\u1ec7p nh\u1ecf s\u1eed d\u1ee5ng Cloudflare \u0111\u00e3 g\u1eb7p l\u1ed7i \u201cDuplicate Records\u201d (b\u1ea3n ghi tr\u00f9ng\u2064 l\u1eb7p)\u2064 khi import file DNS, d\u1eabn \u0111\u1ebfn vi\u1ec7c t\u00ean \u200bmi\u1ec1n kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh trong v\u00f2ng\u200c 1-2 gi\u1edd \u0111\u1ea7u\u2064 chuy\u1ec3n \u0111\u1ed5i.<\/p><p>\u5145\u5206\u4e86\u89e3\u8fd9\u4e9b\u9519\u8bef\u7c7b\u578b\u6709\u52a9\u4e8e\u4e2d\u5c0f\u4f01\u4e1a\u5feb\u901f\u4fee\u590d\uff0c\u786e\u4fdd\u5728\u7ebf\u4e1a\u52a1\u670d\u52a1\u5728DNS\u8fc1\u79fb\u8fc7\u7a0b\u4e2d\u4e0d\u4e2d\u65ad\u3002.<\/p><h3>\u6700\u6807\u51c6\u7684\u4fee\u590d\u65b9\u6cd5\u53ca\u5207\u6362\u6e05\u5355<\/h3><p>\u4e3a\u964d\u4f4eDNS\u8fc1\u79fb\u98ce\u9669\uff0c\u9700\u9075\u5faa\u6807\u51c6\u6d41\u7a0b\u5e76\u4ed4\u7ec6\u68c0\u67e5\u6bcf\u4e00\u6b65\u3002\u5145\u5206\u51c6\u5907\u53ef\u5e2e\u52a9\u4f01\u4e1a\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u505c\u673a\uff0c\u540c\u65f6\u4f18\u5316\u7f51\u7ad9\u6027\u80fd\u3002.<\/p><p>\u4ee5\u4e0b\u662f\u4e2d\u5c0f\u4f01\u4e1a\u5728\u5c06DNS\u5bfc\u5165Cloudflare\u65f6\u7684\u68c0\u67e5\u6e05\u5355\uff1a<\/p><ul>\n<li><strong>\u68c0\u67e5\u6587\u4ef6\u683c\u5f0f<\/strong>: \u786e\u4fddDNS zone\u6587\u4ef6\u4e3aBIND\u683c\u5f0f\u6216\u517c\u5bb9Cloudflare\u3002.<\/li>\n<li><strong>\u53bb\u9664\u91cd\u590d\u8bb0\u5f55<\/strong>: \u4f7f\u7528\u8f85\u52a9\u5de5\u5177\u81ea\u52a8\u8fc7\u6ee4\u91cd\u590d\u8bb0\u5f55\u3002.<\/li>\n<li><strong>\u5408\u7406\u7684TTL\u9a8c\u8bc1<\/strong>: Kh\u00f4ng \u0111\u1ec3\u2064 TTL qu\u00e1 th\u1ea5p \u2064ho\u1eb7c qu\u00e1 cao, tham \u2062kh\u1ea3o m\u1eb7c \u0111\u1ecbnh 5 ph\u00fat \u2013 1 gi\u1edd.<\/li>\n<li><strong>\u6ce8\u610f\u7279\u6b8a\u8bb0\u5f55<\/strong>: MX\u3001TXT\uff08SPF\u3001DKIM\uff09\u5fc5\u987b\u51c6\u786e\u65e0\u8bef\uff0c\u4ee5\u786e\u4fdd\u90ae\u4ef6\u6b63\u5e38\u8fd0\u884c\u3002.<\/li>\n<li><strong>\u5207\u6362\u524d\u6d4b\u8bd5<\/strong>: \u4f7f\u7528\u6d4b\u8bd5\u73af\u5883\u6216\u5b50\u57df\u540d\u68c0\u67e5DNS\u8fd0\u884c\u60c5\u51b5\u3002.<\/li>\n<\/ul><p>\u9075\u5faa\u4e0a\u8ff0\u6e05\u5355\u6709\u52a9\u4e8e\u4e2d\u5c0f\u4f01\u4e1a\u5b89\u5168\u8fc1\u79fbDNS\uff0c\u6700\u5927\u9650\u5ea6\u51cf\u5c11\u610f\u5916\u6545\u969c\u3002.<\/p><h3 class=\"callout-box\" style=\"border-left:5px solid #0073aa;padding: 1em;background-color:#f0f8ff\">\n  <strong>\u91cd\u8981\u63d0\u793a\uff1a<\/strong> \u5728\u5bfc\u5165DNS\u4e4b\u524d\uff0c\u8bf7\u5b8c\u6574\u5907\u4efd\u5f53\u524dDNS\u914d\u7f6e\u3002\u5982\u6709\u53ef\u80fd\uff0c\u53ef\u4e0eDPS.MEDIA\u7b49\u670d\u52a1\u63d0\u4f9b\u5546\u534f\u4f5c\uff0c\u83b7\u5f97\u4e13\u4e1a\u652f\u6301\uff0c\u786e\u4fdd\u8fc1\u79fb\u8fc7\u7a0b\u987a\u7545\uff0c\u4e0d\u5f71\u54cd\u5728\u7ebf\u4e1a\u52a1\u8fd0\u8425\u3002.<br>\n<\/h3><table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u5e38\u89c1\u9519\u8bef<\/th>\n<th>\u539f\u56e0<\/th>\n<th>\u89e3\u51b3\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u91cd\u590d\u8bb0\u5f55<\/td>\n<td>\u5bfc\u5165\u6587\u4ef6\u5305\u542b\u591a\u4e2a\u76f8\u540c\u8bb0\u5f55<\/td>\n<td>\u5728\u5bfc\u5165\u524d\u4f7f\u7528\u8f6f\u4ef6\u8fc7\u6ee4\u6216\u624b\u52a8\u7f16\u8f91<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u4ef6\u683c\u5f0f\u65e0\u6548<\/td>\n<td>Zone\u6587\u4ef6\u4e0d\u7b26\u5408Cloudflare\u8981\u6c42\u7684\u683c\u5f0f<\/td>\n<td>\u8f6c\u6362\u4e3aBIND\u683c\u5f0f\u6216\u4f7f\u7528\u8f6c\u6362\u5de5\u5177<\/td>\n<\/tr>\n<tr>\n<td>TTL\u4e0d\u5408\u7406<\/td>\n<td>TTL\u8fc7\u4f4e\u5bfc\u81f4\u8fc7\u8f7d\uff0c\u8fc7\u9ad8\u5219\u66f4\u65b0\u5ef6\u8fdf<\/td>\n<td>\u6839\u636e\u9700\u6c42\u5c06TTL\u8bbe\u7f6e\u4e3a300\u81f33600\u79d2<\/td>\n<\/tr>\n<tr>\n<td>MX\u3001TXT\u8bb0\u5f55\u683c\u5f0f\u9519\u8bef<\/td>\n<td>\u8f93\u5165\u9519\u8bef\u7684SPF\u3001DKIM\u6216MX\u4fe1\u606f<\/td>\n<td>\u4ed4\u7ec6\u68c0\u67e5\u7535\u5b50\u90ae\u4ef6\u8bb0\u5f55\uff0c\u53c2\u8003Cloudflare\u7684\u6307\u5357<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><strong>\u8981\u70b9\u603b\u7ed3\uff1a<\/strong> \u5bf9\u4e8e\u4e2d\u5c0f\u4f01\u4e1a\uff0c\u5c06DNS\u5207\u6362\u5230Cloudflare\u9700\u8981\u6709\u660e\u786e\u7684\u8ba1\u5212\uff0c\u5e76\u4e25\u683c\u63a7\u5236DNS\u8bb0\u5f55\u3002\u9075\u5faa\u68c0\u67e5\u6e05\u5355\u5e76\u91c7\u7528\u5e38\u89c1\u7684\u4fee\u590d\u63aa\u65bd\u6709\u52a9\u4e8e\u51cf\u5c11\u670d\u52a1\u4e2d\u65ad\u98ce\u9669\uff0c\u786e\u4fdd\u5728\u7ebf\u4e1a\u52a1\u59cb\u7ec8\u7a33\u5b9a\u9ad8\u6548\u3002.<\/p><p>\u53c2\u8003\u66f4\u591a\u6765\u81ea\u6743\u5a01\u6765\u6e90\u7684\u6280\u672f\u9519\u8bef\u53ca\u8be6\u7ec6\u5904\u7406\u65b9\u6cd5\uff0c\u4ee5\u4fbf\u5728\u9047\u5230DNS\u6545\u969c\u65f6\u4e3b\u52a8\u5e94\u5bf9 [[1](https:\/\/cloud.z.com\/vn\/news\/mysql\/)]\u3002.<\/p><h2 id=\"outro\">\u56de\u987e\u8fc7\u53bb\u7684\u5386\u7a0b<\/h2><p>\u5bfc\u5165DNS\u5230Cloudflare\u65f6\u5e38\u89c1\u7684\u9519\u8bef\u901a\u5e38\u7531\u4e8e\u914d\u7f6e\u9519\u8bef\u548c\u683c\u5f0f\u4e0d\u517c\u5bb9\u3002\u5feb\u901f\u8bc6\u522b\u6709\u52a9\u4e8e\u4f60\u9ad8\u6548\u5904\u7406\u5e76\u4fdd\u6301\u7f51\u7ad9\u7a33\u5b9a\u8fd0\u884c\u3002.  <\/p><p>\u8bf7\u7acb\u5373\u5e94\u7528\u5df2\u5206\u4eab\u7684\u4fee\u590d\u6b65\u9aa4\u3002\u5bfc\u5165\u524d\u4ed4\u7ec6\u68c0\u67e5DNS\u8bb0\u5f55\u53ef\u51cf\u5c11\u6545\u969c\u3002\u9664\u4e86DNS\uff0c\u4f60\u8fd8\u53ef\u4ee5\u4e86\u89e3\u5982\u4f55\u5728Cloudflare\u5e73\u53f0\u4e0a\u4f18\u5316SEO\u6216\u63d0\u5347\u7f51\u7ad9\u5b89\u5168\u6027\u3002\u8fd9\u4e9b\u90fd\u662f\u4e2d\u5c0f\u4f01\u4e1a\u5b9e\u7528\u7684\u8bdd\u9898\u3002.  <\/p><p>DPS.MEDIA\u59cb\u7ec8\u966a\u4f34\u60a8\u6570\u5b57\u5316\u8f6c\u578b\u4e4b\u8def\u3002\u6b22\u8fce\u5728\u8bc4\u8bba\u533a\u5206\u4eab\u60a8\u7684\u4f53\u9a8c\u548c\u95ee\u9898\uff01 <\/p>\n<style>\r\n.lwrp.link-whisper-related-posts{\r\n            \r\n            margin-top: 40px;\nmargin-bottom: 30px;\r\n        }\r\n        .lwrp .lwrp-title{\r\n            \r\n            \r\n        }.lwrp .lwrp-description{\r\n            \r\n            \r\n\r\n        }\r\n        .lwrp .lwrp-list-container{\r\n        }\r\n        .lwrp .lwrp-list-multi-container{\r\n            display: flex;\r\n        }\r\n        .lwrp .lwrp-list-double{\r\n            width: 48%;\r\n        }\r\n        .lwrp .lwrp-list-triple{\r\n            width: 32%;\r\n        }\r\n        .lwrp .lwrp-list-row-container{\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n        .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n            width: calc(33% - 20px);\r\n        }\r\n        .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n            \r\n            max-width: 150px;\r\n        }\r\n        .lwrp .lwrp-list-item img{\r\n            max-width: 100%;\r\n            height: auto;\r\n            object-fit: cover;\r\n            aspect-ratio: 1 \/ 1;\r\n        }\r\n        .lwrp .lwrp-list-item.lwrp-empty-list-item{\r\n            background: initial !important;\r\n        }\r\n        .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n        .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n            \r\n            \r\n            \r\n            \r\n        }@media screen and (max-width: 480px) {\r\n            .lwrp.link-whisper-related-posts{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-title{\r\n                \r\n                \r\n            }.lwrp .lwrp-description{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-list-multi-container{\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-multi-container ul.lwrp-list{\r\n                margin-top: 0px;\r\n                margin-bottom: 0px;\r\n                padding-top: 0px;\r\n                padding-bottom: 0px;\r\n            }\r\n            .lwrp .lwrp-list-double,\r\n            .lwrp .lwrp-list-triple{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-row-container{\r\n                justify-content: initial;\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n                \r\n                max-width: initial;\r\n            }\r\n            .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n            .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n                \r\n                \r\n                \r\n                \r\n            };\r\n        }<\/style>\r\n<div id=\"link-whisper-related-posts-widget\" class=\"link-whisper-related-posts lwrp\">\r\n            <div class=\"lwrp-title\">\u76f8\u5173\u6587\u7ae0<\/div>    \r\n        <div class=\"lwrp-list-container\">\r\n                                <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e9%bb%84%e8%a4%90%e6%96%91%e6%98%af%e4%bb%80%e4%b9%88%e4%bb%a5%e5%8f%8a%e4%ba%86%e8%a7%a3%e9%bb%84%e8%a4%90%e6%96%91%e6%97%b6%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8f%e7%9a%84%e4%ba%8b%e9%a1%b9\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u540e\u671f\u662f\u4ec0\u4e48\uff1f\u4ee5\u53ca\u56fe\u7247\u540e\u671f\u9700\u8981\u6ce8\u610f\u7684\u4e8b\u9879\u662f\u4ec0\u4e48\uff1f<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e5%9c%a8shopee%e4%b8%8a%e6%92%ad%e7%a7%8d%ef%bc%8c%e7%aa%81%e7%a0%b4%e9%94%80%e5%94%ae%e7%93%b6%e9%a2%88\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Shopee \u79cd\u8349\uff1a\u63d0\u5347\u5e97\u94fa\u5c42\u7ea7\uff0c\u7a81\u7834\u9500\u552e\u989d<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e6%9e%84%e5%bb%ba%e6%83%85%e4%ba%ba%e8%8a%822%e6%9c%8814%e6%97%a5%e8%90%a5%e9%94%80%e6%b4%bb%e5%8a%a8%e4%bb%8ea%e5%88%b0z\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u672c\u5730\u8425\u9500\uff1a\u5982\u4f55\u5438\u5f15\u533a\u57df\u5ba2\u6237\uff1f<\/span><\/a><\/div>                <\/div>\r\n                            <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e8%b6%8b%e5%8a%bf-ai-%e8%ae%a9-z-%e4%b8%96%e4%bb%a3%e8%82%96%e5%83%8f%e5%8f%98%e6%88%90%e7%94%9f%e5%8a%a8%e7%9a%84%e7%ab%8b%e4%bd%93%e6%a8%a1%e5%9e%8b\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Z\u4e16\u4ee3AI\u8d8b\u52bf\uff1a\u5c06\u8096\u50cf\u7167\u53d8\u4e3a\u751f\u52a8\u624b\u529e\u6a21\u578b<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/2023%e5%b9%b4kol%e9%a2%84%e8%ae%a2%e4%bb%b7%e6%a0%bc%e5%8f%8a%e6%9c%89%e6%95%88%e9%a2%84%e8%ae%a2kol%e7%9a%84%e6%96%b9%e6%b3%95\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">2023\u5e74KOL\u9884\u8ba2\u4ef7\u683c\u8868\u53ca\u9ad8\u6548\u9884\u8ba2KOL\u7684\u65b9\u6cd5<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e5%a6%82%e4%bd%95%e4%b8%ba%e5%9c%a8%e7%ba%bf%e5%95%86%e5%ba%97%e8%ae%be%e7%bd%aefacebook%e7%9b%b4%e6%92%ad%e8%b4%ad%e7%89%a9\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u5982\u4f55\u4e3a\u5728\u7ebf\u5546\u5e97\u8bbe\u7f6eFacebook\u76f4\u64ad\u8d2d\u7269<\/span><\/a><\/div>                <\/div>\r\n                <\/div>\r\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u5728\u5c06DNS\u5bfc\u5165Cloudflare\u65f6\uff0c\u8bb8\u591a\u4eba\u4f1a\u9047\u5230\u8bb0\u5f55\u683c\u5f0f\u9519\u8bef\u3001\u7f3a\u5c11\u91cd\u8981\u8bb0\u5f55\u6216\u91cd\u590d\u8bb0\u5f55\u7b49\u95ee\u9898\u3002\u672c\u6587\u5c06\u5e2e\u52a9\u4f60\u51c6\u786e\u8bc6\u522b\u5e76\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\uff0c\u786e\u4fdd\u7cfb\u7edf\u987a\u7545\u8fd0\u884c\u3002.<\/p>","protected":false},"author":12,"featured_media":32761,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[75],"tags":[1126,1069,680],"class_list":["post-32760","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-facebook-marketing","tag-bao-mat-mang","tag-dns","tag-huong-dan-ky-thuat"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/32760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/comments?post=32760"}],"version-history":[{"count":2,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/32760\/revisions"}],"predecessor-version":[{"id":36036,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/32760\/revisions\/36036"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media\/32761"}],"wp:attachment":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media?parent=32760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/categories?post=32760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/tags?post=32760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}