Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
fence — 轻量级、无需容器的沙箱,用于在网络和文件系统限制下运行命令。 | Kitploit
工具/GitHubGitHub/fencesandbox/fence
防御工具通用工具容器安全动态分析 (沙盒)脚本与自动化网络安全DevSecOps实用工具与框架
GitHubfencesandbox/fence

fence

轻量级、无需容器的沙箱,用于在网络和文件系统限制下运行命令。

查看仓库
8973952天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Fence 横幅

GitHub Release 构建与测试 文档 Ask DeepWiki 许可证

Fence 将命令包裹在沙箱中,默认阻止网络访问,并根据可配置的规则限制文件系统操作。它最适合运行半可信代码(包安装、构建脚本、CI 任务、不熟悉的仓库)并控制其副作用,也可以作为纵深防御手段补充 AI 编码智能体。

root@kitploit:~
# 默认阻止所有网络访问
fence curl https://example.com  # → 403 禁止

# 允许特定域名
fence -t code npm install  # → 使用 'code' 模板,允许 npm/pypi 等

# 阻止危险命令
fence -c "rm -rf /"  # → 被命令拒绝规则阻止

Fence Claude Code 演示

Fence 同时也是 CLI 智能体的权限管理器。可与流行的编码智能体配合使用,如 Claude Code、Codex、Amp、Gemini CLI、GitHub Copilot、OpenCode、Factory (Droid) CLI 等 - 详见 agents.md。

安装

[!NOTE] Fence 已从 github.com/Use-Tusk/fence 迁移至 github.com/fencesandbox/fence。 如果你之前通过 Homebrew 从旧的 Tusk tap 安装,请切换到新 tap:

root@kitploit:~
brew uninstall use-tusk/tap/fence
brew untap use-tusk/tap
brew tap fencesandbox/tap
brew install fencesandbox/tap/fence

如果你通过 go install 安装,请从新的模块路径重新安装:

root@kitploit:~
go install github.com/fencesandbox/fence/cmd/fence@latest

macOS / Linux:

root@kitploit:~
curl -fsSL https://cli.fencesandbox.com/install.sh | sh

Homebrew (macOS):

root@kitploit:~
brew tap fencesandbox/tap
brew install fencesandbox/tap/fence

Nix (macOS、Linux、Windows (WSL)):

root@kitploit:~
nix run nixpkgs#fence -- --help

这将直接从仓库运行,无需安装 fence。如果你想安装它,请遵循 NixOS 或 nix-darwin 的指南。

其他安装方法

Go 安装:

root@kitploit:~
go install github.com/fencesandbox/fence/cmd/fence@latest

从源码构建:

root@kitploit:~
git clone https://github.com/fencesandbox/fence
cd fence
go build -o fence ./cmd/fence

Linux 的额外要求:

  • bubblewrap(用于沙箱化)
  • socat(用于网络桥接)
  • bpftrace(可选,在使用 -m 监控时提供文件系统违规可见性)

用法

基础

root@kitploit:~
# 运行命令,阻止所有网络(默认不允许任何域名)
fence curl https://example.com

# 运行包含 shell 展开的命令
fence -c "echo hello && ls"

# 启用调试日志
fence -d curl https://example.com

# 使用模板
fence -t code -- claude  # 使用 `code` 模板配置运行 Claude Code

# 监控模式(显示违规)
fence -m npm install

# 将 Fence 自身的监控/调试日志发送到文件
fence -m --fence-log-file /tmp/fence.log -- claude
tail -f /tmp/fence.log

# 检查配置继承链及激活的合并配置
fence config show

# 显示所有命令和选项
fence --help

[!TIP] 需要向正在运行的命令传递标志?使用 -- 将 Fence 标志与命令标志分隔开,例如:

root@kitploit:~
fence -- claude --dangerously-skip-permissions

配置

当未提供 --settings 时,Fence 首先在当前目录及父目录中查找 fence.jsonc(或 fence.json)。如果未找到,则回退到 ~/.config/fence/fence.{jsonc,json}。两种扩展均视为 JSONC(允许注释和尾部逗号)。有关更多详细信息,请参阅 配置参考。

root@kitploit:~
{
  "$schema": "https://raw.githubusercontent.com/fencesandbox/fence/main/docs/schema/fence.schema.json",
  "extends": "code",
  "network": { "allowedDomains": ["private.company.com"] },
  "filesystem": { "allowWrite": ["."] },
  "command": { "deny": ["git push", "npm publish"] }
}

对于仓库本地的覆盖,位于每个用户的正常 Fence 配置之上,使用:

root@kitploit:~
{
  "extends": "@base",
  "filesystem": { "allowWrite": ["."] }
}

使用 fence --settings ./custom.json 指定不同的配置。

无需运行命令即可检查激活的配置:

root@kitploit:~
fence config show
fence config show --settings ./custom.json
fence config show --template code

fence config show 将配置链打印到 stderr,将完全解析后的配置以纯 JSON 格式打印到 stdout,从而可以将 JSON 通过管道传递给 jq 等工具。

创建具有合理默认值的入门配置:

root@kitploit:~
# 在默认路径创建配置,内容为:
# { "extends": "code" }
fence config init

# 包含支架数组作为可编辑提示
fence config init --scaffold

从 Claude Code 导入

root@kitploit:~
fence import --claude --save

特性

  • 网络隔离 - 默认阻止所有出站;通过配置允许特定域名
  • 文件系统限制 - 控制读/写访问路径
  • 命令阻止 - 阻止危险命令,如 rm -rf /、git push
  • SSH 命令过滤 - 控制允许通过 SSH 执行的主机和命令
  • 内置模板 - 针对常见工作流程的预配置规则集
  • 违规监控 - 实时记录被阻止的请求(-m)
  • 跨平台 - macOS(sandbox-exec)+ Linux(bubblewrap)

Fence 可作为 Go 包或 CLI 工具使用。

文档

完整文档托管在 fencesandbox.com/docs。

快速链接:

  • 快速入门(源码)
  • 配置参考(源码)
  • 智能体钩子(源码)
  • 安全模型(源码)
  • Go 库用法(源码)
  • 架构(源码)

致谢

灵感来源于 Anthropic 的 sandbox-runtime。

下载工具