在Mac OS X中断开连接时使用网络服务

时间:2008-09-15 19:22:51

标签: macos networking

我不时地使用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都没有这个问题。

2 个答案:

答案 0 :(得分:1)

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

您可以使用SCDynamicStore从代码编辑名称服务器信息,或者以交互方式或脚本使用scutil。我发布了两个方法here的示例脚本的一些链接。从我试图弄清楚这些东西的时候This thread也可能有用。

答案 1 :(得分:0)

我不时在不同的笔记本电脑上遇到这种情况,我发现最简单的是一种低技术,非软件解决方案 - 创建一个以太网环回连接器。您可以使用旧的网络电缆在2分钟内完成,只需剪掉一端并加入RJ45连接器正上方的发送和接收对。 (显然你的界面需要静态IP)

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

有一个简单的图表here