Skip to content
Go back

Tailscale + Clash Verge(Mihomo)排障记录:修复 TUN + fake-ip 导致的 NeedsLogin

Published:  at  10:30 AM

在 macOS 上同时使用 Tailscale 和 Clash Verge(Mihomo)时,如果 Clash 开启了 TUN + fake-ip,可能会遇到 Tailscale 无法正常登录控制面的问题。下面是一次完整可复现、可回滚的修复记录。

现象

根因

标准修复(保留 TUN 模式)

使用 Clash Verge 的全局扩展脚本(Global Extension Script),让当前和后续导入的订阅都自动生效。

function main(config, profileName) {
  config.dns = config.dns || {};
  const key = "fake-ip-filter";
  const fakeIpFilter = Array.isArray(config.dns[key]) ? config.dns[key] : [];

  const domains = ["+.tailscale.com", "+.ts.net"];
  for (const d of domains) {
    if (!fakeIpFilter.includes(d)) fakeIpFilter.push(d);
  }
  config.dns[key] = fakeIpFilter;

  if (!Array.isArray(config.rules)) config.rules = [];

  const tailRules = [
    "PROCESS-NAME,tailscaled,DIRECT",
    "PROCESS-NAME,tailscale,DIRECT",
    "DOMAIN-SUFFIX,tailscale.com,DIRECT",
    "DOMAIN-SUFFIX,ts.net,DIRECT",
    "IP-CIDR,100.64.0.0/10,DIRECT,no-resolve"
  ];

  config.rules = config.rules.filter((r) => !tailRules.includes(r));
  config.rules.unshift(...tailRules);

  return config;
}

Clash Verge 配置位置

  1. 打开 Clash Verge。
  2. 进入全局扩展脚本(Global Extension Script)。
  3. 粘贴上述脚本。
  4. 点击应用配置/重载内核。

修改后执行

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
tailscale up

验证

先检查控制面域名解析结果:

dscacheutil -q host -a name controlplane.tailscale.com

再检查 Tailscale 状态:

tailscale status

问题复发时的快速诊断命令

tailscale status --json | sed -n '1,120p'
tailscale netcheck | sed -n '1,120p'
dscacheutil -q host -a name controlplane.tailscale.com

回滚

删除全局扩展脚本中的上述规则,重新应用配置并重载内核即可。



Previous Post
Disk Relocator:把聊天软件大目录安全搬到外接盘
Next Post
HP EliteDesk 800 G4 DM 黑苹果无头服务器安装指南(Sonoma 14.x)