打开它
总开关、端点所监听的那个端口,以及让它保持在本地的那四件事。
刚装好的机器对代理什么都不声明。代理访问只隔着一个开关,而这个开关是代替认证的那三道关卡里的第一道:总开关、按范围的那些开关,以及诊断日志。
开关与端口
总开关默认是关的。在代理页面上把它打开(打开这个页面需要你本地角色里那个管代理的权限);端点随后在 http://127.0.0.1:<port>/mcp 上以 Streamable HTTP 监听。应用缩到托盘里运行时,代理同样连得上。
| 设置 | 作用 | 取值 | 默认值 |
|---|---|---|---|
| 启用代理访问(MCP) | 启动或停止这个端点。关 = 没有端点,什么都不声明。 | 开 / 关 | 关 |
| 端口 | 端点监听的本地端口。更改它会重启代理访问,页面上每一段连接代码也跟着更新。 | 1024–65535(超出范围的值会被夹到范围内) | 18181 |
页面上的一切都自动保存;没有“保存”按钮。端点下面那个已授予读数数的是有多少个能力组是开着的、其中又有多少个能写运行中的现场设备,这样工作站暴露了多少,一眼就读得出来。
这个端点是怎么被保护的
- 只在本地回环地址上。 套接字绑在
127.0.0.1上,绝不绑在网络接口上。厂区网络够不着它。 - 来自浏览器的请求被拒绝。 光靠绑定还挡不住一个恶意网页把它自己的域名重绑到 127.0.0.1,所以端点还会检查浏览器伪造不了的那两个头:
Host不是本地的请求,或者带着一个非本地Origin的请求,会在它连会话都还没打开之前就被 403 拒绝。每一次拒绝都在事件里按代理这个区域记进日志,所以一台正被某个浏览器标签页探测的工作站会留下痕迹。 - 端点没有认证,这是有意的。 那些关卡就是总开关、按范围的那些开关和诊断日志。万一你要通过一条隧道把端点暴露出去,认证必须住在那条隧道上(见 ChatGPT 和其他走云端的客户端)。
- 工具清单等于已启用的那些范围。 一个已禁用范围的工具根本不会被声明出来:它们是不存在,而不是“答一句不行”。改动任何一个开关都会重启这个端点,所以代理看见的东西永远和你允许的东西一致。