) 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 使用指南与常见问题整理 首页

机场不能用了怎么办?按这套步骤排查连接失败原因

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

简答:机场不能用时,不要先急着购买新套餐。先切换 Wi-Fi 与移动数据并重启设备,再检查订阅是否能更新、客户端是否有有效节点、节点是否全部失败;如果只有单个节点失败,通常先换节点,如果订阅无法更新且多个设备都失败,应联系服务方核实状态并及时备份配置、评估迁移。

定义:本文所说的“机场不能用了”,是指订阅型网络加速服务出现无法更新订阅、节点全部连接失败、客户端无法启动或连接后没有网络等情况,不等同于某一个节点暂时不可用。

先判断:到底是哪一种“不能用”

“机场不能用了”可能对应几种完全不同的问题。只有一个节点失败,通常不能直接判断服务整体失效;如果订阅更新失败、节点列表变空,或者多个设备和网络环境下都无法连接,才需要进一步核实订阅或服务状态。价格、到期时间、公告和服务状态应以对应服务方公开信息为准,本文不对任何具体服务是否失联作未核实判断。

常见现象与优先排查方向
现象优先检查下一步
只有一个节点连不上节点本身、线路或端口切换同一地区的其他节点,再测试
所有节点都显示失败订阅、客户端配置、本地网络先更新订阅,再检查系统网络和客户端日志
订阅更新失败或超时订阅地址、账号状态、网络连接确认地址没有多余空格,并在浏览器或客户端重新添加
客户端显示已连接但应用没网分流、按应用代理、系统 VPN 权限检查是否启用了仅部分应用代理,重新授权 VPN
刚更新客户端后不能用版本兼容、配置字段和核心变化查看官方版本说明,必要时备份后重新导入

如果你使用的是 Android 客户端,可以先参考 Google 官方 Android 网络连接排查说明:重启设备、在 Wi-Fi 和移动数据之间切换,并确认设备确实有可用网络。这样可以先排除“本地网络本身没有联网”的情况。

按顺序排查:从最简单的操作开始

  1. 确认普通网络是否正常。关闭客户端后,用浏览器打开常用网页,分别测试 Wi-Fi 和移动数据。如果两种网络都无法正常联网,先处理路由器、移动数据或系统网络问题,不要急着修改订阅。
  2. 重启设备和网络连接。开启飞行模式约 10 秒后关闭,再重新连接网络;使用家庭 Wi-Fi 时,也可以重启路由器。Google 的官方说明同样建议从重启设备、切换 Wi-Fi 与移动数据开始。
  3. 检查客户端是否仍有节点。打开客户端,确认订阅分组没有被删除,节点列表不是空白,当前选择的节点名称和服务器信息仍然存在。不要把“列表里有节点”误认为“节点一定可用”。
  4. 重新更新订阅。确认订阅地址来自你自己的账户页面或已保存的正规来源,避免从搜索结果、群聊转发或陌生短链接获取。更新时注意网络是否正常、地址是否完整,以及客户端是否提示权限、证书或解析错误。
  5. 换多个节点测试。先选择不同地区、不同线路的节点进行测试。如果只有一个节点失败,问题可能局限于该节点;如果全部节点都失败,再继续检查客户端和订阅。
  6. 检查系统 VPN 权限。Android 客户端通常需要系统允许其建立 VPN 连接。若系统弹出 VPN 权限提示,应确认是否误点拒绝;如果客户端显示连接成功但其他应用仍无法联网,可先断开,再重新授权并连接。
  7. 检查按应用代理和分流设置。有些客户端支持仅代理指定应用或绕过指定应用。v2rayNG 的官方项目说明中包含按应用代理相关设置,勾选逻辑可能导致“浏览器能用、某个应用不能用”或相反的情况。遇到这种现象,先暂时恢复为全局或默认模式,再逐个排查。
  8. 查看日志中的具体错误。记录错误关键词,例如订阅下载失败、超时、域名解析失败、证书错误、权限拒绝等。不要只看“连接失败”四个字,因为不同错误对应的处理方式不同。
  9. 最后再考虑重装或迁移。重装前先导出仍可用的配置、保存订阅地址和账户信息。v2rayNG 的官方仓库说明其 Android 版本下载入口位于项目 Release 页面;安装包应尽量从项目公开发布页或可信应用来源获取,不要使用来历不明的修改版安装包。可参考 v2rayNG 官方项目页 和 v2rayNG 官方 Release 页面。

