【发布时间】:2021-08-06 12:55:01
【问题描述】:
我需要在 Windows、MacOS 和 Linux 上的活动网络接口(Wi-fi、以太网等)上以编程方式设置主机的 DNS 服务器。
我想避免为我在 ingress 上运行的 Kubernetes 服务手动更新/污染/etc/hosts。
目前,我的流程是为团队中运行我们应用程序的每个人手动设置 DNS 服务器
这个问题是它是一个手动过程,我在尝试自动化它时遇到了麻烦,因为输出的格式很奇怪并且难以解析。这意味着我无法知道使用哪个网络接口合适。
基本上,需要做的是以下(在两个平台上)
- 获取活动网络名称
- 将活动网络的 DNS 服务器设置为
127.0.0.1&8.8.4.4
目前正在手动完成的工作
MacOS:
networksetup -setdnsservers Wi-Fi 127.0.0.1 8.8.8.8
sudo killall -HUP mDNSResponder
-
127.0.0.1是在节点上运行的本地 DNS 服务器,为服务提供A记录 -
8.8.8.8是 Google 的公共 DNS 服务器
目前,我假设 MacOS 上的用户正在使用“Wi-Fi”网络,但我想以编程方式确定这一点
Windows 作为管理员:
netsh interface show interface
找到您希望更改 DNS 服务器的网络连接(例如:WiFi)。
netsh interface ipv4 add dns "WiFi" 127.0.0.1 index=1
netsh interface ipv4 add dns "WiFi" 8.8.8.8 index=2
ipconfig /flushdns
【问题讨论】:
-
基本上,我想知道是否有任何方法可以将
netsh输出格式化为机器可读格式
标签: node.js windows macos dns command-line-interface