惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
G
GRAHAM CLULEY
S
Securelist
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Spread Privacy
Spread Privacy
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
T
Tailwind CSS Blog
博客园_首页
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
O
OpenAI News
J
Java Code Geeks
T
Tenable Blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
S
Security @ Cisco Blogs
The GitHub Blog
The GitHub Blog
T
Threatpost
月光博客
月光博客
H
Heimdal Security Blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Y
Y Combinator Blog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
D
Docker
Google Online Security Blog
Google Online Security Blog
D
DataBreaches.Net
V
Visual Studio Blog
H
Help Net Security

ChrAlpha's Blog

嵌套 Devcontainer:放心 dangerously skip permissions 无看管 Agent Coding | ChrAlpha's Blog AI Agent 病毒:从 OpenClaw 病毒式成功到成为病毒 | ChrAlpha's Blog 写给非科班的 HPC 无痛上手:在超算节点上使用 VS Code | ChrAlpha's Blog 用 Conda 管理 R 环境并配合 VS Code 优化数据分析代码体验 | ChrAlpha's Blog Pixel SIM 里外配合实践:大陆 SIM + 外地 eSIM WiFi Calling | ChrAlpha's Blog 因 Magisk 模块致 Pixel 8 卡死在 Fastboot 的救砖记录 | ChrAlpha's Blog 用 Thanox 在不支持地区启用 Google 地图时间轴(位置记录) | ChrAlpha's Blog 接纳不等于忍受,为舒服使用 Windows 11 的若干优化调整记录 | ChrAlpha's Blog Win10 生命末尾、Win11 是否有必要执着于 LTSC? | ChrAlpha's Blog 再谈在 GitHub Issues 写作,顺带算是样式开源
Tailscale 配合 Mihomo(Clash.Meta) TUN/Quantumult X VPN 共存使用技巧 | ChrAlpha's Blog
ChrAlpha · 2025-03-23 · via ChrAlpha's Blog

由于没有公网 IP,以往一直通过白嫖 Cloudflare Zero Trust 的方式异地组网。随着需求的增加,以及不久前 Cloudflare 1.1.1.1 DoH 被阻断,担心 不可抗拒因素 导致可用性进一步下降,因此将方案切换成 Tailscale + 自建 derp 服务器。

然而 Tailscale MagicDNS 往往会与代理工具为了防止 DNS 污染而采取的一系列手段相冲突。倘若你的代理工具不仅是以系统代理而是以 TUN 等更深方式还可能与完整 Tailscale 互斥。本文记录了一些解决方案。

默认情况下,Tailscale 会作为 TUN 虚拟网关处理,这可能会与代理工具互斥。Tailscale Userspace networking mode 可以 gVisor 仅作为 Socks5 代理节点加入代理工具的链路。Tailscale 两种工作方式的技术层面对比参考 Tailscale 文档 Technical overviews 部分

tailscaled --tun=userspace-networking --socks5-server=localhost:<socks5-port>

tailscale up --accept-dns=false --auth-key=<auth-key>

此时将 <auth-key>@localhost:<socks5-port> 作为 Socks5 节点手动添加到代理工具中即可。主流代理工具均支持以规则指定节点,亦或是仅在需要时切换至此节点,在设置好 Exit Node 并在 Exit Node 配置好出站代理后一直采用此节点均可。

如果日常使用 Tailscale 程度更高、希望 Tailscale 更深入介入,但是又不希望干扰代理工具,经过我的尝试,至少在 Windows/macOS 上,通过以下几步便可实现:

  • 代理工具排除 Tailscale 网段
  • Tailscale 关闭本地 DNS 服务(并非 完全关闭 MagicDNS)
  • 代理工具按需设置 100.100.100.100 DNS

代理工具排除 Tailscale 网段

仅以 Mihomo/Quantumult X 为例具体操作。

Tailscale 会为每个节点分配一个唯一的 100.x.y.z IP,可以单独将这些地址排除在代理之外。特别的,Mihomo 还可以在规则中根据 PROCESS-NAME 来排除 Tailscale 进程、在 TUN 网关中排除 Tailscale interface。

在 Mihomo profile 中插入以下规则:

tun:
  exclude-interface:
    - Tailscale # maybe `utun*` on macOS
  route-exclude-address:
    - 100.64.0.0/10
    - fd7a:115c:a1e0::/48

rules:
  - PROCESS-NAME,tailscale.exe,DIRECT # remove .exe for macOS
  - PROCESS-NAME,tailscaled.exe,DIRECT

对于 Quantumult X,如果你使用公共性质的代理服务商家所提供的配置文件,一般已经在 [general] 中排除了 100.64.0.0/10,但是 Quantumult X 会添加 excluded_routes 路由到默认网关而覆盖 Tailscale 路由。由于路由规则从细到粗,可以尝试将 excluded_routes 排除放大至 100.64.0.0/9 以确保 Tailscale 100.64.0.0/10 路由优先生效。

[general]
excluded_routes = 100.64.0.0/9 ; as well as other routes

Tailscale 关闭本地 DNS 服务

对于 CLI 版本。

tailscale up --accept-dns=false

对于 GUI 版本,可以在 Settings > General 中取消勾选「Use Tailscale DNS settings」。注意不需要完全关闭 MagicDNS,只需要关闭本地 DNS 服务即可。

其实到这一步可以通过 Tailscale IP 的方式连接到其他节点,但是对于 Tailscale 分配的 <machine-name>.<tailnet-name>.ts.net 就无法解析。如果你完全不需要此域名或者自定义域名解析,可以直接跳过下一步。

代理工具按需设置 DNS

一个比较懒的方法是直接在代理工具中全局 DNS 设置为 100.100.100.100 交由 MagicDNS,MagicDNS 在非 Tailscale 域名解析中会自动使用系统 DNS 或其他公共 DNS/DoH 服务,可在面板中设置。

而代理工具往往会提供复杂的 DNS 解析以及回退机制,更加理想的做法是根据 +.<tailnet-name>.ts.net 交由 MagicDNS 其余继续进入代理工具的 DNS 解析链路。

  • Mihomo DNS 配置
dns:
  nameserver-policy:
    "+.<tailnet-name>.ts.net": "100.100.100.100"
  • Quantumult X DNS 配置
[dns]
server = /+.<tailnet-name>.ts.net/100.100.100.100

不过遗憾的是,直接通过 <machine-name> 还是无法解析,如果你设备变化不频繁,也可以直接写进 Hosts 文件。


关于 Tailscale 本体的使用、自建 Derp 服务器等内容,已有很多文章介绍参考,本文不再赘述,仅记录了一些与代理工具共存的技巧。希望对你有所帮助。