macOS 里的 sntp 是什么,为什么会联网?
最后更新: 2026-07-31
sntp 是 macOS 自带的命令行时间查询工具,只有用户、脚本或其他进程明确调用时才会运行。它不是日常自动校时服务;当前 macOS 的常规自动校时由 timed 负责。
它是什么
sntp 是 macOS 自带的命令行 SNTP 客户端,程序位于 /usr/bin/sntp。网络监控工具有时会显示 com.apple.sntp,这是该程序经过 Apple 签名后使用的代码签名标识,不代表电脑里安装了一款同名 App,也不是普通应用程序的 bundle。
它做的事情很具体:有人启动 sntp,同时给出一个时间服务器,它就向那个服务器查询时间。发起调用的可能是用户,也可能是脚本或其他进程。没有这次明确调用,sntp 不会为了日常校时一直留在后台。
因此,在活动监视器或逐进程网络记录中看到 sntp,不能把它直接理解成“系统的自动校时后台服务”。它只是本次时间查询用到的客户端。当前 macOS 平时自动同步系统时间,靠的是 timed。两者都与时间有关,但运行方式和职责并不相同。
这个区别也影响排查思路。短暂出现一次,符合命令行工具按需启动的特点。反复出现,则说明某个调用来源反复执行了它。此时要找的是谁在调用、调用时传了什么服务器,而不是先认定 sntp 自己在后台制定了某种同步计划。
它为什么要联网
sntp 不会随意选择一个网站访问。触发联网的前提是:用户、脚本或其他进程执行了 /usr/bin/sntp,并传入时间服务器的主机名或 IP 地址。它收到目标后,才会发起查询。
如果调用者给的是主机名,系统要先进行 DNS 解析,把名字转换成可连接的地址。随后,sntp 通过 UDP 123 端口向指定的 NTP 或 SNTP 服务器查询时间。整个连接对象取决于调用时传入的参数。
目标服务器不一定属于 Apple。企业可以指定自己的时间服务器,管理脚本也可以填写其他服务器,用户同样可以手工选择。因此,只看见 com.apple.sntp 这个标识,不能推断它正在连接某个固定的 Apple 域名,更不能凭进程名补出一个服务器地址。
某一次查询究竟连了哪里,必须以当时记录到的命令行参数或网络端点为准。如果这些信息没有保存,实际服务器就是未验证,不能事后猜测。调用者也是一样:没有父进程、启动记录或其他直接证据,就只能写“未验证”。sntp 的已知功能可以确认,但功能本身不能替代这次连接的现场证据。
正常流量应该是多少
正常的一次 sntp 调用,通常只是短时间内发送少量、小型的 UDP 时间查询。和打开一个普通网页相比,这类协议流量一般小得多。这里说的是量级,不是固定额度,也不是每次都完全相同的保证值。
Apple 没有公布一份可核验的 sntp 累计流量区间。一天应该用多少、一个月应该用多少,都没有可靠的统一数字。长期总量完全取决于它被调用的次数:偶尔手工查一次,与脚本频繁执行,累计结果自然不同。没有本机测量,就不能给出具体的日流量或月流量,更不能为了方便判断而编一个 MB 数字。
如果记录里只出现一次很短的小流量突发,这与它的正常用途吻合。反过来,若 sntp 持续产生流量,或者累计量明显偏大,就不该简单归为“时间同步本来如此”。一次正常查询本身很轻,持续现象更值得检查调用频率、父进程、命令行参数和目标服务器。
判断异常时,重点不是拿它和一个虚构阈值比较。先确认它在什么时间出现、出现了多少次、每次是否很快结束,再寻找是谁启动了它。只有这台 Mac 的实际记录,才能回答它到底用了多少流量。
能不能关掉
结论是保留 sntp。Apple 没有提供禁用 /usr/bin/sntp 的系统设置开关,所以这里也没有一条可以照着点击的设置路径。
系统设置里与时间最接近的选项是“自动设定时间与日期”。它控制的是系统自动通过网络校时,并不是 sntp 的进程级开关。即使关闭这项设置,脚本或其他进程仍然可以明确执行 /usr/bin/sntp。因此,“关掉自动时间以后就彻底禁用了 sntp”并不成立。
手工移除这个程序,或者强行阻止它执行,都属于 Apple 不支持的做法。这样处理可能让依赖它的管理脚本失效,也可能影响时间诊断工具。日常自动校时由 timed 负责,确实不要求 sntp 常驻;但“它不需要常驻”和“可以把它从系统里删掉”是两回事。
如果担心的是异常流量,先查调用来源比直接封锁更有效。封锁只能让查询失败,不能解释为什么某个脚本或进程频繁发起查询,也可能把真正的问题藏起来。
常见的误解
1. “sntp 是 macOS 一直运行的自动校时后台服务。” 这不对。sntp 是按需启动的命令行客户端,收到明确调用后才查询时间。当前 macOS 负责日常自动校时的常驻服务是 timed。看到 sntp 短暂出现,不代表系统又启动了一套长期运行的自动校时服务。
2. “sntp 和 sntpd 是同一个进程。” 两者名字接近,职责却不同。sntp 是客户端,向时间服务器发起查询;sntpd 是另一套服务器守护进程,可以对外提供时间服务。经过独立核查的 com.apple.sntpd 启动项默认标记为 Disabled。不能因为名称只差一个字母,就把客户端的联网记录解释成服务器正在运行。
3. “关闭‘自动设定时间与日期’就能禁用 sntp。” 这个说法混淆了系统自动校时和命令行工具。设置项只管理系统的自动网络校时,不负责禁止 /usr/bin/sntp 执行。只要脚本或其他进程明确调用它,sntp 仍然可能出现。Apple 没有另外提供一个专门关闭它的开关。
4. “阻止 sntp 能明显节省流量。” 正常的一次查询只会产生很小、持续时间很短的协议流量,通常远低于一次普通网页加载。对这种正常调用进行封锁,一般不会带来明显的流量节省。要是实际记录显示它一直联网或累计量很大,应该检查父进程、命令行参数、启动频率和目标服务器,而不是假定每次时间查询都会消耗大量数据。
5. “看到 com.apple.sntp 联网,就说明 Apple 在做遥测,或者系统里有恶意软件。” com.apple.sntp 对应的是 macOS 自带的 /usr/bin/sntp,已核实的功能是查询网络时间。仅凭这个标识,不能把连接定性为遥测或恶意活动。不过,系统自带并不意味着异常频率无需追查。如果它在没有预期操作的情况下反复启动,仍应找出是谁调用了它。没有保存参数或网络端点时,具体调用者和服务器都必须保持“未验证”,不能根据猜测下结论。
这些误解往往��自同一个混淆:把工具的已知用途、系统自动校时机制和某一次真实连接揉成了一件事。sntp 是什么,可以根据程序和签名确认;某次是谁启动、连到哪里,则需要那次运行留下的证据。把两层信息分开,才不会把正常的小查询说成后台遥测,也不会漏掉真正异常的重复调用。
怎么看它到底用了多少
下一步可以在 Bytetally 的逐进程统计里查看 sntp 的实际流量,并确认它只是偶尔短暂出现,还是形成了重复模式。若累计量持续增加或明显偏大,再缩小到对应时间段,继续核查父进程、命令行参数和目标端点。没有捕获到的调用者或服务器,仍应标为未验证。
相关进程
常见问题
sntp 是病毒或者 Apple 遥测吗?
不是。com.apple.sntp 是 Apple 自带工具 /usr/bin/sntp 的代码签名标识,已经核实的用途是查询网络时间。如果它频繁出现,仍应继续查明调用者。
sntp 为什么会访问网络?
有人向 /usr/bin/sntp 传入了时间服务器的主机名或 IP 地址。使用主机名时会先做 DNS 解析,随后通过 UDP 123 端口查询指定的 NTP 或 SNTP 服务器。
macOS 能关闭 sntp 吗?
Apple 没有提供禁用 /usr/bin/sntp 的系统设置开关。手工移除或阻止它不受支持,还可能导致管理脚本或时间诊断工具失效。
sntp、timed 和 sntpd 是同一个进程吗?
不是。sntp 是按需运行的客户端,timed 负责当前 macOS 的常规自动校时,sntpd 则是另一套可提供时间服务的服务器守护进程。
看清它到底用了多少
Bytetally 逐进程分别统计上传与下载,实时和历史都有,全部在本机完成。
免费下载 · Mac App Store需 macOS 14 Sonoma 或更高 · 100% 本机分析 · 无需账号