dns-worker 1.0.24 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -109
- package/dist/serverfull.mjs +5319 -911
- package/migrations/0052_add_e2ee_to_logs.sql +6 -0
- package/migrations/0053_add_e2ee_key_tables.sql +31 -0
- package/migrations/0054_drop_hourly_rollups.sql +12 -0
- package/migrations/0055_add_is_active_to_user_log_keys.sql +2 -0
- package/migrations/0056_add_kem_keys_and_encrypt_version.sql +21 -0
- package/migrations/0057_add_idx_logs_kem_key_id.sql +2 -0
- package/package.json +8 -5
- package/static/_headers +8 -0
- package/static/assets/AccountView-CdfTI-rw.js +4 -0
- package/static/assets/AnalyticsView-DE25Td6t.js +2 -0
- package/static/assets/AuthView-DeKX1gG-.js +2 -0
- package/static/assets/DestinationMap-CRCdjD4S.js +1 -0
- package/static/assets/FilteringView-9SF7vAn0.js +1 -0
- package/static/assets/LogsView-DGXuCkRb.js +5 -0
- package/static/assets/QRCodeCanvas-9YjBSnzo.js +2 -0
- package/static/assets/RulesView-C8mXn9m8.js +1 -0
- package/static/assets/SettingsView-yiZeyh7q.js +1 -0
- package/static/assets/SetupView-r5GQKPN4.js +1 -0
- package/static/assets/{SwipeableDrawer-CzMJdF3W.js → SwipeableDrawer-DuXKmSrw.js} +1 -1
- package/static/assets/{TrendChart-Dl9UU7gA.js → TrendChart-BbPOeC8w.js} +3 -3
- package/static/assets/browser-BqNNtPRD.js +1 -0
- package/static/assets/date-dnUzoLoj.js +1 -0
- package/static/assets/de-DE-Bvn6LW48.js +10 -0
- package/static/assets/es-ES-BHMlKDw4.js +10 -0
- package/static/assets/fr-FR-DEgfea4H.js +10 -0
- package/static/assets/index-Ct0QwtUk.js +14 -0
- package/static/assets/index-D53KGRYV.css +2 -0
- package/static/assets/ja-JP-C1UasoOt.js +10 -0
- package/static/assets/ko-KR-DRVmuXAK.js +10 -0
- package/static/assets/ru-RU-BrUQ8HMM.js +10 -0
- package/static/assets/services-unF2tLc7.js +1 -0
- package/static/assets/sqlite.worker-C50yoTbX.js +186 -0
- package/static/assets/sqlite3-Con_VOcu.wasm +0 -0
- package/static/assets/sqlite3-opfs-async-proxy-Ck-yCayi.js +881 -0
- package/static/assets/sqlite3-opfs-async-proxy.js +881 -0
- package/static/assets/sqlite3-worker1-DZ2OAEkd.js +44 -0
- package/static/assets/vendor-react-GZisTXSQ.js +11 -0
- package/static/assets/{vendor-ui-core-CCxBtqRD.js → vendor-ui-core-BjAOArGo.js} +1 -1
- package/static/assets/vendor-utils-C-1rF3VB.js +9 -0
- package/static/assets/vi-VN-_fj_hwx9.js +10 -0
- package/static/assets/zh-CN-DRUEP9Sg.js +10 -0
- package/static/assets/zh-TW-v7FvDwjG.js +10 -0
- package/static/index.html +5 -5
- package/static/sqlite3-opfs-async-proxy.js +881 -0
- package/static/sw.js +1 -1
- package/static/assets/AccountView-yBM8r7xk.js +0 -4
- package/static/assets/AnalyticsView-CW9l8krm.js +0 -2
- package/static/assets/AuthView-BpLHhuif.js +0 -2
- package/static/assets/DestinationMap-DUZnyLyb.js +0 -1
- package/static/assets/FilteringView-BvOw_liH.js +0 -1
- package/static/assets/LogsView-CYxZaJPW.js +0 -5
- package/static/assets/QRCodeCanvas-vzXe_hzQ.js +0 -2
- package/static/assets/RulesView-CbToiqT1.js +0 -1
- package/static/assets/SettingsView-mSkxdlrh.js +0 -1
- package/static/assets/SetupView-Dzbc8NmG.js +0 -1
- package/static/assets/browser-BskSZoIg.js +0 -1
- package/static/assets/date-WF-_cJDs.js +0 -1
- package/static/assets/de-DE-CXKS_pep.js +0 -10
- package/static/assets/es-ES-B2e3ea35.js +0 -10
- package/static/assets/fr-FR-1qQHEpoW.js +0 -10
- package/static/assets/index-DLmOvLdX.js +0 -16
- package/static/assets/index-DdQuGqR5.css +0 -2
- package/static/assets/ja-JP-CCVeJXwX.js +0 -10
- package/static/assets/ko-KR-bQ1okpC2.js +0 -10
- package/static/assets/ru-RU-DeRsms_o.js +0 -10
- package/static/assets/services-C-uSOjyn.js +0 -1
- package/static/assets/vendor-react-DifRgRH3.js +0 -11
- package/static/assets/vendor-utils-D17P9mkD.js +0 -9
- package/static/assets/vi-VN-BcXfqmzH.js +0 -10
- package/static/assets/zh-CN-D8YK7j27.js +0 -12
- package/static/assets/zh-TW-C2_-uaZk.js +0 -12
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const e={account:`帳號`,logout:`登出`,selectProfile:`選擇配置`,add:`添加`,newProfileName:`新配置名稱...`,profileNameFormatTip:`配置名稱提示:1-30個字元,且不能與已有配置重名`,profileLimitExceeded:`配置數量已達上限(最多{{max}}個)`,profileNameExists:`該配置名稱已存在`,profileNameFormatError:`配置名稱格式不正確`,create:`創建`,welcome:`歡迎`,createProfileToStart:`創建一個配置以開始。`,loading:`載入中...`,errorNetwork:`網路錯誤`,confirmDelete:`確定要刪除此配置嗎?`,confirmLogout:`確定注銷登入嗎?`,notFound:`404 - 頁面未找到`,notFoundDesc:`您嘗試訪問的頁面不存在或已被移除。`,backToHome:`返回首頁`,apac:`亞太`,mainlandChina:`中國大陸`,HongKong:`香港`,Singapore:`新加坡`,Tokyo:`東京`,NorthAmerica:`北美`,nae:`北美東部`,naw:`北美西部`,eu:`歐洲`,invalidFormat:`無效文件格式`,import:`匯入`,importSuccess:`配置成功匯入`,importError:`配置匯入失敗,請確保格式正確且稍後再試`,save:`儲存`,saveSuccess:`設定已儲存`},t={setup:`安裝`,rules:`規則`,stats:`統計`,logs:`日誌`,filter:`過濾項`,settings:`設定`},n={light:`淺色`,dark:`深色`,system:`跟隨系統`},r={keepLoggedIn:`保持登入 {{days}} 天`,login:`登入 DNS Worker`,signup:`創建帳戶以開始`,welcomeBack:`歡迎回來,請輸入憑據`,protectInternet:`保護您的網際網路第一跳`,error:`錯誤`,username:`用戶名`,usernamePlaceholder:`您的用戶名`,password:`密碼`,passwordPlaceholder:`您的密碼`,loginBtn:`登入`,signupBtn:`註冊`,totpVerification:`TOTP 驗證`,noAccount:`沒有帳戶?立即註冊`,haveAccount:`已有帳戶?返回登入`,formatTipUsername:`用戶名格式提示:僅限 5 到 32 位 Unix 用戶名格式(小寫字母或底線開頭,包含小寫字母、數字、底線及中線)`,formatTipPassword:`密碼格式提示:12-100位字元`,authFailed:`認證失敗,請檢查用戶名或密碼`,networkError:`網路錯誤,請稍後再試`,turnstileRequired:`請完成人機身份驗證`,turnstileError:`驗證服務加載失敗,請檢查 Site Key 或域名配置`,verifying:`正在進行安全驗證...`,passwordLeaked:`您的密碼已被洩露,為了您的帳戶安全,請使用隨機密碼/強密碼。`,usernameExists:`該用戶名已被註冊,請嘗試其他用戶名。`,skip:`跳過`,showPassword:`顯示密碼`,hidePassword:`隱藏密碼`,geolocationRequired:`地理資訊獲取失敗,請重新進入。`,unauthorizedDefault:`您的登入會話已失效,請重新登入。`,unauthorizedGeo:`檢測到地理位置變更(超出距離限制),當前會話已被強制註銷。`,unauthorizedExpired:`您的登入已過期,請重新登入。`,unauthorizedReuse:`安全警報:檢測到重複登入,會話已終止。`,unauthorizedRevoked:`您的會話已被註銷或刪除,請重新登入。`,sessionLockTitle:`空閒會話鎖定`,sessionLockDesc:`當應用程式空閒時,使用 4 位數字 PIN 鎖定介面,以防止未授權的物理存取來保護活動會話。`,enableSessionLock:`啟用會話鎖定`,inactivityTimeout:`空閒逾時時間`,timeout1m:`1 分鐘`,timeout2m:`2 分鐘`,timeout5m:`5 分鐘`,timeout15m:`15 分鐘`,timeout30m:`30 分鐘`,timeout60m:`60 分鐘`,changePin:`修改 PIN 碼`,disablePin:`停用會話鎖定`,configurePin:`設定 PIN 碼`,newPin:`新 4 位 PIN 碼`,pinHelper:`僅限數字,例如:1234`,confirmPin:`確認新 PIN 碼`,verifyIdentity:`驗證身份`,usePassword:`使用密碼驗證`,use2fa:`使用 TOTP 驗證碼`,totpCode:`TOTP 驗證碼`,currentPassword:`目前密碼`,disablePinWarning:`停用 PIN 碼將徹底關閉空閒會话鎖定功能。`,pinFormatTip:`PIN 碼必須為 4 位數字`,pinMatchTip:`兩次輸入的 PIN 碼不符合`,passwordRequired:`需要輸入密碼以驗證身份`,sessionLocked:`由於長時間未活動,會話已鎖定`,sessionExpired:`嘗試次數過多,會話已終結。`,pinIncorrect:`PIN 碼錯誤`,attemptsRemaining:`還剩 {{count}} 次嘗試機會`,logoutAndReturn:`登出會話`,lockNow:`立即鎖定`,cfErrorWithDetails:`Cloudflare 邊緣節點異常 (錯誤代碼 {{code}}: {{desc}})。服務暫時不可用,請稍後重試。{{rayId}}`,cfErrorCodeOnly:`Cloudflare 邊緣服務異常 (錯誤代碼 {{code}})。服務暫時不可用,請稍後重試。{{rayId}}`,cfErrorGeneric:`Cloudflare 邊緣服務異常,服務暫時不可用,請稍後重試。{{rayId}}`,htmlErrorGeneric:`伺服器傳回異常網頁回應 (HTTP {{status}}),請稍後重試。`,tooManyAttempts:`請求過於頻繁或嘗試次數過多,已被臨時限制,請稍後再試。`,dbQuotaExceeded:`資料庫每日免費讀取配額已用盡,請等待次日自動重置或升級配額。`,noUsersRegistered:`系統尚無帳號,請註冊成為管理員。`,registerAdminTitle:`註冊管理員帳號`,registerAdminDesc:`系統尚無帳號,首位註冊用戶將自動成為系統管理員。`,goToRegisterAdmin:`註冊管理員`,dbNotInitialized:`資料庫未初始化或缺少資料表,請在終端執行 npm run db:migrate:prod 套用資料庫遷移。`,verifyWithPasskey:`使用通行密鑰驗證`,orUseTotp:`或使用數字驗證器`,passwordRequiredFirst:`請先輸入密碼`,passkeyVerification:`通行密鑰驗證`,passkeyPromptDesc:`使用已註冊的裝置生物識別或硬體安全金鑰進行驗證`,forgotPassword:`忘記密碼?`,forgotPasswordTitle:`重設密碼`,forgotPasswordDesc:`透過多因素驗證(通行金鑰或數位驗證碼)安全找回您的帳號。`,noMfaContactAdmin:`該帳號未設定任何多因素驗證(Passkey 或 TOTP),無法自助重設密碼。請聯絡系統管理員為您重設密碼。`,chooseMfaForReset:`請選擇一種驗證方式以核驗您的身分:`,authViaPasskey:`使用通行金鑰驗證`,authViaPasskeyDesc:`使用指紋、臉孔或硬體安全金鑰一鍵完成驗證`,authViaTotp:`使用數位驗證器 (TOTP)`,authViaTotpDesc:`輸入身分驗證器應用程式產生的 6 位動態驗證碼`,authViaRecoveryKey:`使用緊急復原金鑰`,authViaRecoveryKeyDesc:`輸入 10 位緊急復原金鑰`,verifyAndProceed:`核驗並繼續`,setNewPassword:`設定新密碼`,setNewPasswordDesc:`身分核驗成功,請為您的帳號設定一個新密碼。`,newPassword:`新密碼`,confirmNewPassword:`確認新密碼`,passwordMismatch:`兩次輸入的新密碼不相符`,saveAndReset:`儲存並重設密碼`,resetSuccessTitle:`密碼重設成功`,resetSuccessDesc:`您的密碼已更新,所有現有登入工作階段已登出。請使用新密碼重新登入。`,goToLogin:`前往登入`,mfaSetupTitle:`強化帳號安全`,mfaSetupDesc:`設定多因素驗證 (MFA) 可有效保護您的帳號,並解鎖無密碼快速登入與密碼自助找回功能。`,mfaRecommended:`推薦`,passkeySignupDesc:`使用指紋、臉孔或安全金鑰,免去繁瑣輸入,兼顧極速體驗與頂級安全防護。`,bindPasskeyNow:`立即綁定通行金鑰`,mfaUniversal:`通用`,totpSignupDesc:`使用 Google Authenticator、1Password 等身分驗證器產生 6 位動態驗證碼。`,setupTotpBtn:`設定數位驗證器`,skipMfaSetup:`暫不設定,直接完成`,backToMfaOptions:`返回選擇其他方式`,otherOptions:`其他選項`,next:`下一步`,mfaVerification:`多因素認證`,totpPrompt:`請輸入身份驗證應用程式中的 6 位動態驗證碼`,recoveryPrompt:`請輸入 30 位應急恢復密鑰(5 組,每組 6 位數字)`,recoveryChecksumError:`校驗碼錯誤:該組 6 位數無法被 11 整除`,recoveryChecksumErrorDesc:`第 {{groups}} 組校驗碼錯誤,請核對後重試`,backToPasskey:`返回通行密鑰驗證`,recoveryKeyRequired:`請輸入應急恢復密鑰`,totpFormatError:`請輸入有效的 6 位驗證碼`,registrationDisabledTitle:`註冊已停用`,registrationDisabledDesc:`目前系統已暫停開放新使用者註冊,請聯絡系統管理員取得帳號。`,backToLogin:`返回登入`,jwtSecretPreset:`檢測到正在使用預設的 JWT_SECRET,請在環境變數中修改並替換為自訂安全金鑰後重新部署。`,jwtSecretMissing:`缺少 JWT_SECRET,請在環境變數中配置安全金鑰後重新部署。`,jwtSecretInvalid:`JWT_SECRET 金鑰格式無效,請檢查設定。`},i={title:`安裝指南`,subtitle:`配置裝置以使用 DNS Worker 主掌您的網際網路安全。`,regionOptimization:`接入地區優化 (Windows)`,otherRegion:`其他地區`,copied:`已複製到剪貼簿`,verifyConnection:`驗證您的連接`,verifying:`正在驗證...`,connected:`連接正常`,notConnected:`或未連接`,profileMatch:`您正透過此配置進行過濾。`,profileMismatch:`您正使用 Obex,但配置 ID 不匹配。`,verifyHint:`完成下方配置後,點擊按鈕驗證。`,refreshStatus:`重新整理狀態`,egressIp:`出口 IP 地址`,currentLocation:`當前位置`,edgeServer:`邊緣伺服器`,dohUrlTitle:`當前配置 DoH URL`,accessPointTitle:`Access DoH URL`,defaultAccessPointName:`裝置-1`,moreAccessPoints:`更多存取點 ↗`,accessPointName:`存取點名稱`,accessPointNameFormatTip:`存取點名稱提示:1-30 位字元,只允許字母、數字、下劃線和中劃線`,accessPointLimitExceeded:`存取點數量已達上限(最多{{max}}個)`,accessPointToken:`訪問密鑰`,addAccessPoint:`新增存取點`,renameAccessPoint:`重命名`,rotateToken:`輪換密鑰`,rotateTokenConfirmDesc:`輪換密鑰將使所有使用舊密鑰的裝置立即斷開連接。確定要繼續嗎?`,deleteAccessPoint:`刪除`,deleteAccessPointConfirm:`確定要刪除此存取點嗎?`,manageAccessPoints:`管理存取點`,searchAccessPoints:`搜尋存取點...`,accessPointNameExists:`存取點名稱已存在`,accessPointCreated:`存取點創建成功`,accessPointRenamed:`存取點重命名成功`,accessPointDeleted:`存取點刪除成功`,tokenRotated:`訪問密鑰輪換成功`,whatIsDoh:`何為 DoH?`,dohDesc:`DNS over HTTPS (DoH) 是一種透過加密的 HTTPS 協議進行域名解析技術。`,dohBenefit1:`減少營運商等網路中間人的劫持與監聽`,dohBenefit2:`提升域名解析及網際網路訪問安全性`,learnMore:`瞭解更多`,copyUrl:`複製 URL`,browsers:`瀏覽器`,browserTitle:`瀏覽器配置 (Chrome/Edge)`,browserSteps:`設定 > 隱私和安全 > 安全 > 使用安全 DNS > 自訂 > 粘貼 URL。`,browserTips:`或者將此網址複製到地址欄:`,apple:`Apple`,appleTitle:`macOS / iOS / iPadOS / tvOS`,appleDesc:`Apple 裝置支援透過設定描述檔快速配置。`,appleWarning:`設定描述檔不可在 "封閉模式 (Lockdown Mode)" 下安裝,安裝前請確認系統不處於相關狀態。`,downloadConfig:`下載設定描述檔`,appleInstallHint:`下載後請前往「設定」>「已下載的設定描述檔」進行安裝`,windows:`MS Windows`,windowsTitle:`Windows 11 配置 [地區: {{region}}]`,windowsStep0:`設定 > 網路與網際網路`,windowsStep1:`屬性 > DNS 伺服器 > 編輯 > 手動。`,windowsStep2:`選擇並填入 DNS IP:`,windowsStep3:`啟用 DoH (手動模板) 並粘貼 URL。`,windowsStep4:`關閉 回退到明文。`,android:`Android`,androidTitle:`Android 9+`,androidDesc:`支援系統原生的「私有 DNS (DoT)」或使用第三方 App 設定 DoH。`,androidDotTitle:`私有 DNS (DoT - Serverfull 模式)`,androidDotDesc:`設定 > 網絡和互聯網 > 私有 DNS > 提供者主機名:`,androidWarning:`註:系統原生的「私有 DNS」使用 DoT 協議。若部署在 Cloudflare Workers,建議使用 Intra 等 App 設定 DoH;若運行在 Serverfull 模式並配置了 TLS 證書,可直接使用上述 DoT 主機名。`,dynamicFromDomain:`動態 (來自 "{{domain}}")`,dynamicFromDomainV6:`動態 IPv6 (來自 "{{domain}}")`,linux:`Linux`,linuxTitle:`Linux (Cloudflared DoH 代理)`,linuxDesc:`在本地執行輕量級 DNS 代理,透過 DoH 將解析請求加密轉發至 Obex。`,linuxStep1:`執行以下腳本安裝 cloudflared 並建立 systemd 服務(監聽 127.0.0.1:53)。`,linuxStep2:`將系統 DNS 修改為 127.0.0.1。`,routeros:`MikroTik`,routerosTitle:`MikroTik RouterOS`,routerosDesc:`將其設定為路由器的 DoH 伺服器,即可讓網路中的所有裝置使用此解析器。`,routerosStep1:`在 RouterOS 終端機中執行(RouterOS 7):`,routerosNote:`經路由器轉發的查詢在日誌中會顯示為路由器,而非個別裝置。如需依裝置查看日誌,請直接在裝置上設定。`,routerosDocs:`MikroTik DNS 文件`,accessPointsCardTitle:`接入點`,currentAccessPoint:`目前接入點`,selectAccessPointToConfigure:`選擇接入點以設定`},a={title:`自訂規則`,subtitle:`手動控制特定域名的解析行為(屏蔽、放行或重新導向)。`,action:`行動`,typeBlock:`攔截 (BLOCK)`,typeAllow:`放行 (ALLOW)`,typeRedirect:`重新導向 (REDIRECT)`,pattern:`域名模式 (Pattern)`,patternPlaceholder:`example.com 或 *.test.com`,addRule:`添加規則`,redirectSettings:`重新導向記錄設定`,aRecord:`A 記錄 (IPv4)`,aaaaRecord:`AAAA 記錄 (IPv6)`,cnameRecord:`CNAME 記錄`,txtRecord:`TXT 記錄`,optional:`(選填)`,ipv4Placeholder:`例如: 1.2.3.4`,ipv6Placeholder:`例如: 2001:db8::1`,cnamePlaceholder:`例如: target.com`,txtPlaceholder:`輸入文本內容...`,saveRedirectRule:`儲存並添加重新導向規則`,noRulesTitle:`無自訂規則`,noRulesDesc:`您還沒有添加任何手動規則。`,tableAction:`行動`,tablePattern:`模式`,tableDetails:`解析詳情`,tableOps:`操作`,labelBlock:`攔截`,labelAllow:`放行`,labelRedirect:`重新導向`,detailBlock:`解析至`,detailAllow:`轉發至上游服務`,patternEmpty:`域名模式不能為空`,duplicatePattern:`該域名的規則已存在`,addSuccess:`規則新增成功`,addFailed:`新增規則失敗`,updateSuccess:`規則更新成功`,updateFailed:`更新規則失敗`,tableCreatedAt:`新增時間`,clickToSort:`點擊排序`},o={customRange:`自訂時間範圍`,startTime:`開始時間`,endTime:`結束時間`,apply:`應用`,custom:`自訂`,totalQueries:`總查詢`,blocked:`攔截`,redirected:`重新導向`,blockRate:`攔截率`,activeDevices:`活躍裝置`,activeIPs:`活躍 IP 地址`,queryTrend:`查詢趨勢`,noRecords:`此時間段內暫無記錄`,topAllowed:`常用域名 (Allowed)`,topBlocked:`攔截頻率最高 (Blocked)`,noData:`暫無數據`,clientActivity:`客戶端活躍度`,ipAddress:`IP 地址`,location:`歸屬地`,queries:`查詢數`,destinationDistribution:`流量目的地分佈`,requests:`請求`,topIsps:`主要營運商`,pressToShowMore:`按下顯示更多`,maximize:`放大`,minimize:`縮小`},s={title:`查詢日誌`,subtitle:`查看本配置 DNS 解析日誌和攔截記錄。`,realtime:`即時`,allStatus:`全部狀態`,onlyPass:`放行`,onlyBlock:`攔截`,onlyRedirect:`重新導向`,searchPlaceholder:`搜尋域名...`,noResults:`未找到結果`,noRecords:`尚無記錄`,noResultsDesc:`沒有找到匹配 "{{query}}" 的域名記錄。`,noRecordsDesc:`選定的時間範圍內沒有收到任何 DNS 查詢。`,tableTime:`時間`,tableDomain:`域名`,tableAnswer:`解析結果`,tableSource:`來源`,tableType:`類型`,tableStatus:`狀態`,tableReason:`原因`,loadedAll:`已載入全部 {{count}} 條記錄`,realtimeLoadMoreTip:`關閉「即時」模式以載入更多`,filterAccessPoint:`存取點`,allAccessPoint:`全部存取點`,allCountry:`全部國家`,filterCountry:`目的地國家`,allIsp:`全部營運商`,filterIsp:`營運商`,timeRange:`時間範圍`,clearFilters:`清除篩選`,details:`查詢詳情`,detailAccessPoint:`存取點`,basicInfo:`基礎資訊`,detailDomain:`域名`,detailType:`類型`,detailTime:`時間`,detailLatency:`耗時`,detailProfile:`所用配置`,detailStatus:`狀態`,detailUpstream:`上游伺服器`,detailReason:`原因`,detailNoReason:`無 (已放行)`,detailECS:`ECS`,resolutionResult:`解析結果`,noResult:`無結果`,networkDetails:`網路詳情`,clientSource:`客戶端 (源)`,destination:`目的地 (解析地址)`,quickActions:`快捷操作`,actionAllow:`放行`,actionBlock:`攔截`,actionRedirect:`重新導向`,statusPass:`放行`,statusBlock:`攔截`,statusRedirect:`重新導向`,export:`匯出日誌`,rewritten:`已重寫`,logDetails:`查詢詳情`,searchCountry:`搜尋國家...`,noMatchingCountries:`未找到相符國家`,searchIsp:`搜尋電信業者...`,noMatchingIsps:`未找到相符電信業者`,loadingIsps:`正在載入電信業者...`,loggingDisabledTitle:`日誌記錄已關閉`,loggingDisabledDesc:`目前設定的日誌留存已設為「關閉」,系統不記錄任何查詢日誌。如需查看,請在設定中啟用日誌留存。`},c={title:`外部攔截清單`,subtitle:`訂閱第三方維護的域名屏蔽清單 (如 AdGuard 等)。`,formatDisclaimer:`本系統只支援有限的 AdGuard 格式列表和純域名列表。僅支援基礎的攔截規則(如 ||example.com^),會繞過 "@@" 白名單,暫不支援 "$" 重寫規則以及 "*" 省略規則。系統會自動匹配域名的所有子域名。`,syncAll:`同步所有清单`,urlPlaceholder:`輸入攔截清單 URL...`,addSubscription:`添加訂閱`,supportedFormats:`支援的清單格式:`,formatAdGuard:`相容 ||domain.com^ 等過濾規則。`,formatHosts:`相容標準 hosts 文件 (例如 0.0.0.0 domain.com)。`,noListsTitle:`尚未添加清單`,noListsDesc:`您還沒有訂閱任何外部攔截清單。`,tableUrl:`清單 URL`,tableLastSync:`上次同步`,tableStatus:`狀態`,tableOps:`操作`,neverSynced:`從未`,enabled:`正常`,disabled:`同步失敗`,statusNormal:`正常`,statusDisabled:`已停用`,statusOutdated:`過時`,statusMissing:`缺失`,presetOisdBig:`OISD Big (廣告/惡意軟體等攔截)`,presetOisdNsfw:`OISD NSFW (色情/震撼/成人內容攔截)`,presetAdGuard:`AdGuard AdServers (廣告伺服器)`,presetStevenBlack:`StevenBlack Hosts (綜合攔截)`,syncTaskStarted:`同步任務已啟動`,syncCheckComplete:`同步檢查已完成`,syncTaskFailed:`同步任務失敗`,syncing:`正在同步...`,syncSuccess:`清單同步成功`,syncError:`清單同步失敗`,syncErrorDesc:`無法下載或解析此攔截列表。請檢查連結是否正確,並確保該連結可以正常存取。`,deleteConfirm:`確定要刪除此清單訂閱嗎?`,deleteSuccess:`清單刪除成功`,deleteError:`清單刪除失敗`,addSuccess:`清單新增成功`,addError:`清單新增失敗`,listEnabled:`清單已啟用`,listEnabledHint:`停用後將停止使用此清單進行過濾,但不會刪除該清單,其訂閱與同步紀錄會保留。`,listEnabledToast:`已啟用清單 - 正在重建過濾器`,listDisabledToast:`已停用清單 - 正在重建過濾器`,checkDomain:`檢查網域`,checkDomainHint:`清單以精簡過濾器的形式儲存,因此無法瀏覽其中的項目。您可以立即針對此清單測試任意網域。`,check:`檢查`,checkBlocked:`已被此清單封鎖`,checkNotBlocked:`未被此清單封鎖`,checkViaParent:`(比對到上層網域)`,checkNotSynced:`此清單尚未完成同步,因此暫無可供檢查的內容。`,checkListDisabled:`此清單目前已停用,因此現在不會過濾任何內容。`,checkProbabilisticRate:`過濾器屬於機率性:大約每 {{odds}} 次比對中有 1 次為誤判。新增例外規則也會涵蓋其所有子網域。`,checkProbabilistic:`過濾器屬於機率性,因此少部分比對屬於誤判。新增例外規則也會涵蓋其所有子網域。`,checkAllowAction:`仍然允許`,checkAllowed:`已新增例外 - 該網域現在可以解析`,allowRuleAdded:`已為 {{domain}} 新增例外`},l={title:`配置設定`,subtitle:`管理您的 DNS 解析策略和進階選項。`,saveChanges:`儲存所有更改`,saveSuccess:`設定已成功儲存`,saveError:`儲存設定失敗,請稍後再試`,upstreamTitle:`上游服務`,dohUrl:`DoH URL`,dnsIP:`DNS IP`,classicDns:`經典 DNS`,httpsOnly:`僅支援 HTTPS`,upstreamDesc:`所有未被攔截的查詢將由本應用轉發至此伺服器。支援 DoH (HTTPS)、DoT (tls://)、DNS Stamp (sdns://) 或經典 DNS。經典 DNS 透過 TCP 轉發。`,defaultPolicyTitle:`默認過濾行為`,onNoMatch:`未匹配規則時`,allowAll:`允許所有查詢`,blockAll:`攔截所有查詢`,logRetentionTitle:`日誌留存`,retentionDuration:`留存時長`,retentionDesc:`日誌將自動清除。`,skipLogOnPass:`不記錄放行紀錄`,skipLogOnPassDesc:`啟用後不記錄正常允許的 DNS 查詢,僅記錄被攔截、重新導向或解析失敗的紀錄。可大幅減少儲存空間與寫入操作。`,ecsTitle:`EDNS 客戶端子網 (ECS)`,ecsUpstreamHint:`並非所有上游 DNS 都支援 ECS。對於 ControlD 等遞迴解析器,ECS 僅影響其內部路由,不會傳遞給上游權威伺服器。`,sendEcs:`呈遞 ECS`,customSubnet:`自訂子網`,customIpv4:`自訂 IPv4 子網`,customIpv6:`自訂 IPv6 子网`,ipv4Hint:`(例如 1.2.3.0/24)`,ipv6Hint:`(例如 2001:db8::/32)`,testToolTitle:`即時解析測試工具`,testDomain:`測試域名`,recordType:`記錄類型`,runTest:`執行測試`,domainPlaceholder:`例如 google.com`,hitRule:`命中規則 / 原因`,defaultAllow:`默認放行策略`,parseLatency:`解析耗時`,sourceIp:`源 IP 地址`,answerSection:`解析結果回顯 (Answer Section)`,noRecordsReturned:`本次查詢未返回任何記錄。`,diagnostics:`診斷資訊`,errorDetail:`錯誤詳情`,upstreamResponse:`上游回應內容`,presetCloudflareSecurity:`Cloudflare Security (快速/去惡意域名/去釣魚域名)`,presetCloudflareFamilies:`Cloudflare Families (快速/去惡意域名/去成人內容)`,presetQuad9:`Quad9 (去惡意域名/無日誌/不呈遞 ECS)`,presetQuad9Ecs:`Quad9 ECS (去惡意域名/無日誌/呈遞 ECS)`,presetControlDFree:`ControlD Free (去廣告/去跟蹤/去惡意域名/去釣魚域名)`,presetControlDUncensored:`ControlD Uncensored (抗審查)`,presetAdGuard:`AdGuard (去廣告/去跟蹤)`,presetAdGuardFamily:`AdGuard Family protection (去廣告/去跟蹤/去成人內容/安全搜尋)`,retention10m:`10 分鐘`,retention1h:`1 小時`,retention24h:`24 小時`,retention7d:`7 天`,retention30d:`30 天`,retention90d:`90 天 (最長)`,blockModeTitle:`攔截響應模式`,blockModeDesc:`當域名被攔截時返回的内容`,default:`默認`,NXDOMAIN:`域名不存在`,NODATA:`空回答`,customIP:`自訂 IP`,export:`匯出配置`,exportSuccess:`配置成功匯出`,exportError:`配置匯出失敗,請稍後再試`,nameUpdateSuccess:`配置名稱已更新`,saving:`正在儲存...`,echTitle:`重寫 ECH`,enableEch:`啟用重寫 ECH`,echDesc:`針對由 Cloudflare 代理的網域名稱,當查詢 HTTPS (Type 65) 或 SVCB (Type 64) 記錄時,自動重寫注入 ECH 參數與表層 SNI 以保護存取隱私。`,echFrontingTitle:`表層 SNI (ECH Fronting)`,echFrontingDesc:`TLS 握手外層可見的偽裝網域`,echFrontingCustomPlaceholder:`輸入自訂表層網域,例如 crypto.cloudflare.com`,echPreferred:`首選`,whatIsEch:`何為 ECH (Encrypted Client Hello)?`,echHelpDesc:`ECH (加密客戶端問候) 是 TLS 1.3 的重要隱私擴充,它將 TLS 握手中的真實目標網域名稱 (Inner SNI) 全程加密,僅向網路中間人暴露表層偽裝網域名稱 (Outer SNI / ECH Fronting)。`,echHelpBenefit1:`防止中間人及 ISP 窺探您正在存取的具體網頁與子網域名稱`,echHelpBenefit2:`配合 DoH 與自訂表層 SNI,消除明文 SNI 阻斷與識別風險`,retentionDisabled:`關閉 (隱私需要)`,retentionDisabledDesc:`已關閉日誌記錄。系統將不會記錄任何 DNS 查詢日誌並立即清空歷史日誌。`},u={title:`帳號設定`,subtitle:`管理您的安全憑據和系統用戶。`,jwtSecretWarningTitle:`安全提示:JWT 金鑰強度較弱`,jwtSecretWarningDesc:`目前 JWT_SECRET 長度小於 32 位元字元,存在潛在安全隱患。請先設定環境變數 KEK_v1 完成憑證信封加密遷移,然後再輪換 JWT_SECRET,以防止既有加密的 TOTP 或復原金鑰無法解密。`,roleAdmin:`系統管理員`,roleUser:`用戶`,personalInfo:`個人資訊`,username:`用戶名`,userId:`用戶 ID`,changePassword:`修改密碼`,currentPassword:`當前密碼`,newPassword:`新密碼`,updatePassword:`更新密碼`,userManagement:`用戶管理 (管理員)`,createUser:`創建用戶`,role:`角色`,createdAt:`創建時間`,lastActive:`最後活動時間`,lastResolve:`最後解析時間`,actions:`操作`,dangerZone:`危險區域`,clearLogs:`清空所有日誌`,clearLogsDesc:`這將刪除您名下所有 DNS 配置生成的查詢日誌。此操作不可恢復。`,clearLogsBtn:`立即清空日誌`,deleteAccount:`註銷帳號`,deleteAccountDesc:`永久刪除您的帳號及所有關聯數據。此操作將導致您失去所有解析配置。`,deleteAccountBtn:`註銷並刪除帳號`,createNewUser:`創建新用戶`,initialPassword:`初始密碼`,userRole:`用戶角色`,cancel:`取消`,createNow:`立即創建`,formatTipUsername:`用戶名格式提示:僅限 5 至 32 位 Unix 用戶名格式`,formatTipPassword:`密碼格式提示:12-100位字元`,passwordSuccess:`密碼修改成功`,updateFailed:`修改失敗`,confirmDeleteUser:`確定要刪除此用戶嗎?其擁有的所有配置也將被移除。`,confirmClearLogs:`確定要清空您名下所有配置的查詢日誌嗎?此操作不可撤銷。`,clearLogsSuccess:`日誌已成功清空`,confirmDeleteAccount:`警告:確定要註銷並刪除本帳號嗎?
|
|
2
|
-
|
|
3
|
-
閣下所有 DNS 配置、自訂規則和查詢日誌將被永久刪除。此操作不可逆!`,inactivityPolicy:`活躍度政策`,inactivityDesc:`為保護用戶隱私並節省資源,超過 30 天無解析記錄的帳戶,其所有關聯查詢日誌及 DNS 配置將被自動清除。帳戶本身在 90 天無登錄後將予移除。`,systemSettings:`系統設定 (管理員)`,adminOnlyView:`僅管理員可見`,featureToggle:`功能開關`,enableTurnstileSignup:`註冊頁面啟用人機驗證`,enableTurnstileLogin:`登入頁面啟用人機驗證`,totp:{title:`數位驗證器 (TOTP)`,enabled:`啟用`,disabled:`停用`,setupDesc:`為帳號新增額外的安全層。支持 Google Authenticator、Authy 或任何 TOTP 相容應用。`,setupBtn:`設定數位驗證器`,scanQR:`使用驗證器應用掃描此二維碼:`,orEnterManually:`或手動輸入密鑰:`,enterCode:`請輸入驗證器代碼進行確認:`,enterCodeHint:`輸入 6 位驗證碼以確認密鑰已正確錄入。`,activate:`啟用數位驗證器`,skipPassword:`無密碼登入 — 登入時只顯示 TOTP 輸入框(隐藏密碼)`,disable:`停用數位驗證器`,disableTitle:`停用數位驗證器`,disableWarning:`停用數位驗證器後,若未設定通行金鑰,帳號將僅受密碼保護。確定要停用嗎?`,confirmDisable:`確認停用`,recoveryKeysTitle:`請保存您的恢復密鑰`,recoveryKeysWarning:`請將恢復金鑰妥善保存(如密碼管理器)。每個金鑰只能使用一次。`,copyKeys:`複製全部密鑰`,copied:`已複製!`,done:`完成,我已保存密鑰`,activeDesc:`數位驗證器已啟用,正在為您的帳號提供 6 位動態驗證碼保護。`},sessions:{session:`會話`,title:`活躍會話`,device:`裝置`,ip:`IP 位址`,loginTime:`登入時間`,expires:`過期時間`,action:`操作`,current:`目前會話`,revoke:`撤銷`,revokeFailed:`撤銷會話失敗。`,empty:`未找到活躍會話。`,unknownDevice:`未知裝置`,revokeOthers:`撤銷其他會話`,confirmRevokeOthers:`撤銷其他會話`,revokeOthersConfirmText:`確定要撤銷所有其他活躍會話嗎?除當前設備外,其他已登錄設備將立即退出。`},activity:{title:`帳號活動記錄`,action:`事件`,time:`時間`,session:`會話`,ip:`IP 位址`,empty:`暫無活動記錄。`,loadMore:`載入更多`,signup:`註冊`,loginSuccess:`登入成功`,loginFail:`登入失敗`,logout:`登出`,pwChangeSuccess:`密碼已修改`,pwChangeFail:`密碼修改失敗`,totpVerifySuccess:`TOTP 驗證通過`,totpVerifyFail:`TOTP 驗證失敗`,totpSetup:`設定數位驗證器`,totpRemoved:`停用數位驗證器`,recoveryKeyUsed:`使用了恢復密鑰`,sessionRevoked:`會話已撤銷`,reasons:{user_active:`主動登出`,user_revoke:`撤銷會話`,expired:`會話已過期`,geolocation_mismatch:`異地存取限制`,geolocation_missing:`缺少地理位置資訊`,token_reuse:`憑證重複使用(安全警告)`},passkeyRegistered:`新增通行密鑰`,passkeyDeleted:`刪除通行密鑰`,passkeyVerifySuccess:`通行密鑰驗證通過`,passkeyVerifyFail:`通行密鑰驗證失敗`,recoveryKeyRotated:`應急恢復金鑰已輪換`},passkey:{title:`通行密鑰 (Passkey)`,addBtn:`新增通行密鑰`,desc:`使用生物識別(Touch ID / Face ID / Windows Hello)或硬體安全金鑰(YubiKey)進行快捷且防釣魚的多因素認證。`,empty:`尚未新增任何通行密鑰。`,addTitle:`新增通行密鑰`,nameLabel:`通行密鑰名稱`,namePlaceholder:`例如:my_passkey`,promptNotice:`點擊繼續後,瀏覽器將彈出系統提示,引導您完成生物識別或硬體安全金鑰註冊。`,continue:`繼續`,renameTitle:`重命名通行密鑰`,deleteTitle:`刪除通行密鑰`,deleteConfirm:`確定要刪除通行密鑰 "{{name}}" 嗎?刪除後將無法使用該通行密鑰進行多因素認證。`,defaultName:`通行密鑰`,notSupported:`您的瀏覽器或目前環境不支援通行密鑰 (WebAuthn)。`,regFailed:`通行密鑰註冊失敗`,count:`{{count}} 個已設定`,none:`未設定`,created:`新增時間`,lastUsed:`最後使用`,neverUsed:`從未在登入中使用`,updated:`通行密鑰更新成功`,registered:`通行密鑰新增成功`,deleted:`通行密鑰已刪除`,appNameLabel:`網域名稱`,appNameHelper:`通行密鑰將綁定至此網域`,formatTip:`通行密鑰名稱提示:1-30 位字元,只允許字母、數字、下劃線和中劃線`,verifyPrompt:`請使用裝置的生物辨識(人臉、指紋、Windows Hello)或安全金鑰進行身分驗證。`,changePwNotice:`提交修改時將調用通行金鑰 (Passkey) 生物辨識或硬體金鑰核驗身分。`,submitNotice:`提交時將調用通行金鑰 (Passkey) 生物辨識或硬體金鑰核驗身分。`},mfaNone:`無`,resetUserPassword:`重設密碼`,resetPasswordTitle:`重設使用者密碼`,resetPasswordWarning:`重設後,該使用者的所有現有工作階段將立即登出,使用者需使用新密碼重新登入。`,resetPasswordSuccess:`密碼已成功重設,使用者舊登入工作階段已登出。`,confirmReset:`確認重設`,mfa:{title:`多因素驗證 (MFA)`,enabled:`已設定`,notConfigured:`未設定`,desc:`通行金鑰 (Passkey) 與數位驗證器 (TOTP) 均可作為多因素驗證方式,設定任選其一即可保障帳號安全並支援無密碼登入與密碼重設。`,passwordlessTitle:`無密碼登入 (Passwordless Login)`,passwordlessDesc:`啟用後,登入時無需輸入密碼,直接透過通行金鑰 (Passkey) 或數位驗證碼 (TOTP) 完成身分核驗。`,unconfiguredHint:`目前帳號尚未設定任何多因素驗證。設定通行金鑰或數位驗證器後,可啟用無密碼快速登入並在忘記密碼時安全找回帳號。`},recoveryKey:{title:`應急恢復金鑰`,desc:`應急恢復金鑰用於在遺失所有通行金鑰或數字驗證器時重新登入帳戶或重設密碼。恢復金鑰受 KEK 信封加密保護。`,configured:`已設定`,notConfigured:`未設定`,kekProtected:`KEK 加密保護`,kekTooltip:`該恢復金鑰在資料庫中受根金鑰 (KEK) 與資料金鑰 (DEK) 雙層信封加密保護。`,viewBtn:`檢視恢復金鑰`,rotateBtn:`輪換金鑰`,yourKey:`您的 30 位應急恢復金鑰`,securityTip:`請妥善保管此恢復金鑰。擁有此金鑰者可以重新取得您的帳戶存取權限。`,rotateConfirm:`輪換恢復金鑰將使舊金鑰立即失效。確定要繼續嗎?`,confirmRotateBtn:`確認輪換`,viewVerifyTitle:`驗證身分以檢視恢復金鑰`,rotateVerifyTitle:`驗證身分以輪換恢復金鑰`,rotateSuccess:`恢復金鑰輪換成功!請立即妥善備份並儲存新金鑰。`,legacyNotice:`您的恢復金鑰以舊版單向雜湊格式儲存,無法直接解密明文展示。請點擊「輪換金鑰」重新產生。`},verifyIdentity:`安全身分核驗`,verifyIdentityDesc:`為了保護您的帳戶安全,執行此敏感操作前請先驗證您的身分。`,usePasskeyInstead:`使用通行金鑰驗證`,changePasswordWithPasskey:`使用通行金鑰核驗並修改密碼`,enableRegistration:`開放新使用者註冊`},d={item1Title:`Obex 保護性 DNS`,item1Desc:`基於 Cloudflare Workers & D1 的 DNS 解析器,盡力提高速度與安全。`,item2Title:`DoH 隱私保護`,item2Desc:`透過 DNS over HTTPS (RFC 8484) 加密隧道防止劫持並增強隱私。`,item3Title:`全球邊緣網路`,item3Desc:`依托 Cloudflare 龐大的邊缘網路,獲得極速解析與極低延遲體驗。`,item4Title:`精細化過濾`,item4Desc:`全面支援黑白名單、AdGuard 規則以及自訂 DNS 記錄重新導向。`,item5Title:`即時統計分析`,item5Desc:`透過詳細的查詢日誌和綜合統計儀表盤,直观展現網路健康狀況。`,item6Title:`現代 UI 與暗黑模式`,item6Desc:`為工程師和家庭用戶設計的高密度管理面板,基於由 Palantir 開發的 Blueprint UI。`,item7Title:`雲原生基礎架構`,item7Desc:`無伺服器架構確保零維護和私人 DNS 的無限擴充性。`,item8Title:`多配置管理`,item8Desc:`為不同裝置或網路環境創建並管理多個獨立配置。`,item9Title:`多存取點管理`,item9Desc:`為不同裝置配置專屬的 DNS 存取點,實現日誌和統計數據的精细化隔離與分析。`},f={title:`DNS Worker 部署與配置指南`,subtitle:`您的系統實例尚未完全配置。請按照以下步驟完成部署以啟用 DNS Worker。`,dbStatus:`D1 資料庫綁定 (env.DB)`,jwtStatus:`JWT 金鑰 Secrets (env.JWT_SECRET)`,configured:`已配置`,missing:`缺失 / 未配置`,refresh:`重新檢測並重新整理`,methodCli:`CLI 命令行部署`,methodDash:`Cloudflare 控制台部署`,copy:`複製`,copied:`已複製!`,stepDbTitle:`1. 建立與綁定 D1 資料庫`,stepDbDesc:`在 Cloudflare 中建立 D1 資料庫實例,在終端機執行以下命令:`,stepDbCommand1:`wrangler d1 create dns_worker_db`,stepDbDesc2:`複製終端機輸出的配置資訊,並貼到專案根目錄的 wrangler.toml 裡的 [[d1_databases]] 中:`,stepDbCommand2:`[[d1_databases]]
|
|
4
|
-
binding = "DB"
|
|
5
|
-
database_name = "dns_worker_db"
|
|
6
|
-
database_id = "<您的_D1_DATABASE_ID>"
|
|
7
|
-
migrations_dir = "migrations"`,stepDbDashDesc:`1. 登入 Cloudflare 網頁控制台 -> Workers & Pages -> D1 -> 建立資料庫 -> 命名為 'dns_worker_db'。
|
|
8
|
-
2. 進入您的 Worker -> 設定 -> 變數 -> D1 資料庫綁定 -> 新增綁定。
|
|
9
|
-
3. 將綁定名稱設定為 'DB',D1 資料庫選擇 'dns_worker_db',並儲存。
|
|
10
|
-
4. 進入您的 D1 資料庫 -> 控制台,複製並執行 migrations 目錄下的 SQL 遷移腳本以初始化資料庫資料表結構。`,stepJwtTitle:`2. 設定 JWT 金鑰 Secrets`,stepJwtDesc:`系統使用 JWT 金鑰簽署工作階段權杖,請將其設定為 Cloudflare Secrets 金鑰:`,stepJwtCommand1:`wrangler secret put JWT_SECRET`,stepJwtDashDesc:`1. 進入您的 Worker -> 設定 -> 變數 -> 環境變數 -> 新增變數。
|
|
11
|
-
2. 設定名稱為 'JWT_SECRET',選擇類型為 '機密 (Secret)',並在值中輸入一個隨機安全字串(例如 64 位十六位元字元)。
|
|
12
|
-
3. 點擊儲存並部署。`,stepJwtDesc2:`Cloudflare 網頁控制台`,stepJwtCommand2:`https://dash.cloudflare.com/`,stepDeployTitle:`3. 部署並套用遷移`,stepDeployDesc:`執行專案部署命令。該命令會自動編譯前端靜態資源,執行 D1 資料庫遷移結構,並發布至 Cloudflare 遠端:`,stepDeployCommand:`npm run deploy`,stepDeployDashDesc:`如果您已透過 Cloudflare 網頁控制台完成了所有綁定配置,請進入您的 Worker 控制面板的 Deployments (部署) 索引標籤下,點擊“部署”按鈕進行發布上線。`,jwtGeneratorTitle:`安全 JWT_SECRET 產生器`,jwtGeneratorDesc:`使用此加密安全的隨機數產生器產生 64 位元字元的隨機字母數字組合,用於 env.JWT_SECRET。`,regenerate:`重新產生`};var p={common:e,nav:t,theme:n,auth:r,setup:i,rules:a,analytics:o,logs:s,filtering:c,settings:l,account:u,intro:d,deploymentGuide:f};export{u as account,o as analytics,r as auth,e as common,p as default,f as deploymentGuide,c as filtering,d as intro,s as logs,t as nav,a as rules,l as settings,i as setup,n as theme};
|