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

推荐订阅源

D
Docker
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
美团技术团队
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
T
Tailwind CSS Blog
U
Unit 42
C
Check Point Blog
S
SegmentFault 最新的问题
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
罗磊的独立博客
小众软件
小众软件
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net

K.I.S.S

身在 Kimi 的 800 天 写在 Kimi K2 发布之后:再也不仅仅是 ChatBot 为什么说 GPT 是无损压缩 | K.I.S.S 握着你的手训一个类GPT语言模型 (二) | K.I.S.S 握着你的手训一个类GPT语言模型 (一) | K.I.S.S Rosetta in Linux Virtual Machine on Apple Silicon Fit an Overfit with MegEngine 把 CUPS 扔进 docker 里 ASUS Chromebook Flip | K.I.S.S GPG 与 SSH Agent 转发 使用 dnsmasq 和 ipset 的策略路由 YubiKey 4 简介与配置 | K.I.S.S 定制GH60机械键盘 | K.I.S.S Debian 网络安装内核参数 | K.I.S.S 我的 Vim 配置 | K.I.S.S Libinput 与 Udev | K.I.S.S 给妹子看的 Arch Linux 桌面日常安装 | K.I.S.S 修复GTK3 CSD外观 | K.I.S.S 握着你的手教你画哀女王 | K.I.S.S R.I.P Google Reader | K.I.S.S Richard Stallman仍然是对的 | K.I.S.S Scala 自定义控制结构 | K.I.S.S 入手Wacom Bamboo CTL470 | K.I.S.S 转个型? | K.I.S.S Wish List | K.I.S.S pulseaudio音量问题 | K.I.S.S 入手yubikey,一点小心得 | K.I.S.S 迁移到Octopress | K.I.S.S 自动更新DNSPod记录 | K.I.S.S Linux 用作 IPv6 网关 | K.I.S.S
macOS 按域名切换 DNS 解析 | K.I.S.S
2023-11-26 · via K.I.S.S

在工作用的电脑上,为了访问公司内网,需要让内网域名走公司的 DNS 服务器,而其他域名走公共 DNS 服务器。

之前我一直使用 dnsmasq 实现按域名切换解析,这样的话有几个问题:

  1. dnsmasq 的默认上游是静态配置,并不是在所有网络环境中都能直接用 114 了事,尤其是在一些需要认证的环境中
  2. 需要改系统的 DNS 配置,同时每次系统更新之后又要重新改一遍

直到昨天我才知道 BSD 系支持一个按域名设置 resolver 的功能 (man 5 resolver),直接用就好了。

假设我们要让 *.internal.net 都指定用 192.168.8.8 作为 DNS 服务器,其他域名则使用默认的 DNS 服务器。

mkdir -p /etc/resolver  # 默认不存在,需要手动创建
# 在 /etc/resolver/internal.net 中写入配置
cat > /etc/resolver/internal.net << EOF
nameserver 192.168.8.8
EOF

这样就可以了,不需要改系统的 DNS 配置,也不需要重启任何服务。

如果不放心的话,可以用 scutil --dns 查看确认一下。

resolver #8
  domain   : internal.net
  nameserver[0] : 192.168.8.8
  flags    : Request A records, Request AAAA records
  reach    : 0x00000002 (Reachable)

另外在 macOS 下,dignslookup 等命令并不会遵守 resolver 配置,需要用 dscacheutil -q host -a name <domain> 来测试。

以上。