应立即用w、who、lsof和netstat命令分别检查SSH及VNC活跃会话:w显示TTY类型与IP,who精简列出远程登录者,lsof -i :22和netstat查ESTABLISHED连接,lsof -i :5900查VNC会话。

当你在Mac上开启了远程登录(SSH)或远程管理功能,又担心有未授权的用户正在连接你的设备时,需要立即确认当前有哪些活跃的远程会话正在接入——这一步不能只看“共享”设置是否开启,必须实时查验系统级连接状态。
用w命令查看所有活跃登录会话
1、打开终端,输入 w 并回车。
2、第一行显示系统运行时间与平均负载,第二行起每行代表一个活跃登录会话,首列即为用户名,第三列是TTY类型(如 ttys002 表示SSH连接,console 表示本地图形界面),第四列是登录来源IP(如 192.168.1.105 或 localhost)。
3、若某行的TTY以 pts/ 或 ttys 开头且USER不是你本机常用账户名,需重点核查该IP是否可信。
4、注意:w命令仅显示当前仍保持连接的会话,已断开但未清理的僵尸进程不会出现。
用who命令快速筛查远程登录者
who命令比w更轻量,输出精简,适合快速扫一眼谁在线。
1、终端中执行:who
2、输出格式为:用户名 终端 登录时间 来源IP,例如:admin ttys003 Sep 16 15:22 192.168.1.88。
3、只要来源不是 console 或 localhost,就代表是远程接入;【来源IP为空或显示“-”说明该会话未携带网络来源信息,可能是本地伪终端或异常连接】。
检查sshd进程关联的网络连接
这是最底层的验证方式,能发现w/who可能遗漏的半开放连接(比如刚握手未完成登录的TCP连接)。
方法一:用lsof列出监听与已建立的SSH连接
1、执行:sudo lsof -i :22 -s TCP:ESTABLISHED
2、输出中重点关注 USER 列(实际登录用户)、COMMAND 列(应为 sshd)、NAME 列(含远程IP和端口,如 192.168.1.200:54321→192.168.1.50:22)。
3、若看到陌生IP反复连接,说明有人正在尝试暴力破解,应立即关闭远程登录或加防火墙规则。
方法二:用netstat辅助定位(macOS 12+需先安装networking工具包)
1、执行:netstat -an | grep ':22' | grep 'ESTABLISHED'
2、结果中每行末尾的IP:端口组合就是远程客户端地址,可直接复制到浏览器查地理位置或加入黑名单。
排查Apple远程桌面(VNC)连接用户
如果你启用了“远程管理”而非仅“远程登录”,那么VNC协议连接不会出现在w或who里,必须单独查。
第一步:确认远程管理服务是否运行
1、执行:sudo launchctl list | grep -i ard
2、若返回类似 com.apple.ARDAgent 的条目,说明Apple Remote Desktop服务正在运行。
第二步:查当前VNC观察/控制会话
1、执行:sudo lsof -i :5900 -s TCP:ESTABLISHED
2、【注意:5900是VNC默认端口,若你在“远程管理→电脑设置”中改过VNC端口,此处必须替换为对应端口号】
3、输出中的远程IP即为正在通过屏幕共享连接你Mac的设备地址。

















