在统信UOS中为单个应用配置沙盒级网络隔离,需启用沙箱总开关、编辑对应/opt/apps//sandbox.json文件添加network.allow、domains及firewall.outbound规则,并确保应用从菜单启动以生效隔离。

在统信UOS中为单个应用配置沙盒级网络隔离,需绕过图形界面直接编辑其沙箱权限文件,确保该应用仅能访问指定域名或端口,防止越权联网行为。
确认应用是否已启用沙箱机制
并非所有UOS应用默认运行于沙箱环境。打开终端,执行:
gsettings get com.deepin.dde.deepin-defender sandbox-apps-enabled
若返回 false,则先启用沙箱总开关:
gsettings set com.deepin.dde.deepin-defender sandbox-apps-enabled true
注意:此操作需重启应用生效,且仅对已声明沙箱支持的.desktop文件有效。未在/usr/share/applications/中配置X-UOS-Sandbox-Permissions字段的应用无法被沙盒化。
为指定应用添加网络白名单规则
以微信(com.tencent.wechat)为例:
第一步:确认应用沙箱配置路径
UOS沙箱策略文件统一存放在/opt/apps/
第二步:创建或编辑sandbox.json文件
若文件不存在,用sudo nano /opt/apps/com.tencent.wechat/sandbox.json新建;若存在,直接编辑。写入以下JSON结构(保留原有内容,仅追加或修改permissions.network部分):
{"permissions":{"network":{"allow":true,"domains":["*.wechat.com","api.weixin.qq.com","mp.weixin.qq.com"]},"firewall":{"outbound":["443","8080"]}}}
第三步:赋予文件正确权限并重启应用
执行sudo chown root:root /opt/apps/com.tencent.wechat/sandbox.json && sudo chmod 644 /opt/apps/com.tencent.wechat/sandbox.json,然后完全退出微信进程(包括托盘残留),重新启动。
【关键前提】该配置仅在应用以沙箱模式启动时生效。若通过终端直接运行/opt/apps/com.tencent.wechat/files/wechat会绕过沙箱,必须从应用菜单或.dock点击启动。
验证网络隔离是否生效
启动应用后,在终端中运行:
sudo ss -tunp | grep wechat
观察输出中是否仅出现目标域名解析后的IP及443/8080端口连接。若发现其他端口(如1080、8000)或非白名单域名的连接尝试,说明沙箱未加载或配置有误。
此时应检查:1)sandbox.json语法是否为合法JSON(可用jsonlint校验);2)应用是否确为沙箱模式启动(ps aux | grep wechat中应含bwrap或--sandbox参数);3)防火墙ufw是否处于enable状态——ufw若关闭,firewall.outbound规则将不生效。











