Skip to content

FlClash (Android) 完美防泄露与自动路由配置指南

本文档总结了在安卓手机端使用 FlClash(基于 Mihomo 核心)时,如何彻底解决 DNS 泄露问题,并配置自定义内网域名的最佳实践方案。

背景与痛点

虽然 FlClash 拥有现代化的界面,但它默认会最大程度“尊重”机场下发的配置。如果你的机场配置中自带了老旧的 fallback(并发抢答)机制,会导致访问未知域名时,同时向国内和国外 DNS 发起查询,从而在测漏网站上暴露国内运营商 IP。

为了达到与 Mac 端 (Clash Verge) 完全一致的“零泄露”纯净状态,我们需要通过 FlClash 的配置覆写 (Overrides) 功能来强制重写底层 DNS 逻辑。


核心配置方案(推荐使用脚本模式)

FlClash 支持与 Clash Verge 几乎完全兼容的 JavaScript 预处理脚本,但为了适应手机端可能存在的精简版 JS 引擎,请务必使用以下经过极其严密优化的 ES5 兼容版代码。

步骤 1:打开脚本覆写模式

  1. 打开 FlClash,点击底部的 设置 (Settings)
  2. 找到并点击 覆写 (Overrides)
  3. 找到并选择 脚本 (Script) 模式。

步骤 2:填入完美防漏脚本

将里面默认的代码全部删除,替换为以下完整代码并保存:

javascript
const main = (config) => {
  if (!config) config = {};
  
  // =======================================================
  // 配置项:在最顶部统一管理你的所有自定义规则和软件策略 (ES5)
  // =======================================================
  
  // 1. 需要【直连】且【使用国内 DNS】的自定义域名
  var myCustomDomains = [
    "yago.vip",
    "shadowsocks.nz",
    "newcli.com",
    "hotaitool.net",
    "issueacard.top",
    "aoenan.com"
  ];
  
  // 2. 被 geosite:cn 误判,或需要【强制使用国外 DNS+强制代理】的海外域名
  var forceProxyDomains = [
    "byteoversea.com",
    "tiktokv.com",
    "tiktokcdn.com",
    "tiktok.com",
    "bytedance.com",
    "capcut.com",
    "snssdk.com",
    "trae.ai"
  ];

  // 3. 常用社交/聊天软件域名库 (GEOSITE) - 强制代理并海外 DNS 解析
  var socialGeosites = [
    "telegram",
    "whatsapp",
    "twitter",
    "instagram"
  ];

  // 4. 常用社交/聊天软件 IP 地址库 (GEOIP) - 强制代理
  var socialGeoips = [
    "telegram",
    "whatsapp",
    "instagram"
  ];

  // 5. 核心 AI 服务域名库 (GEOSITE) - 极度严格防风控
  var aiGeosites = [
    "openai",
    "anthropic",
    "google",
    "github"
  ];

  // =======================================================
  // 优化 DNS 设置
  // =======================================================
  if (!config.dns) config.dns = {};

  // 开启 IPv6 解析视力
  config.dns.ipv6 = true;
  
  config.dns['proxy-server-nameserver'] = ["223.5.5.5", "119.29.29.29"];
  config.dns['default-nameserver'] = ["223.5.5.5", "119.29.29.29"];
  config.dns.nameserver = ["8.8.8.8", "1.1.1.1"];

  var policy = {
    "geosite:cn": ["https://223.5.5.5/dns-query", "https://doh.pub/dns-query"],
    "geosite:apple": ["https://223.5.5.5/dns-query", "https://doh.pub/dns-query"]
  };

  // 动态注入:直连域名 DNS
  for (var i = 0; i < myCustomDomains.length; i++) {
    policy["+." + myCustomDomains[i]] = ["https://223.5.5.5/dns-query"];
  }
  // 动态注入:海外强制代理域名 DNS
  for (var k = 0; k < forceProxyDomains.length; k++) {
    policy["+." + forceProxyDomains[k]] = ["8.8.8.8", "1.1.1.1"];
  }
  // 动态注入:社交软件域名 DNS,解决污染
  for (var n = 0; n < socialGeosites.length; n++) {
    policy["geosite:" + socialGeosites[n]] = ["8.8.8.8", "1.1.1.1"];
  }
  // 动态注入:AI 服务防漏,防止触发严格风控
  for (var p = 0; p < aiGeosites.length; p++) {
    policy["geosite:" + aiGeosites[p]] = ["8.8.8.8", "1.1.1.1"];
  }
  config.dns['nameserver-policy'] = policy;

  if (config.dns.fallback) delete config.dns.fallback;
  if (config.dns['fallback-filter']) delete config.dns['fallback-filter'];

  // =======================================================
  // 路由规则强化
  // =======================================================
  if (!config.rules) config.rules = [];
  
  var proxyGroupName = "PROXY";
  if (config['proxy-groups'] && config['proxy-groups'].length > 0) {
    proxyGroupName = config['proxy-groups'][0].name;
  }

  var prependDirect = [];
  var prependProxy = [];
  for (var j = 0; j < myCustomDomains.length; j++) {
    prependDirect.push("DOMAIN-SUFFIX," + myCustomDomains[j] + ",DIRECT");
  }
  for (var m = 0; m < forceProxyDomains.length; m++) {
    prependProxy.push("DOMAIN-SUFFIX," + forceProxyDomains[m] + "," + proxyGroupName);
  }
  
  // 生成社交软件的 GEOSITE 和 GEOIP 规则
  var socialRules = [];
  for (var a = 0; a < socialGeosites.length; a++) {
    socialRules.push("GEOSITE," + socialGeosites[a] + "," + proxyGroupName);
  }
  for (var b = 0; b < socialGeoips.length; b++) {
    socialRules.push("GEOIP," + socialGeoips[b] + "," + proxyGroupName);
  }
  
  var aiRules = [];
  for (var c = 0; c < aiGeosites.length; c++) {
    aiRules.push("GEOSITE," + aiGeosites[c] + "," + proxyGroupName);
  }
  
  config.rules = prependProxy.concat(aiRules).concat(socialRules).concat(prependDirect).concat(config.rules);

  return config;
}

