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

时间:2020-03-05 18:54:17  来源:igfitidea点击:

我有时会使用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。我在这里发布了两种方法的示例脚本的链接。当我试图弄清楚这些东西时,这个线程可能也有一定用处。