) Fixes the trapped-modal bug: modals are no longer nested inside backdrop-filter cards, which used to become their containing block. ========================================================================== */ .reader-overlay { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 28px; background: rgba(3, 5, 9, 0.68); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); } .reader-panel { display: flex; flex-direction: column; width: min(960px, 94vw); max-height: 88vh; background: var(--bg-modal); border: 1px solid var(--border-medium); border-radius: 22px; box-shadow: var(--shadow-elevation); overflow: hidden; animation: modalScaleIn 0.34s cubic-bezier(0.16, 1, 0.3, 1) both; } .reader-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 20px; border-bottom: 1px solid var(--border-subtle); background: var(--badge-bg); } .reader-head-left { display: flex; align-items: center; gap: 9px; } .reader-kicker { font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: var(--text-main); } .reader-count { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; color: var(--accent-primary); background: rgba(var(--accent-rgb), 0.12); border: 1px solid rgba(var(--accent-rgb), 0.28); } .reader-close { width: 32px; height: 32px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; color: var(--text-muted); background: var(--bg-surface); border: 1px solid var(--border-subtle); transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1); } .reader-close:hover { color: var(--text-main); border-color: var(--border-medium); transform: rotate(90deg); } .reader-tabs { display: flex; gap: 6px; padding: 10px 16px; overflow-x: auto; border-bottom: 1px solid var(--border-subtle); scrollbar-width: none; } .reader-tabs::-webkit-scrollbar { display: none; } .reader-tab { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 10px; font-size: 12.5px; white-space: nowrap; color: var(--text-muted); border: 1px solid transparent; transition: all 0.2s ease; } .reader-tab:hover { color: var(--text-main); background: var(--badge-bg); } .reader-tab.is-active { color: var(--accent-primary); background: var(--seg-indicator-bg); border-color: var(--seg-indicator-border); font-weight: 650; } .reader-pin { font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 5px; color: var(--accent-amber); background: rgba(245, 158, 11, 0.12); border: 1px solid rgba(245, 158, 11, 0.28); } .reader-tab-text { max-width: 250px; overflow: hidden; text-overflow: ellipsis; } .reader-body { flex: 1; overflow-y: auto; padding: 34px 48px 44px; } .reader-article { max-width: 720px; margin: 0 auto; } .reader-meta { display: flex; align-items: center; justify-content: space-between; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; color: var(--text-dim); margin-bottom: 12px; } .reader-title { font-size: 25px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.34; color: var(--text-main); margin: 0 0 22px; padding-bottom: 18px; border-bottom: 1px solid var(--border-subtle); } .reader-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; border-top: 1px solid var(--border-subtle); background: var(--bg-surface); } .reader-hint { font-size: 11.5px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text-dim); } .reader-pop-enter-active, .reader-pop-leave-active { transition: opacity 0.24s ease; } .reader-pop-enter-from, .reader-pop-leave-to { opacity: 0; } @media (max-width: 768px) { .reader-overlay { padding: 0; } .reader-panel { width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; border: none; } .reader-body { padding: 22px 20px 30px; } .reader-title { font-size: 20px; } .reader-tab-text { max-width: 150px; } .reader-hint { display: none; } } /* ========================================================================== 12. LANDING PAGE SECTIONS ========================================================================== */ .land-section { position: relative; z-index: 10; max-width: 1440px; margin: 0 auto; padding: 96px 24px; } .land-section--tight { padding: 68px 24px; } .land-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: 0.02em; color: var(--accent-primary); background: var(--badge-bg); border: 1px solid var(--border-subtle); } .land-h2 { font-size: clamp(26px, 3.2vw, 40px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; color: var(--text-main); margin: 18px 0 12px; } .land-lede { font-size: 15px; line-height: 1.72; color: var(--text-muted); max-width: 62ch; } .land-head { margin-bottom: 44px; } /* ========================================================================== HERO: reserved, theme-configurable slots .hero-site-title <- 站点标题 (theme config: site_title) .hero-site-subtitle <- 站点副标题 (theme config: site_subtitle) ========================================================================== */ .hero-site-title { font-size: clamp(30px, 4.4vw, 58px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.08; color: var(--text-main); margin: 22px 0 10px; } .hero-site-subtitle { font-size: clamp(13px, 1.5vw, 16px); font-weight: 600; letter-spacing: 0.02em; color: var(--accent-primary); margin-bottom: 18px; } .hero-tagline { max-width: 52ch; font-size: 15px; line-height: 1.72; color: var(--text-muted); } /* Deck brand slots also read from theme config */ .deck-brand-title { display: block; font-size: 15px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; color: var(--text-main); max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .deck-brand-sub { display: block; font-size: 10px; font-family: var(--font-mono); letter-spacing: 0.14em; color: var(--text-dim); max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Metric strip */ .metric-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border-radius: 18px; background: var(--bg-card); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid var(--border-subtle); box-shadow: var(--shadow-card); } .metric-cell { padding: 26px 24px; background: transparent; text-align: left; } .metric-cell + .metric-cell { box-shadow: inset 1px 0 0 var(--border-subtle); } .metric-value { font-family: var(--font-mono); font-size: 27px; font-weight: 700; letter-spacing: -0.03em; color: var(--text-main); } .metric-label { margin-top: 5px; font-size: 12.5px; color: var(--text-dim); } /* Bento grid — 5 content cells, asymmetric rhythm */ .bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; } .bento-cell { padding: 28px; display: flex; flex-direction: column; } .bento-cell--wide { grid-column: span 4; } .bento-cell--tall { grid-column: span 2; grid-row: span 2; } .bento-cell--half { grid-column: span 3; } .bento-cell--third { grid-column: span 2; } .bento-cell--full { grid-column: span 6; } /* Client compatibility chips */ .client-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 11px; font-size: 12.5px; font-weight: 500; color: var(--text-muted); background: var(--badge-bg); border: 1px solid var(--border-subtle); transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease, border-color 0.2s ease; } .client-chip:hover { transform: translateY(-2px); color: var(--text-main); border-color: var(--border-medium); } /* Mini stat inside the tall bento cell */ .topo-row { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; font-size: 12.5px; color: var(--text-muted); } .topo-row + .topo-row { box-shadow: inset 0 1px 0 var(--border-subtle); } .topo-row strong { color: var(--text-main); font-family: var(--font-mono); font-weight: 650; } .bento-icon { width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: var(--accent-primary); background: rgba(var(--accent-rgb), 0.1); border: 1px solid rgba(var(--accent-rgb), 0.22); margin-bottom: 16px; } .bento-title { font-size: 16.5px; font-weight: 700; letter-spacing: -0.02em; color: var(--text-main); margin-bottom: 8px; } .bento-copy { font-size: 13.5px; line-height: 1.72; color: var(--text-muted); } /* Mini terminal inside bento */ .bento-term { margin-top: 18px; padding: 14px 16px; border-radius: 16px; font-family: var(--font-mono); font-size: 11.5px; line-height: 1.9; color: var(--text-muted); background: rgba(6, 9, 16, 0.55); border: 1px solid var(--border-subtle); } html.light .bento-term { background: rgba(15, 23, 42, 0.05); } /* Node network */ .node-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; } .node-chip { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-radius: 16px; background: var(--bg-card); border: 1px solid var(--border-subtle); transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease; } .node-chip:hover { transform: translateY(-2px); border-color: var(--border-medium); } .node-name { font-size: 13.5px; font-weight: 650; color: var(--text-main); } .node-sub { font-size: 11px; color: var(--text-dim); font-family: var(--font-mono); } .node-status { font-family: var(--font-mono); font-size: 12px; font-weight: 700; white-space: nowrap; color: var(--text-muted); } .node-status--online { color: var(--accent-emerald); } .node-status--offline { color: var(--accent-rose); } .node-status--unknown { color: var(--text-dim); } /* Pricing preview */ .price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } .price-cut { font-family: var(--font-mono); font-size: 30px; font-weight: 750; letter-spacing: -0.03em; color: var(--text-main); } .price-feat { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; color: var(--text-muted); line-height: 1.6; } .price-feat svg { flex-shrink: 0; margin-top: 2px; color: var(--accent-emerald); } /* Steps */ .step-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } .step-num { font-family: var(--font-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--accent-primary); } /* FAQ */ .faq-item { border-radius: 16px; overflow: hidden; background: var(--bg-card); border: 1px solid var(--border-subtle); transition: border-color 0.2s ease; } .faq-item:hover { border-color: var(--border-medium); } .faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 22px; font-size: 14px; font-weight: 600; color: var(--text-main); text-align: left; } .faq-caret { flex-shrink: 0; color: var(--text-dim); transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1); } .faq-item.is-open .faq-caret { transform: rotate(180deg); color: var(--accent-primary); } .faq-a { padding: 0 22px 19px; font-size: 13.5px; line-height: 1.78; color: var(--text-muted); animation: riseIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) both; } /* Final CTA */ .cta-band { position: relative; overflow: hidden; border-radius: 22px; padding: 60px 44px; text-align: center; background: radial-gradient(120% 160% at 15% 0%, rgba(var(--accent-rgb), 0.16), transparent 58%), radial-gradient(120% 160% at 85% 100%, rgba(99, 102, 241, 0.14), transparent 58%), var(--bg-card); border: 1px solid var(--border-subtle); box-shadow: var(--shadow-card); } /* Landing footer */ .land-footer { position: relative; z-index: 10; border-top: 1px solid var(--border-subtle); background: var(--badge-bg); } .land-footer-inner { max-width: 1440px; margin: 0 auto; padding: 44px 24px 34px; display: grid; grid-template-columns: 1.6fr repeat(3, minmax(0, 1fr)); gap: 30px; } .land-footer h4 { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; color: var(--text-dim); margin-bottom: 12px; } .land-footer a { display: block; font-size: 13px; color: var(--text-muted); padding: 4px 0; } .land-footer a:hover { color: var(--accent-primary); } @media (max-width: 1023px) { .land-section { padding: 68px 18px; } .metric-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* Every base span must be reset here, including --full: leaving span 6 in a 2-column grid creates implicit tracks and stretches the grid. */ .bento-cell--wide, .bento-cell--tall, .bento-cell--half, .bento-cell--third, .bento-cell--full { grid-column: span 2; grid-row: auto; } .price-grid, .step-row { grid-template-columns: 1fr; } .land-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } } @media (max-width: 640px) { .metric-strip { grid-template-columns: 1fr; } .bento { grid-template-columns: 1fr; gap: 14px; } .bento-cell--wide, .bento-cell--tall, .bento-cell--half, .bento-cell--third, .bento-cell--full { grid-column: span 1; } .bento-cell { padding: 20px; } .bento-title { font-size: 15.5px; } .bento-copy { font-size: 13px; } .client-chip { padding: 7px 12px; font-size: 12px; } .land-footer-inner { grid-template-columns: 1fr; } .cta-band { padding: 40px 22px; } } /* --- 13. Responsive --- */ @media (max-width: 1023px) { .deck-inner { height: 60px; padding: 0 16px; gap: 12px; } .deck-inner > .segmented-nav { display: none; } .deck-inner > .deck-brand { min-width: 0; flex-shrink: 1; } .deck-brand > span:last-child { min-width: 0; } .deck-brand-title, .deck-brand-sub { max-width: 100%; } .deck-main { padding: 20px 16px 36px; } .deck-brand-sub { display: none; } } @media (max-width: 640px) { .segmented-item { padding: 7px 10px; font-size: 12.5px; } .segmented-item span.seg-label { display: none; } .deck-balance { display: none; } .landing-deck-inner { display: grid; grid-template-columns: minmax(0, 1fr); height: auto; min-height: 60px; gap: 10px; padding: 10px 16px; } .landing-deck-inner .deck-brand { min-width: 0; max-width: 100%; } .landing-deck-inner .deck-actions { width: 100%; min-width: 0; margin-left: 0; justify-content: flex-start; gap: 8px; } .landing-deck-inner .theme-toggle-btn, .landing-deck-inner .deck-actions > button, .landing-deck-inner .deck-actions > a { min-height: 44px; } .landing-deck-inner .theme-toggle-btn, .landing-deck-inner .deck-actions > button:not(.btn-geek-primary):not(.btn-geek-secondary) { min-width: 44px; } .landing-deck-inner .deck-actions > .btn-geek-primary, .landing-deck-inner .deck-actions > .btn-geek-secondary { padding: 9px 12px; white-space: nowrap; } .land-h2--capabilities { overflow-wrap: anywhere; } .capabilities-break { display: none; } } /* ========================================================================== Nexus Markdown Typography Styling (Light / Dark Adaptive) ========================================================================== */ .markdown-body { color: var(--text-main); font-family: inherit; font-size: 14.5px; line-height: 1.75; word-wrap: break-word; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: var(--text-main); font-weight: 700; margin-top: 24px; margin-bottom: 12px; line-height: 1.35; letter-spacing: -0.01em; } .markdown-body h1 { font-size: 22px; padding-bottom: 8px; border-bottom: 1px solid var(--border-subtle); } .markdown-body h2 { font-size: 18px; padding-bottom: 6px; border-bottom: 1px solid var(--border-subtle); } .markdown-body h3 { font-size: 16px; } .markdown-body p { margin-top: 0; margin-bottom: 14px; } .markdown-body a { color: var(--accent-primary) !important; text-decoration: none !important; font-weight: 500; border-bottom: 1px dashed var(--accent-primary); transition: all 0.2s ease; } .markdown-body a:hover { opacity: 0.85; border-bottom-style: solid; } .markdown-body strong { color: var(--text-main); font-weight: 600; } .markdown-body ul, .markdown-body ol { margin-top: 0; margin-bottom: 14px; padding-left: 22px; } .markdown-body li { margin-bottom: 6px; } .markdown-body blockquote { margin: 16px 0; padding: 12px 18px; background: var(--badge-bg); border-left: 3px solid var(--accent-primary); border-radius: 0 10px 10px 0; color: var(--text-muted); font-size: 14px; } .markdown-body blockquote p:last-child { margin-bottom: 0; } .markdown-body code { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; background: var(--badge-bg); color: var(--accent-primary); padding: 2px 6px; border-radius: 5px; border: 1px solid var(--border-subtle); } .markdown-body pre { margin: 16px 0; background: #090c13 !important; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 16px; overflow-x: auto; position: relative; box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4); } .markdown-body pre code { background: transparent !important; border: 0 !important; padding: 0 !important; color: #e2e8f0 !important; font-size: 13px; line-height: 1.6; } .markdown-body table { width: 100%; margin: 16px 0; border-collapse: separate; border-spacing: 0; border: 1px solid var(--border-subtle); border-radius: 10px; overflow: hidden; } .markdown-body th { background: var(--badge-bg); color: var(--text-main); font-weight: 600; padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--border-subtle); font-size: 13px; } .markdown-body td { padding: 10px 14px; border-bottom: 1px solid var(--border-subtle); color: var(--text-muted); font-size: 13px; } .markdown-body tr:last-child td { border-bottom: none; } 机场不能用了怎么办?订阅失效、客户端报错与连接失败排查指南) Fixes the trapped-modal bug: modals are no longer nested inside backdrop-filter cards, which used to become their containing block. ========================================================================== */ .reader-overlay { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 28px; background: rgba(3, 5, 9, 0.68); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); } .reader-panel { display: flex; flex-direction: column; width: min(960px, 94vw); max-height: 88vh; background: var(--bg-modal); border: 1px solid var(--border-medium); border-radius: 22px; box-shadow: var(--shadow-elevation); overflow: hidden; animation: modalScaleIn 0.34s cubic-bezier(0.16, 1, 0.3, 1) both; } .reader-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 20px; border-bottom: 1px solid var(--border-subtle); background: var(--badge-bg); } .reader-head-left { display: flex; align-items: center; gap: 9px; } .reader-kicker { font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: var(--text-main); } .reader-count { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; color: var(--accent-primary); background: rgba(var(--accent-rgb), 0.12); border: 1px solid rgba(var(--accent-rgb), 0.28); } .reader-close { width: 32px; height: 32px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; color: var(--text-muted); background: var(--bg-surface); border: 1px solid var(--border-subtle); transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1); } .reader-close:hover { color: var(--text-main); border-color: var(--border-medium); transform: rotate(90deg); } .reader-tabs { display: flex; gap: 6px; padding: 10px 16px; overflow-x: auto; border-bottom: 1px solid var(--border-subtle); scrollbar-width: none; } .reader-tabs::-webkit-scrollbar { display: none; } .reader-tab { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 10px; font-size: 12.5px; white-space: nowrap; color: var(--text-muted); border: 1px solid transparent; transition: all 0.2s ease; } .reader-tab:hover { color: var(--text-main); background: var(--badge-bg); } .reader-tab.is-active { color: var(--accent-primary); background: var(--seg-indicator-bg); border-color: var(--seg-indicator-border); font-weight: 650; } .reader-pin { font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 5px; color: var(--accent-amber); background: rgba(245, 158, 11, 0.12); border: 1px solid rgba(245, 158, 11, 0.28); } .reader-tab-text { max-width: 250px; overflow: hidden; text-overflow: ellipsis; } .reader-body { flex: 1; overflow-y: auto; padding: 34px 48px 44px; } .reader-article { max-width: 720px; margin: 0 auto; } .reader-meta { display: flex; align-items: center; justify-content: space-between; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; color: var(--text-dim); margin-bottom: 12px; } .reader-title { font-size: 25px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.34; color: var(--text-main); margin: 0 0 22px; padding-bottom: 18px; border-bottom: 1px solid var(--border-subtle); } .reader-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; border-top: 1px solid var(--border-subtle); background: var(--bg-surface); } .reader-hint { font-size: 11.5px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text-dim); } .reader-pop-enter-active, .reader-pop-leave-active { transition: opacity 0.24s ease; } .reader-pop-enter-from, .reader-pop-leave-to { opacity: 0; } @media (max-width: 768px) { .reader-overlay { padding: 0; } .reader-panel { width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; border: none; } .reader-body { padding: 22px 20px 30px; } .reader-title { font-size: 20px; } .reader-tab-text { max-width: 150px; } .reader-hint { display: none; } } /* ========================================================================== 12. LANDING PAGE SECTIONS ========================================================================== */ .land-section { position: relative; z-index: 10; max-width: 1440px; margin: 0 auto; padding: 96px 24px; } .land-section--tight { padding: 68px 24px; } .land-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: 0.02em; color: var(--accent-primary); background: var(--badge-bg); border: 1px solid var(--border-subtle); } .land-h2 { font-size: clamp(26px, 3.2vw, 40px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; color: var(--text-main); margin: 18px 0 12px; } .land-lede { font-size: 15px; line-height: 1.72; color: var(--text-muted); max-width: 62ch; } .land-head { margin-bottom: 44px; } /* ========================================================================== HERO: reserved, theme-configurable slots .hero-site-title <- 站点标题 (theme config: site_title) .hero-site-subtitle <- 站点副标题 (theme config: site_subtitle) ========================================================================== */ .hero-site-title { font-size: clamp(30px, 4.4vw, 58px); font-weight: 800; letter-spacing: -0.035em; line-height: 1.08; color: var(--text-main); margin: 22px 0 10px; } .hero-site-subtitle { font-size: clamp(13px, 1.5vw, 16px); font-weight: 600; letter-spacing: 0.02em; color: var(--accent-primary); margin-bottom: 18px; } .hero-tagline { max-width: 52ch; font-size: 15px; line-height: 1.72; color: var(--text-muted); } /* Deck brand slots also read from theme config */ .deck-brand-title { display: block; font-size: 15px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; color: var(--text-main); max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .deck-brand-sub { display: block; font-size: 10px; font-family: var(--font-mono); letter-spacing: 0.14em; color: var(--text-dim); max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Metric strip */ .metric-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border-radius: 18px; background: var(--bg-card); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid var(--border-subtle); box-shadow: var(--shadow-card); } .metric-cell { padding: 26px 24px; background: transparent; text-align: left; } .metric-cell + .metric-cell { box-shadow: inset 1px 0 0 var(--border-subtle); } .metric-value { font-family: var(--font-mono); font-size: 27px; font-weight: 700; letter-spacing: -0.03em; color: var(--text-main); } .metric-label { margin-top: 5px; font-size: 12.5px; color: var(--text-dim); } /* Bento grid — 5 content cells, asymmetric rhythm */ .bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; } .bento-cell { padding: 28px; display: flex; flex-direction: column; } .bento-cell--wide { grid-column: span 4; } .bento-cell--tall { grid-column: span 2; grid-row: span 2; } .bento-cell--half { grid-column: span 3; } .bento-cell--third { grid-column: span 2; } .bento-cell--full { grid-column: span 6; } /* Client compatibility chips */ .client-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 11px; font-size: 12.5px; font-weight: 500; color: var(--text-muted); background: var(--badge-bg); border: 1px solid var(--border-subtle); transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease, border-color 0.2s ease; } .client-chip:hover { transform: translateY(-2px); color: var(--text-main); border-color: var(--border-medium); } /* Mini stat inside the tall bento cell */ .topo-row { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; font-size: 12.5px; color: var(--text-muted); } .topo-row + .topo-row { box-shadow: inset 0 1px 0 var(--border-subtle); } .topo-row strong { color: var(--text-main); font-family: var(--font-mono); font-weight: 650; } .bento-icon { width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: var(--accent-primary); background: rgba(var(--accent-rgb), 0.1); border: 1px solid rgba(var(--accent-rgb), 0.22); margin-bottom: 16px; } .bento-title { font-size: 16.5px; font-weight: 700; letter-spacing: -0.02em; color: var(--text-main); margin-bottom: 8px; } .bento-copy { font-size: 13.5px; line-height: 1.72; color: var(--text-muted); } /* Mini terminal inside bento */ .bento-term { margin-top: 18px; padding: 14px 16px; border-radius: 16px; font-family: var(--font-mono); font-size: 11.5px; line-height: 1.9; color: var(--text-muted); background: rgba(6, 9, 16, 0.55); border: 1px solid var(--border-subtle); } html.light .bento-term { background: rgba(15, 23, 42, 0.05); } /* Node network */ .node-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; } .node-chip { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-radius: 16px; background: var(--bg-card); border: 1px solid var(--border-subtle); transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease; } .node-chip:hover { transform: translateY(-2px); border-color: var(--border-medium); } .node-name { font-size: 13.5px; font-weight: 650; color: var(--text-main); } .node-sub { font-size: 11px; color: var(--text-dim); font-family: var(--font-mono); } .node-status { font-family: var(--font-mono); font-size: 12px; font-weight: 700; white-space: nowrap; color: var(--text-muted); } .node-status--online { color: var(--accent-emerald); } .node-status--offline { color: var(--accent-rose); } .node-status--unknown { color: var(--text-dim); } /* Pricing preview */ .price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } .price-cut { font-family: var(--font-mono); font-size: 30px; font-weight: 750; letter-spacing: -0.03em; color: var(--text-main); } .price-feat { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; color: var(--text-muted); line-height: 1.6; } .price-feat svg { flex-shrink: 0; margin-top: 2px; color: var(--accent-emerald); } /* Steps */ .step-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } .step-num { font-family: var(--font-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--accent-primary); } /* FAQ */ .faq-item { border-radius: 16px; overflow: hidden; background: var(--bg-card); border: 1px solid var(--border-subtle); transition: border-color 0.2s ease; } .faq-item:hover { border-color: var(--border-medium); } .faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 22px; font-size: 14px; font-weight: 600; color: var(--text-main); text-align: left; } .faq-caret { flex-shrink: 0; color: var(--text-dim); transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1); } .faq-item.is-open .faq-caret { transform: rotate(180deg); color: var(--accent-primary); } .faq-a { padding: 0 22px 19px; font-size: 13.5px; line-height: 1.78; color: var(--text-muted); animation: riseIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) both; } /* Final CTA */ .cta-band { position: relative; overflow: hidden; border-radius: 22px; padding: 60px 44px; text-align: center; background: radial-gradient(120% 160% at 15% 0%, rgba(var(--accent-rgb), 0.16), transparent 58%), radial-gradient(120% 160% at 85% 100%, rgba(99, 102, 241, 0.14), transparent 58%), var(--bg-card); border: 1px solid var(--border-subtle); box-shadow: var(--shadow-card); } /* Landing footer */ .land-footer { position: relative; z-index: 10; border-top: 1px solid var(--border-subtle); background: var(--badge-bg); } .land-footer-inner { max-width: 1440px; margin: 0 auto; padding: 44px 24px 34px; display: grid; grid-template-columns: 1.6fr repeat(3, minmax(0, 1fr)); gap: 30px; } .land-footer h4 { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; color: var(--text-dim); margin-bottom: 12px; } .land-footer a { display: block; font-size: 13px; color: var(--text-muted); padding: 4px 0; } .land-footer a:hover { color: var(--accent-primary); } @media (max-width: 1023px) { .land-section { padding: 68px 18px; } .metric-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* Every base span must be reset here, including --full: leaving span 6 in a 2-column grid creates implicit tracks and stretches the grid. */ .bento-cell--wide, .bento-cell--tall, .bento-cell--half, .bento-cell--third, .bento-cell--full { grid-column: span 2; grid-row: auto; } .price-grid, .step-row { grid-template-columns: 1fr; } .land-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } } @media (max-width: 640px) { .metric-strip { grid-template-columns: 1fr; } .bento { grid-template-columns: 1fr; gap: 14px; } .bento-cell--wide, .bento-cell--tall, .bento-cell--half, .bento-cell--third, .bento-cell--full { grid-column: span 1; } .bento-cell { padding: 20px; } .bento-title { font-size: 15.5px; } .bento-copy { font-size: 13px; } .client-chip { padding: 7px 12px; font-size: 12px; } .land-footer-inner { grid-template-columns: 1fr; } .cta-band { padding: 40px 22px; } } /* --- 13. Responsive --- */ @media (max-width: 1023px) { .deck-inner { height: 60px; padding: 0 16px; gap: 12px; } .deck-inner > .segmented-nav { display: none; } .deck-inner > .deck-brand { min-width: 0; flex-shrink: 1; } .deck-brand > span:last-child { min-width: 0; } .deck-brand-title, .deck-brand-sub { max-width: 100%; } .deck-main { padding: 20px 16px 36px; } .deck-brand-sub { display: none; } } @media (max-width: 640px) { .segmented-item { padding: 7px 10px; font-size: 12.5px; } .segmented-item span.seg-label { display: none; } .deck-balance { display: none; } .landing-deck-inner { display: grid; grid-template-columns: minmax(0, 1fr); height: auto; min-height: 60px; gap: 10px; padding: 10px 16px; } .landing-deck-inner .deck-brand { min-width: 0; max-width: 100%; } .landing-deck-inner .deck-actions { width: 100%; min-width: 0; margin-left: 0; justify-content: flex-start; gap: 8px; } .landing-deck-inner .theme-toggle-btn, .landing-deck-inner .deck-actions > button, .landing-deck-inner .deck-actions > a { min-height: 44px; } .landing-deck-inner .theme-toggle-btn, .landing-deck-inner .deck-actions > button:not(.btn-geek-primary):not(.btn-geek-secondary) { min-width: 44px; } .landing-deck-inner .deck-actions > .btn-geek-primary, .landing-deck-inner .deck-actions > .btn-geek-secondary { padding: 9px 12px; white-space: nowrap; } .land-h2--capabilities { overflow-wrap: anywhere; } .capabilities-break { display: none; } } /* ========================================================================== Nexus Markdown Typography Styling (Light / Dark Adaptive) ========================================================================== */ .markdown-body { color: var(--text-main); font-family: inherit; font-size: 14.5px; line-height: 1.75; word-wrap: break-word; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: var(--text-main); font-weight: 700; margin-top: 24px; margin-bottom: 12px; line-height: 1.35; letter-spacing: -0.01em; } .markdown-body h1 { font-size: 22px; padding-bottom: 8px; border-bottom: 1px solid var(--border-subtle); } .markdown-body h2 { font-size: 18px; padding-bottom: 6px; border-bottom: 1px solid var(--border-subtle); } .markdown-body h3 { font-size: 16px; } .markdown-body p { margin-top: 0; margin-bottom: 14px; } .markdown-body a { color: var(--accent-primary) !important; text-decoration: none !important; font-weight: 500; border-bottom: 1px dashed var(--accent-primary); transition: all 0.2s ease; } .markdown-body a:hover { opacity: 0.85; border-bottom-style: solid; } .markdown-body strong { color: var(--text-main); font-weight: 600; } .markdown-body ul, .markdown-body ol { margin-top: 0; margin-bottom: 14px; padding-left: 22px; } .markdown-body li { margin-bottom: 6px; } .markdown-body blockquote { margin: 16px 0; padding: 12px 18px; background: var(--badge-bg); border-left: 3px solid var(--accent-primary); border-radius: 0 10px 10px 0; color: var(--text-muted); font-size: 14px; } .markdown-body blockquote p:last-child { margin-bottom: 0; } .markdown-body code { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; background: var(--badge-bg); color: var(--accent-primary); padding: 2px 6px; border-radius: 5px; border: 1px solid var(--border-subtle); } .markdown-body pre { margin: 16px 0; background: #090c13 !important; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 16px; overflow-x: auto; position: relative; box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4); } .markdown-body pre code { background: transparent !important; border: 0 !important; padding: 0 !important; color: #e2e8f0 !important; font-size: 13px; line-height: 1.6; } .markdown-body table { width: 100%; margin: 16px 0; border-collapse: separate; border-spacing: 0; border: 1px solid var(--border-subtle); border-radius: 10px; overflow: hidden; } .markdown-body th { background: var(--badge-bg); color: var(--text-main); font-weight: 600; padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--border-subtle); font-size: 13px; } .markdown-body td { padding: 10px 14px; border-bottom: 1px solid var(--border-subtle); color: var(--text-muted); font-size: 13px; } .markdown-body tr:last-child td { border-bottom: none; } v2rayNG 2.3.11 安装后配置检查与常见问题排查
← 返回 Sisc Link 使用指南与常见问题整理 首页

Sisc Link Clash 配置教程:订阅导入、激活与连接验证

更新于 2026-10-23 · sisc.website

简答:Sisc Link 的具体订阅入口和链接格式目前未核实,不能把通用 Clash 步骤当成品牌专属教程。拿到订阅地址后,按“核对来源—导入—更新—激活—选节点—开启代理—验证”的顺序操作;导入成功不等于已经生效。

定义:Clash 配置 Sisc Link,是把服务方提供的远程订阅地址导入兼容 Clash 内核的客户端,再激活配置、选择节点并验证代理流量是否按预期转发。

先看这张速查表:导入成功不等于代理已经生效

目前没有检索到可确认的 Sisc Link 官方 Clash 配置教程,因此下表只说明通用 Clash 或 mihomo 客户端的判断方法。Sisc Link 后台的订阅入口名称、链接格式、套餐状态和可用节点数量均应以你看到的服务页面为准;无法核实的内容不要自行补全。

检查环节应看到的结果没有达到时怎么判断
订阅地址复制到浏览器或客户端后能返回配置内容返回 404、403、空白或超时,优先检查地址是否完整、是否过期、是否需要登录
配置列表远程配置出现在 Profiles 或配置页面只有下载记录但没有当前配置,说明可能尚未激活
节点列表出现代理节点或策略组节点为空通常与格式不兼容、订阅失效或客户端内核不兼容有关
代理开关系统代理或 TUN 已按需要开启只导入配置但未开启代理,浏览器和其他应用不会自动使用
访问验证测试页面可访问,控制面板能看到连接或规则命中只看节点延迟不能证明实际访问已经成功

mihomo 官方文档将运行模式分为 rule、global 和 direct:rule 按规则匹配,global 需要在全局策略组中选择代理,direct 为全局直连。查看 mihomo 通用配置文档。

准备工作:先核对订阅来源和客户端类型

配置前准备三项:一是你从 Sisc Link 账户页面复制的订阅地址;二是与系统匹配的 Clash 类客户端;三是客户端能够使用的本地权限。本文不提供未经核实的品牌后台菜单路径,也不把某个第三方下载页称为 Sisc Link 官方入口。

  1. 核对订阅地址。从你已确认的服务入口重新复制,避免把登录页、单节点链接或普通分享链接误当成 Clash 订阅。具体格式以服务页面的说明和客户端提示为准。
  2. 核对客户端。桌面端可以选择支持 mihomo 内核的 Clash Verge Rev 等客户端;该项目公开说明支持 Windows、macOS 和 Linux,并提供配置文件管理、系统代理和 TUN 模式。查看 Clash Verge Rev 项目说明。
  3. 不要公开订阅地址。订阅链接常带有个人识别参数。Clash Verge Rev 的隐私说明也提醒,配置文件可能保存订阅地址、节点地址、端口、密码和 UUID。查看其配置与隐私说明。
  4. 先关闭旧配置的干扰。如果客户端已有多个远程配置,暂时只保留需要测试的配置,避免选错当前配置或误把旧节点当成新订阅。

如果客户端只支持本地 YAML 文件,而你拿到的是远程链接,不要直接把链接后缀改成 YAML。先确认客户端是否支持远程订阅,或者按照服务页面提供的客户端格式重新复制。

Windows、macOS、Android、iOS 的导入与激活步骤

不同客户端的按钮名称会变化,以下按“功能位置”说明。桌面端的配置页面通常支持远程订阅导入;移动端的入口以当前应用内提示为准,不要根据其他平台截图臆测。

Windows、macOS 和 Linux 桌面端

  1. 打开客户端的 Profiles、配置或订阅页面。
  2. 选择远程订阅导入,把订阅地址粘贴到 URL 输入框。
  3. 保存或下载配置,等待客户端完成拉取。
  4. 在配置列表中点击该配置,使其成为当前配置;如果界面分别提供“下载”和“启用”,必须执行两步。
  5. 进入代理组或节点页面,确认至少出现一个节点或策略组。
  6. 先开启系统代理进行验证;只有需要接管不遵守系统代理的应用时,再考虑 TUN。

Clash Verge Rev 的文档说明,远程订阅可以通过订阅链接导入、订阅链接配置和 URL Scheme 等方式加入;如果导入时出现连接错误,应尝试另一种导入方式。查看远程订阅导入说明。

Android

  1. 安装能够识别 Clash 或 mihomo 配置的客户端,并确认应用支持远程订阅。
  2. 在 Profiles、订阅或配置页面粘贴地址,执行下载或更新。
  3. 返回配置列表,手动点选当前配置。
  4. 启动应用内 VPN 或 TUN 权限请求;首次启用通常需要系统确认。
  5. 先用浏览器测试,再逐个检查需要代理的应用。

iOS

  1. 使用支持 Clash 格式或兼容订阅格式的客户端。
  2. 在订阅管理页添加地址并更新配置。
  3. 选中当前配置后,启动系统 VPN 配置。
  4. 若系统提示添加 VPN 配置或允许网络扩展,只有在确认客户端来源和配置内容后再授权。

Android 和 iOS 的具体按钮、权限名称及支持格式未统一,无法核实的界面路径应以应用内提示为准。若移动端提示格式错误,优先回到服务页面重新复制适合该客户端的链接,而不是反复修改地址。

规则、全局、直连和 TUN 应该怎么选

首次配置建议先使用规则模式和系统代理,确认基础链路正常后再决定是否启用 TUN。这样可以把“订阅问题”“节点问题”和“系统接管问题”分开,排查时一次只改变一个变量。

模式或功能适用场景注意事项
规则模式希望不同域名按配置文件规则分流必须检查规则命中结果;规则从上到下匹配,前面的规则优先
全局模式需要把客户端支持的流量统一交给当前代理组要在全局策略组中选择节点或策略组
直连模式测试本地网络、服务方订阅地址或基线访问直连时不能据此判断代理节点是否可用
系统代理浏览器等遵守系统代理设置的应用不一定覆盖所有应用,关闭后可做基线对照
TUN需要接管不遵守系统代理的应用或更底层流量通常需要系统权限;失败时先关闭 TUN,回到系统代理排查

mihomo 的规则文档说明,规则按从上到下的顺序匹配;控制面板中的规则信息可以帮助判断请求命中了哪条规则。查看 mihomo 路由规则说明。

启用 TUN 时不要直接修改陌生配置文件。若客户端界面提供协议栈选项,只使用当前版本明确支持的值,并以客户端设置页为准;遇到权限、网卡或防火墙错误,先关闭 TUN,确认系统代理能否正常工作。

配置生效验证:按五项结果逐层确认

不要只看“订阅已更新”或“节点有延迟”。下面的验证顺序可以定位问题所在,且每一步只检查一个环节。

  1. 确认核心版本。如果客户端提供 external-controller,可以用 API 查询版本;入口以当前版本界面为准。端口不要假设固定值,以客户端设置页为准。
curl -H "Authorization: Bearer <你的 Secret>" http://127.0.0.1:9090/version

预期结果是返回包含 version 的 JSON。若连接失败,可能是控制器未开启、端口不同、Secret 不正确,或客户端没有使用 mihomo 内核。

  1. 确认运行配置。查询当前模式和 TUN 状态,判断界面开关是否真正写入运行配置。
curl -H "Authorization: Bearer <你的 Secret>" http://127.0.0.1:9090/configs
  1. 确认节点和策略组。检查是否存在节点、当前策略组选择了什么,以及节点是否显示 alive。
curl -H "Authorization: Bearer <你的 Secret>" http://127.0.0.1:9090/proxies
  1. 确认规则命中。打开客户端连接或规则页面,访问一个需要测试的域名,观察连接记录中的 rule 和 rulePayload。看到连接记录但策略组不符合预期,说明重点应转向规则,而不是继续更换节点。
  2. 确认实际访问。在同一浏览器中先关闭代理做一次基线,再开启系统代理或 TUN 做一次对照。两次测试只改变代理开关,避免同时更换节点、DNS 和模式。mihomo API 还提供连接、规则和代理信息接口,可用于辅助确认。查看 mihomo API 文档。

判断标准是:配置已激活、节点或策略组可用、代理开关已开启、连接记录出现、规则目标符合预期。出口地址变化不是唯一标准;如果规则显示直连,出口不变化可能是配置本来就这样,而不是节点一定失效。

订阅失效、节点为空和连接超时怎么排查

建议按错误现象分组处理,不要一看到连接失败就连续更换多个节点。

现象先做的动作判定结果
订阅返回 404 或 403在服务页面重新复制地址,确认账户状态和链接是否过期重新复制后仍失败,说明问题更接近订阅入口或服务端状态,客户端本地设置未必有错
提示格式错误确认使用的是 Clash 或 mihomo 兼容格式,不要把普通节点链接直接当订阅换成页面明确标注的兼容格式后能生成配置,说明原链接类型不匹配
配置下载成功但节点为空检查当前配置是否已激活,再查看配置内容是否包含 proxies 或 proxy-groups文件为空或字段缺失时,优先怀疑订阅内容、权限或兼容性
节点有延迟但网页打不开保持节点不变,只切换规则模式与全局模式做对照全局可用、规则不可用,重点检查规则和 DNS;两者都不可用,再检查节点或网络
开启 TUN 后断网关闭 TUN,恢复系统代理或直连,再检查权限、防火墙和 DNS系统代理恢复正常,说明问题集中在 TUN 接管链路,不要继续修改订阅
更新一直超时关闭客户端代理后重试订阅更新,再检查地址是否能正常响应直连能更新而代理不能更新,说明更新请求的代理路径需要单独调整

如果怀疑订阅地址泄露,应立即回到可确认的服务入口重置或重新生成订阅,并删除旧配置文件。不要把包含个人参数的完整链接发到公开 Issue、群聊或截图中。

常见问题

Sisc Link 没有显示 Clash 专用订阅,应该选哪一个?

目前未核实 Sisc Link 后台具体提供哪些格式。优先选择页面明确写有 Clash、mihomo 或兼容配置的地址;如果只有通用订阅入口,应以客户端导入结果和服务页面说明为准,不要凭文件后缀猜测。

Clash 显示配置下载成功,但为什么还是不能连接?

下载只代表客户端拿到了配置文件,不代表配置已激活,也不代表节点可用。请依次确认当前配置、节点列表、代理组选择、系统代理开关和连接记录。

规则模式和全局模式该怎么选?

首次排查可先用规则模式;如果访问结果与预期不一致,再临时切换全局模式做单变量对照。全局模式下仍需选择有效的全局策略组,不能只打开模式开关。

要不要一开始就开启 TUN?

不建议。先用系统代理验证浏览器等应用,确认订阅和节点没有问题后,再在需要接管特殊应用时开启 TUN。TUN 出现权限或断网问题时,先关闭并回退到系统代理。

节点测速低就一定能正常使用吗?

不一定。测速通常只是某个测试地址和时间点的结果,不能替代实际访问、规则命中和 DNS 检查。应保持节点不变,分别验证规则模式、全局模式和目标应用。

常见问题

Sisc Link 没有显示 Clash 专用订阅,应该选哪一个?

目前未核实 Sisc Link 后台具体提供哪些格式。优先选择页面明确写有 Clash、mihomo 或兼容配置的地址,以客户端导入结果和服务页面说明为准。

Clash 显示配置下载成功,但为什么还是不能连接?

下载只代表客户端拿到了配置文件,不代表配置已激活或节点可用。请确认当前配置、节点列表、代理组选择、系统代理开关和连接记录。

规则模式和全局模式该怎么选?

首次排查可先用规则模式;如果结果不符合预期,再临时切换全局模式做单变量对照。全局模式仍需选择有效策略组。

要不要一开始就开启 TUN?

不建议。先用系统代理验证浏览器等应用,确认订阅和节点正常后,再在需要接管特殊应用时开启 TUN。

节点测速低就一定能正常使用吗?

不一定。测速只是某个测试地址和时间点的结果,还应结合实际访问、规则命中和 DNS 检查判断。

相关阅读

参考资料

  1. mihomo 通用配置:运行模式与外部控制
  2. mihomo 路由规则说明
  3. mihomo API 文档
  4. Clash Verge Rev 项目说明
  5. Clash Verge Rev 远程订阅导入说明
  6. Clash Verge Rev 隐私与配置文件说明