You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VPN DNS设置及resolvectl输出中‘~.’的含义咨询

VPN DNS设置及resolvectl输出中‘~.’的含义咨询

嘿,这个问题问得特别实用!我来给你把resolvectl里这个~.的门道讲明白~

在systemd-resolved(也就是resolvectl背后的DNS服务)的逻辑里,~.是个特殊的DNS搜索域标记,专门用来调整域名查询的优先级和逻辑,尤其在VPN场景下作用很大。

具体来说:

  • 平时我们的DNS搜索域,比如work-vpn.com,作用是当你输入短域名(比如fileserver)时,系统会自动把搜索域拼在后面,变成fileserver.work-vpn.com去查询DNS。
  • 但~.的作用刚好是反过来的——它相当于一个“强制绝对查询”的开关:只要搜索域列表里有~.,所有不带末尾点的短域名,都会被直接当作绝对域名来查询,也就是系统会自动给这个短域名补个末尾的.(比如把github变成github.),不会去拼接任何其他的搜索域。

给你举个VPN场景的真实例子:
假设你的公司VPN推送了corp.yourcompany.com作为搜索域,如果没有~.,当你想访问github时,系统会先跑去查github.corp.yourcompany.com(大概率内网DNS根本不知道这个地址),等查不到了才会去查真正的github.;但有了~.之后,系统会直接跳过拼接内网域的步骤,直接查github.,既不影响你用短域名访问内网服务(比如输入fileserver时,系统还是会按照规则尝试拼接内网域),又能避免外部域名被无效的内网DNS查询拖慢。

简单总结就是:~.是systemd-resolved用来强制非完全限定域名走绝对查询的特殊标记,在VPN环境下能完美平衡内网域名访问和外部域名解析的需求,是个很贴心的小配置。

备注:内容来源于stack exchange,提问作者user279771

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:19:29