权限档的网络与 Socket
分别开启命令联网与域名代理,限制本地服务访问,配置 Unix socket 例外。
网络权限有两个独立开关:profile 的 network.enabled 授予命令联网,features.network_proxy 启用执行域名规则的代理。只设置域名表不会开启代理。
最小配置
default_permissions = "project-net"
[features]
network_proxy = true
[permissions.project-net]
extends = ":workspace"
[permissions.project-net.network]
enabled = true
[permissions.project-net.network.domains]
"api.openai.com" = "allow"将目标换成工作实际需要的主机。管理员启用 experimental_network 也可以启动代理,且受管要求仍约束用户配置。
| 联网 | 代理 | 行为 |
|---|---|---|
| 关闭 | 任意 | 命令无法联网 |
| 开启 | 关闭 | 直接联网,profile 域名限制不执行 |
| 开启 | 开启 | 通过代理执行域名策略;没有 Allow 时阻止外部目的地 |
域名规则
精确主机只匹配自身,*.example.com 匹配子域,**.example.com 匹配根域和子域。* 只可用于 Allow,代表未被拒绝的公共主机。匹配的 Deny 优先于 Allow。
主机模式会去掉首尾空格、尾点、端口或括号,并转为小写。默认 HTTP proxy listener 为 http://127.0.0.1:3128,SOCKS5 为 http://127.0.0.1:8081;SOCKS5 与其 UDP 支持默认开启。普通开发通常不需修改监听设置。
本地和私有目的地
代理默认保护本地与私有网络。需要访问字面目的地时,显式允许 localhost 或精确 IP,例如:
[permissions.project-net.network.domains]
"localhost" = "allow"
"127.0.0.1" = "allow"这同样需要合并到已有表。若需要访问解析到本地/私有地址的已允许主机名,还需 network.allow_local_binding=true。该键默认 false,不能仅凭允许某个域名推断其私网解析也可达。
Unix sockets
[permissions.project-net.network.unix_sockets]
"/var/run/docker.sock" = "allow"
"/tmp/old.sock" = "deny"Socket 是访问 Docker 等本地服务的独立例外;deny 可撤销继承的允许项,拒绝项不进入有效允许列表。启用 socket 时让代理监听保持在 loopback。
这些规则约束命令网络,不代表已约束搜索、MCP 或所有应用流量,见实施边界。