订阅更新失败时,如何判断是地址问题还是服务问题

订阅更新失败不一定意味着服务已经停止。常见原因包括订阅地址过期、复制时缺少字符、账户状态变化、当前网络无法访问订阅地址、客户端版本不兼容,以及服务端临时异常。

涉及客户端版本时,建议查看项目自己的发布说明。比如 v2rayNG 官方 Release 页面会列出版本、更新内容和安装包信息;如果升级后出现配置异常,应以该页面的实际说明为准,而不是直接套用旧教程。

什么时候应该停止继续折腾并准备迁移

如果你已经完成基础网络检查,订阅仍长期无法更新,多个节点持续失败,且服务方没有可核验的账户处理渠道,就应该把重点从“继续尝试连接”转为“保护账号和减少损失”。这里的“长期”需要结合你自己的订阅有效期、服务方公开通知和实际测试记录判断,不能仅凭一次超时下结论。

  1. 保存账户订单、订阅到期信息和已有配置,避免后续无法核对。
  2. 撤销或删除不再使用的订阅链接,尤其是已经公开传播或疑似泄露的链接。
  3. 不要向陌生客服、临时群组或仿冒页面重复付款,也不要提交身份证件、支付密码或其他无关敏感信息。
  4. 选择替代服务时,先确认官网域名、客户端来源、退款和售后规则,再用短周期方案测试,不要一开始就购买长期套餐。
  5. 新服务导入前,先在独立客户端或备用设备上核验订阅内容,避免覆盖仍有价值的旧配置。

如果只是单个节点不可用或某一时段变慢,通常应先完成节点切换和本地排查;如果是订阅本身无法更新并且跨设备、跨网络持续失败,才更适合进入止损和迁移流程。

防止下次再次遇到“不能用了”

排查网络问题时,最重要的是把“本地网络、客户端、订阅、节点、服务状态”分开验证。逐项排除比反复更换客户端或盲目购买新套餐更节省时间,也更能避免误判。

常见问题

机场不能用了,是不是服务已经跑路?

不能仅凭一次连接失败或一个节点不可用下结论。应先测试普通网络、更新订阅、切换多个节点,并在不同网络或设备上复核。如果订阅长期无法更新、多个节点持续失败且没有可核验的账户处理渠道,再考虑止损迁移;具体服务状态仍应以其可核验的公开信息为准。

订阅链接打不开或更新失败怎么办?

先确认 Wi-Fi 或移动数据本身正常,再检查订阅地址是否完整、是否过期或复制错误。删除旧订阅前先保存配置;如果多个客户端和网络都无法更新,应通过已知的账户入口核实,不要使用陌生人提供的临时链接。

客户端显示已连接,但网页或应用还是不能用,怎么处理?

检查系统 VPN 权限、按应用代理、绕过规则和分流设置。先恢复默认或全局模式,再测试浏览器和目标应用;如果只有某个应用不能用,优先检查该应用是否被设置为直连。

只有一个节点不能用,需要换客户端吗?

通常不需要。先切换同一订阅中的其他节点,观察是否只有单个节点失败。只有在客户端本身报错、订阅无法解析、版本不兼容或系统 VPN 权限异常时,才考虑更新、重装或更换客户端。

什么时候适合迁移到新的服务?

当本地网络正常、多个节点持续失败、订阅长期无法更新,并且你无法通过可信渠道核实账户状态时,可以开始备份资料和评估迁移。建议先短周期测试,确认客户端下载来源、售后规则和订阅安全性后再决定。

相关阅读

参考资料

  1. Google 官方:修复 Android 设备的网络连接问题
  2. v2rayNG 官方项目页
  3. v2rayNG 官方 Release 发布页