开发者生态
morning
复兴 iChat 音频和视频会议
摘要
Resurrecting iChat Audio and Video Conferencing Published on: 2026-09-11 12:36:14 by Chris Jones Updated on: 2026-10-05 20:15:16 • 7 min read tl;dr Add this to your /etc/hosts file on your old Mac run...
and
the
iChat
with
was
that
your
video
Apple
early
2026-10-07
1 阅读
约7分钟阅读
thepipetogrep
字号:
复活 iChat 音频和视频会议 发布于:2026-09-11 12:36:14 作者:Chris Jones 更新于:2026-10-05 20:15:16 • 阅读 7 分钟 tl;dr 将其添加到运行 Leopard 或 Show Leopard(尚未在 Tiger 或 Panther 上测试)的旧 Mac 上的 /etc/hosts 文件中,iChat 应该是能够再次进行音频和视频通话。这假设您的路由器执行端口保留 NAT(大多数都是如此)。 157.230.2.213configuration.apple.com 请注意,如果您使用的是基于 BSD 的路由器(例如 pfSense 或 OPNsense),则需要在出站 NAT 设置中启用源端口保留。 iChat AV 和 iSight 我曾经是最烦人的苹果狂热者。在 2000 年代初,我认为苹果公司拥有的一切都比其他任何东西都要好,无论这是真是假。然而,在 2000 年代初的视频和音频会议领域确实如此。当时消费级视频会议的主要参与者是微软(拥有 MSN Messenger)和雅虎!与雅虎! Messenger,以及 AOL 和 AOL Instant Messenger (AIM)。随后在 2003 年 6 月的苹果全球开发者大会(WWDC)上,随着 G5 处理器和 OS X 10.3 panther,苹果宣布了“iChat AV”。他们还宣布了这款经过精心设计的华丽网络摄像头,名为“iSight”。我实际上有一台 G4 笔记本电脑和一台 iSight。感觉就像生活在未来,我喜欢它。这篇文章是关于我如何让早期 OS X 上的 iChat 视频会议再次通过互联网运行,以重温其中的乐趣。第一次尝试 2023 年初,我和我的朋友(将被称为“Methodius”)决定尝试一下,看看会发生什么。我们尝试在 OS X Leopard 上测试简单的 iChat 音频通话。该版本的 iChat 可与 XMPP (Jabber) 服务器配合使用,因此我们每个人都在 jabb.im 上设置了一个帐户,然后按下绿色呼叫按钮。对方响了一声,说正在尝试连接,然后……连接失败。这从来都不是那么容易的事。 iChat 调试和检查网络 是时候使用 tcpdump 进行一些流量检查了。值得庆幸的是,它从那时起就预装在 OS X 上,所以我不需要安装任何额外的东西。除了数据包检查之外,我还通过在终端中启动 iChat 以调试模式运行它,如下所示: /Applications/iChat.app/contents/MacOS/iChat -errorLogLevel 7 iChat 的调试模式非常有用,几乎没有任何记录,所以现在如果我需要再次查找它,它就在这里。预期情况 iChat 向 http://configuration.apple.com/configurations/macosx/ichat/1/snatmap.txt 发出 http 请求以获取 SNATMAP 服务器的地址。 iChat 向该 SNATMAP 服务器发出 UDP 请求以获取其自己的公共 IP 地址。然后,两端的 iChat 通过文本通信通道(在我们的例子中为 XMPP)交换其公共 IP 和端口。然后,两端的 iChat 尝试通过先前通过 SNATMAP 服务器发现的公共 IP 和端口向两端发送数据包,从而尝试建立点对点 RTP 连接。由于 NAT 连接是有状态的,并且出站 NAT 连接会打开到发出请求的计算机的入站连接,因此 NAT 路由器后面的 iChat 能够相互连接,而无需提前设置 NAT 端口转发。实际发生的情况 iChat 尝试向 http://configuration.apple.com/configurations/macosx/ichat/1/snatmap.txt 发出 http 请求,但被重定向到 https,无法连接到该 https,因为 OS X 的 TLS 套件太旧了。 iChat 未能完成该请求,因此他们没有交换我们的公共 IP,而是交换了私有 LAN IP,这显然无法通过 NAT 连接。然而,在撰写本文时,https URL 仍然有效,并且实际上包含一些内容! snatmap://snatmap.apple.com:5678 好的,NP。我设置了自己的简单 Web 服务器,自己托管该文件,更新 OS X 的 /etc/hosts 文件以将 configuration.apple.com 指向我选择的 IP。运行它,但……仍然没有任何结果。 Apple 的 SNATMAP 服务器不再响应。此时,我们陷入了僵局,因为我们不知道该 SNATMAP 服务器如何工作,也不知道 iChat 如何与其通信。我们学到了很多东西,但最终还是以失败告终。几年后,Methodius 和我决定在 2026 年夏天再次尝试,但这一次需要一点法学硕士的帮助。通过之前的网络捕获,我们能够使用 LLM 对 iChat 的视频会议框架进行逆向工程,并找出对 SNATMAP 服务器的请求是什么样的以及 iChat 期望的响应。由此,我们能够生成 SNATMAP 协议的规范文件。尽管我不知道如何反编译 iChat,阅读汇编代码,并且他们理解它,但我至少可以从 LLM 生成的规范文件中学习如何编写一个简单的 UDP 服务器。宝宝的第一台服务器 我是一名系统工程师和管理员。我安装和配置服务器,但我以前从未编写过自己的服务器。时间
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