在Mac OS X中断开连接时使用网络服务
我有时会使用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分钟内完成此操作,只需断开末端并在RJ45连接器上方连接发送和接收对即可。 (显然,接口需要一个静态IP)
老派,但完全独立于软件,非常适合在长途飞行中的开发环境中工作... :)
这里有一个简单的图
回答
在从10.4开始的OS X上," / etc / resolv.conf"不再是DNS IP地址的规范位置。某些Unix工具(例如" dig"和" nslookup")将直接使用它,但是任何使用Unix或者Mac API进行DNS查找的工具都不会使用。相反,configd维护一个提供更多选项的数据库,例如对不同的域使用不同的名称服务器。 (出于兼容性考虑,该信息的子集已镜像到/ etc / resolv.conf
。)
我们可以使用SCDynamicStore
从代码中编辑名称服务器信息,或者以交互方式或者通过脚本使用scutil
。我在这里发布了两种方法的示例脚本的链接。当我试图弄清楚这些东西时,这个线程可能也有一定用处。