跳到主要内容

headscale 系列:如何在 headscale 中使用 MagicDNS

· 阅读需 2 分钟
Larktun Contributor

本文记录在 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,通常不需要每次重启。

使用示例

客户端上线后,可以通过自定义记录名直接访问目标设备服务。

route table update magicdns query example


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