加载中...
macOS 访问工控机(10.x.x.x)踩坑与排雷指南
发表于:2026-09-01 | 分类: 网络

macOS 访问工控机(10.x.x.x)踩坑与排雷指南

1. 背景与现象

在 macOS 上调试内网工控机(IP:10.0.0.32)时,遇到了一系列“诡异”的网络不通问题:

  • Chrome 浏览器访问 http://10.0.0.32:7688 报错:ERR_ADDRESS_UNREACHABLE
  • Royal TSX(第三方 SSH 客户端)连接 10.0.0.32 超时或拒绝连接。
  • macOS 自带终端(Terminal) 使用 SSH 连接正常(前提是用户名和密码输入正确)。

2. 根本原因分析

2.1 苹果的“本地网络”隐私锁

从 macOS Catalina 开始,苹果强制要求:任何 App 尝试连接私有 IP 地址(内网)时,必须经过用户明确授权

触发条件(数学判断):
macOS 不关心对方是工控机、打印机还是 NAS,只判断目标 IP 是否属于以下三大标准私有地址段:

  • 10.0.0.0/8 (10.x.x.x) —— 你的工控机在此范围
  • 172.16.0.0/12 (172.16.x.x ~ 172.31.x.x)
  • 192.168.0.0/16 (192.168.x.x)

只要目标 IP 命中上述范围,macOS 网络内核会在底层直接拦截数据包,导致 App 无法收到任何回包。

2.2 为什么“自带终端”能连,而“Royal TSX / Chrome”不能?

权限是按 App(应用) 独立存储的:

  • 自带终端(Terminal.app):可能在系统安装时默认获得了权限,或者之前某次弹窗被你点过“允许”,因此它不受阻。*(注:本例中一开始连不上是因为用户名输错,属于认证失败,与权限无关。)*
  • Chrome & Royal TSX:作为第三方 App,macOS 严格限制其内网访问。除非用户在弹窗中点“允许”或在系统设置中手动开权限,否则系统会直接丢弃发往 10.0.0.32 的数据包。

区分报错技巧

  • 权限问题:连接超时(Timeout)或 ERR_ADDRESS_UNREACHABLE(Chrome)。
  • 用户名/密码错误:提示 Authentication failedPermission denied(SSH)。

3. 解决方案

3.1 统一设置路径(系统级)

  1. 点击左上角苹果图标 > 系统设置
  2. 进入 隐私与安全性 > 本地网络
  3. 在右侧列表中找到以下 App,并打开开关
    • Google Chrome
    • Royal TSX (或 Royal TSV
    • (可选)Terminal —— 如果自带终端也被拦截,一并开启。

操作提示

  • 修改权限后,必须完全退出(Cmd + Q)并重启对应的 App,改动才会生效。
  • 如果列表中没有某个 App,可以尝试在该 App 中执行一次 ping 10.0.0.32 或随便输入一个 SSH 连接,系统检测到请求后会自动在列表中生成条目。

3.2 Chrome 浏览器补充说明

如果在系统设置中已开启权限,但 Chrome 依然报错,可以检查内部实验性功能(通常不需要改):

  • 地址栏输入 chrome://flags/#local-network-access-check
  • 确保该项为 DefaultDisabled(默认为 Default 即可,系统权限优先级更高)。

4. 避坑总结

现象 可能原因 解决办法
Chrome 无法打开内网 Web 页面 macOS 本地网络权限未开启 系统设置 -> 隐私 -> 本地网络 -> 勾选 Chrome
Royal TSX SSH 连接超时 macOS 本地网络权限未开启 系统设置 -> 隐私 -> 本地网络 -> 勾选 Royal TSX
Terminal SSH 提示 Permission denied 用户名或密码错误(非网络问题) 核对工控机的登录凭据
Terminal SSH 提示 Connection timed out Terminal 也被系统拦截 在本地网络设置中勾选 Terminal

核心结论
遇到内网 IP(尤其是 10.172.16192.168 开头)连不上时,第一反应先去检查 macOS 的“本地网络”隐私设置,不要先怀疑网线、防火墙或工控机挂了。大多数情况下,这只是苹果给第三方 App 套上的“紧箍咒”在作祟。

下一篇:
Claude Code 免费接入 DeepSeek V4 教程
本文目录
本文目录