备选方案:自定义 (Custom / YAML) 模式

如果遇到脚本执行异常,你也可以选择 自定义 (Custom) 模式,直接粘贴纯 YAML 代码来修改 DNS。效果是一模一样的:

yaml
dns:
  enable: true
  ipv6: true
  fallback: []
  fallback-filter: {}
  nameserver:
    - 8.8.8.8
    - 1.1.1.1
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  proxy-server-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  nameserver-policy:
    "geosite:cn":
      - https://223.5.5.5/dns-query
      - https://doh.pub/dns-query
    "geosite:apple":
      - https://223.5.5.5/dns-query
      - https://doh.pub/dns-query
    "+.yago.vip":
      - https://223.5.5.5/dns-query
    "+.shadowsocks.nz":
      - https://223.5.5.5/dns-query

(注:使用此模式时,自定义域名需要在 FlClash 的 规则(Rules) 界面中手动添加 DOMAIN-SUFFIXDIRECT)


极其关键的最后一步:封堵 IPv6 绕过

安卓手机的默认网络环境经常会分配真实的 IPv6 地址。如果不接管它,浏览器会偷偷通过 IPv6 直接连接目标网站,导致最严重的物理位置和 IP 泄露。

  1. 在 FlClash 底部点击 设置 (Settings)
  2. 找到 网络 (Network) / VPN 设置 模块。
  3. 务必将 开启 IPv6 (Enable IPv6 / Route IPv6) 的开关打开
  4. 返回首页,点击停止后重新启动代理。

(原理:开启后,FlClash 的底层 VPN 会建立 IPv6 的虚拟网卡,强行把企图溜走的 IPv6 数据包抓进代理隧道进行过滤或伪装。)


最终验证

配置完成后,请在手机浏览器中进行以下两步终极测试:

  1. DNS 测漏:打开 browserleaks.com/dns,检查 DNS 列表是否已清空了所有 China, Alibaba, Telecom 等节点,仅剩海外代理服务器 IP。
  2. IP 纯净度检测:打开 ip.net.coffee,检查最终出口 IP,此时 IPv6 栏若显示海外代理 IP 则属于绝对安全状态。

进阶防风控:手机系统时区伪装 (针对 Claude 等高敏 AI)

与电脑端完全一样的原理,如果你经常在手机浏览器中使用网页版 Claude 等高敏 AI 平台,为了防止其通过网页脚本读取手机本地的真实时间(东八区)并与你的代理 IP(美国)进行交叉比对从而导致封号,强烈建议你在使用期间,将手机的系统时区也修改为代理所在地

由于安卓系统无法像网络代理(FlClash)那样在底层拦截硬件时区信息,你必须手动在系统设置中进行更改:

  1. 关闭自动时区:打开安卓手机的 “设置” -> “系统和更新” -> “日期和时间”(不同手机品牌路径可能略有不同,如三星在“常规管理”,小米在“更多设置”)。
  2. “自动设置日期和时间”“自动设置时区” 两个开关彻底关闭。
  3. 手动绑定洛杉矶:点击下方的 “时区”,在国家/地区中搜索并选择 “美国”,然后在城市列表中选择 “洛杉矶 (Los Angeles)” 或者 “太平洋时间”(注:加州的圣何塞 San Jose 与洛杉矶属于完全相同的太平洋时区,完美匹配你的代理节点。)
  4. 日常使用小贴士:你可以利用安卓手机的“双时钟”功能(在桌面上放一个包含北京时间的时钟小组件),而让系统底层主时区保持为美国加州时间。这样既不耽误你看国内的日常时间,又能 24 小时完美骗过所有 AI 平台的反欺诈检测系统!

Powered by VitePress & High-Concurrency Nginx Engine · SSL Labs A+ Certified