0

我有时会使用 Macbook Pro 在完全断开的环境中工作。出于测试目的,我需要在 VMWare 会话中运行本地 DNS 服务器。我已经将查找系统配置为使用 DNS 服务器(/etc/resolve.conf 并通过网络配置面板,它在下面使用 configd),并且像“dig”和“nslookup”这样的命令可以工作。例如,我的 DNS 服务器配置为将 www.example.com 解析为 127.0.0.1,这是“dig www.example.com”的输出:

; <<>> DiG 9.3.5-P1 <<>> www.example.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64859
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.example.com.               IN      A

;; ANSWER SECTION:
www.example.com.        86400   IN      A       127.0.0.1

;; Query time: 2 msec
;; SERVER: 172.16.35.131#53(172.16.35.131)
;; WHEN: Mon Sep 15 21:13:15 2008
;; MSG SIZE  rcvd: 49

不幸的是,如果我尝试在浏览器中 ping 或设置连接,则无法解析 DNS 名称。这是“ping www.example.com”的输出:

ping: cannot resolve www.example.com: Unknown host

似乎那些更集成在 Mac OS X 10.4(及更高版本)中的工具不再使用“/etc/resolv.conf”系统。通过 scutil 配置它们没有任何帮助,因为如果无线或内置以太网接口处于非活动状态,则基本网络功能似乎无法正常工作。

在 Linux(例如 Ubuntu)中,可以关闭无线适配器,而无需打开网络功能。所以在 Linux 中,我似乎可以完全断开连接工作。

解决方案可能是使用以太网环回连接器,但我更喜欢软件解决方案,因为 Windows 和 Linux 都没有这个问题。

4

2 回答 2

1

在从 10.4 开始的 OS X 上,/etc/resolv.conf不再是 DNS IP 地址的规范位置。一些 Unix 工具,例如digandnslookup将直接使用它,但任何使用 Unix 或 Mac API 进行 DNS 查找的工具都不会。相反,configd 维护一个提供更多选项的数据库,例如为不同的域使用不同的名称服务器。(为了兼容性,此信息的一个子集被镜像到/etc/resolv.conf。)

您可以使用 编辑从代码中的名称服务器信息SCDynamicStore,或者以scutil交互方式使用或从脚本中使用。我在这里发布了一些指向这两种方法的示例脚本的链接。 当我试图弄清楚这些东西时的 这个线程也可能有一些用处。

于 2008-09-15T20:44:55.777 回答
0

我不时在不同的笔记本电脑上遇到这个问题,我发现最简单的是一种技术含量低的非软件解决方案——创建一个以太网环回连接器。您可以使用旧网线在 2 分钟内完成此操作,只需切断末端并在 RJ45 连接器上方加入发送和接收对。(显然你的接口需要一个静态 IP)

老派,但完全独立于软件,适合在长途飞行的开发环境中工作...... :)

这里有一个简单的图表

于 2008-09-15T20:30:24.470 回答