headscale 系列:如何在 headscale 中使用 MagicDNS
· 阅读需 2 分钟
本文记录在 headscale 中启用 MagicDNS 的配置方法,以及 extra-records.json 的实践用法,方便在客户端通过主机名访问设备而不是直接记忆 IP。
原文链接: headscale系列:如何在headscale中使用MagicDNS
场景说明
- 客户端登录后,除了用 IP 访问设备,也可以直接用主机名。
- 在 Windows 客户端中,
tailscale会把设备主机信息写入hosts文件。 - 当开启
4via6等能力时,用自定义 DNS 名称映射会明显更省心。
开启 MagicDNS
在 config.yaml 中开启 DNS 相关配置(下面是核心项):
dns:
magic_dns: true
base_domain: example.com
override_local_dns: false
nameservers:
global:
- 1.1.1.1
- 1.0.0.1
search_domains: []
extra_records_path: /var/lib/headscale/extra-records.json
建议使用 extra_records_path 指向外部 JSON 文件,便于后续动态维护记录。
extra-records.json 示例
[
{
"name": "192-168-6-1-via-7",
"type": "AAAA",
"value": "fd7a:115c:a1e0:b1a:0:7:c0a8:601"
}
]
type支持A(IPv4)和AAAA(IPv6)。- 首次把配置从
extra_records切换为extra_records_path时,建议重启一次headscale。 - 后续只改
extra-records.json,通常不需要每次重启。
使用示例
客户端上线后,可以通过自定义记录名直接访问目标设备服务。

本文已同步到 Larktun 博客,原始内容与更新请以原文为准: headscale系列:如何在headscale中使用MagicDNS