---
title: "在 Mac 上查找网络中的设备：arp 和 dns-sd · Kilobat 指南"
url: "https://kilobat.app/zh-hans/guides/find-devices-on-network.html"
description: "在“终端”中用 arp 和 dns-sd 列出 Mac 在本地网络中看到的设备，找到打印机或 NAS，并了解每种方法的局限。"
---

本地网络

# 在 Mac 上查找本地网络中的设备

macOS 有两种内置方式查看其他设备：ARP 表和 Bonjour。两者都不是对网络的完整扫描。

适用于：所有当前 macOS 版本。“本地网络”隐私设置适用于 macOS 15 Sequoia 及更高版本。 · 核查日期：2026年10月29日

## 症状

- 需要打印机、NAS 或其他设备的 IP 地址。
- 想知道网络中有哪些设备。
- 某个 App 找不到本地网络中的设备。

## 可能的原因

- **ARP 表只保存最近的设备。**Mac 只有在与某台设备交换过流量后，才会列出它。
- **Bonjour 只显示广播服务的设备。**不广播服务的设备不会出现。
- **某个 App 的“本地网络”访问权限已关闭。**在 macOS 15 Sequoia 及更高版本中，App 需要获得权限才能查找本地网络中的设备。
- **网络开启了客户端隔离。**一些访客网络和公共网络会阻止设备互相发现。

## 如何检查

1. 显示 ARP 表。它列出 Mac 当前已知的 IP 地址和硬件（MAC）地址。

   ```
   arp -a
   ```
2. 要跳过名称查询，加上 `-n`。

   ```
   arp -a -n
   ```
3. 用 Bonjour 浏览广播服务的设备。这个例子查找打印机。按 Control-C 停止。

   ```
   dns-sd -B _ipp._tcp
   ```
4. 浏览通过 SMB 共享文件的设备。

   ```
   dns-sd -B _smb._tcp
   ```
5. 如果某个 App 找不到设备，打开“系统设置”>“隐私与安全性”>“本地网络”，在列表中查找该 App。

## 如何修复

1. 如果该 App 在“本地网络”中处于关闭状态，将其打开。参阅“[App 找不到本地网络中的设备](https://kilobat.app/zh-hans/guides/local-network-permission.html)”。
2. 如果连接的是访客网络，改为连接主网络才能访问自己的设备。
3. 要把某台设备加入 ARP 表，先 ping 它的地址，然后再次运行 `arp -a`。

   ```
   ping -c 2 192.168.1.20
   ```
4. 在路由器设置中为重要设备分配固定地址，这样随时都能找到它们。

## 使用 Kilobat

1. Kilobat 根据 ARP 邻居缓存，列出 Mac 最近通信过的设备。这不是完整扫描。

   ```
   kilobat devices
   ```
2. 要包含 Bonjour 服务，加上 `--bonjour`。

   ```
   kilobat devices --bonjour
   ```
3. 要给设备起一个 Kilobat 会记住的名称，使用它的硬件地址。

   ```
   kilobat devices name aa:bb:cc:dd:ee:ff "Printer"
   ```
4. 要唤醒支持网络唤醒（Wake-on-LAN）的设备，发送唤醒数据包。Kilobat 无法确认设备是否已唤醒。

   ```
   kilobat wake aa:bb:cc:dd:ee:ff
   ```
5. 仪表盘中的“设备”标签页需要 Pro 版。

## 常见问题

**为什么 arp -a 没有显示所有设备？**

ARP 表只列出最近与 Mac 交换过流量的设备。处于睡眠或静默状态的设备不会出现。

**这些命令需要管理员密码吗？**

不需要。任何用户都可以使用 `arp -a` 和 `dns-sd -B`。删除 ARP 条目需要管理员权限。

## 参考资料

- arp(8)，macOS 27.2 自带的 man 手册页
- dns-sd(1)，macOS 27.2 自带的 man 手册页
- [Apple 支持：在 Mac 上控制对本地网络的访问](https://support.apple.com/guide/mac-help/control-access-to-your-local-network-on-mac-mchla4f49138/mac)

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本；在“终端”中用 `man <name>` 打开。

## 相关指南

- [App 找不到本地网络上的设备](https://kilobat.app/zh-hans/guides/local-network-permission.html): macOS 15 Sequoia 及更高版本会在 App 连接本地网络设备前先征求许可。
- [macOS 防火墙阻止传入连接](https://kilobat.app/zh-hans/guides/macos-firewall-incoming.html): macOS 防火墙控制其他电脑向 Mac 发起的连接。
- [Mac 使用了自分配 IP 地址](https://kilobat.app/zh-hans/guides/self-assigned-ip-address.html): 如果 Mac 收不到 DHCP 服务器的响应，它会从 169.254.0.0/16 中为自己分配一个链路本地地址。
- [Mac 上的 IP 地址冲突](https://kilobat.app/zh-hans/guides/ip-address-conflict-mac.html): 同一网络中的两台设备不能使用相同的 IP 地址。
