返回顶部
i

intranet内网文件服务器

Lightweight local HTTP file server with plugin support. Serves static files from a webroot, mounts plugin directories at URL prefixes via config, and runs index.py entry points as CGI.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 3.2.7
安全检测
已通过
1,365
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

intranet

内网服务

轻量级本地HTTP文件服务器——无需Apache/nginx,无需root权限。可提供静态文件服务、挂载插件目录,并将index.py入口点作为CGI运行。

入口点: {baseDir}/scripts/intranet.py

安装

请参阅 SETUP.md 了解前置条件和安装说明。

命令

bash
python3 {baseDir}/scripts/intranet.py start # 在默认端口8080启动
python3 {baseDir}/scripts/intranet.py start --port 9000 # 自定义端口
python3 {baseDir}/scripts/intranet.py start --host 0.0.0.0 # 局域网访问(需要token + allowed_hosts)
python3 {baseDir}/scripts/intranet.py start --token SECRET # 启用Bearer Token认证
python3 {baseDir}/scripts/intranet.py status # 检查运行状态
python3 {baseDir}/scripts/intranet.py stop # 停止服务器

目录结构

{workspace}/intranet/
├── config.json # 服务器配置(不对外提供)
└── www/ # Web根目录(存放对外提供的文件)
├── index.html
└── ...

配置文件位于 {workspace}/intranet/config.json,Web根目录为 {workspace}/intranet/www/。配置文件永远不会通过HTTP暴露。

插件

插件可将外部目录挂载到URL前缀下。在 config.json 中配置:

json
{
plugins: {
banker: {workspace}/skills/banker/web,
deliveries: {workspace}/skills/deliveries/web
}
}

插件配置支持简单格式(仅静态文件)和扩展格式(带CGI哈希值):

json
{
plugins: {
static-only: /path/to/dir,
with-cgi: {
dir: /path/to/dir,
hash: sha256:abc123...
}
}
}

  • - 插件路径必须在工作空间内
  • 如果启用了CGI且插件包含 hash,则插件根目录下的 index.py 将处理所有子路径——但仅在其SHA-256哈希值匹配时生效
  • 没有 hash 的插件仅提供静态文件(即使全局启用了CGI,也会被阻止)
  • 生成哈希值:shasum -a 256 /path/to/index.py

CGI执行

默认关闭。 在 config.json 中启用:

json
{
cgi: true
}

启用后,只有名为 index.py 的文件可以作为CGI执行:

  • - Web根目录:任何子目录中的 index.py 处理该目录的请求
  • 插件:插件根目录下的 index.py 处理所有插件子路径
  • 所有其他 .py 文件 → 403禁止访问(既不提供也不执行)
  • 脚本必须设置可执行位(chmod +x)

安全

  • - Web根目录隔离 — config.json 位于Web根目录(www/)之外,永远不会被提供
  • CGI默认关闭 — 必须通过 config.json 中的 cgi: true 显式启用
  • 路径限制 — 所有解析后的路径必须在其基础目录内。符号链接会被追踪,但会检查解析后的目标是否在限定范围内
  • 插件白名单 — 仅在 config.json 中显式注册的目录才会被提供;且必须在工作空间内
  • CGI仅限于 index.py — 不允许任意脚本执行;插件CGI需要在 config.json 中包含SHA-256哈希值。Web根目录CGI不需要哈希值(Web根目录文件由你直接控制)
  • 除 index.py 入口点外,所有 .py 文件均被阻止(不作为文本提供,也不执行)
  • 主机白名单 — 可选的 allowedhosts 限制接受的 Host 头
  • Token认证 — 通过 --token 标志或 config.json 提供可选的Bearer Token。浏览器客户端访问 ?token=SECRET 一次 → 设置会话Cookie → 后续所有导航均可正常使用。API客户端使用 Authorization: Bearer 头。
  • 路径遍历防护 — 所有路径在提供前都会进行解析和验证
  • 默认绑定:127.0.0.1(仅回环地址)。通过 --host 0.0.0.0 进行局域网访问需要同时启用Token认证和 config.json 中的 allowedhosts。

工作空间检测

服务器通过从 $PWD(或脚本位置)向上遍历查找 skills/ 目录来自动检测工作空间。检测到的路径会在启动时打印出来,以便你进行验证。

要跳过自动发现,请将 INTRANET_WORKSPACE 设置为工作空间根目录:

bash
INTRANET_WORKSPACE=/path/to/workspace python3 scripts/intranet.py start

说明

  • - 所有状态文件均位于工作空间内:
- 配置:{workspace}/intranet/config.json - PID:{workspace}/intranet/.pid - 运行时:{workspace}/intranet/.conf - Web根目录:{workspace}/intranet/www/
  • - 不会在工作空间外写入任何文件
  • CGI执行超时时间为30秒(启用时)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 intranet-1776420059 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 intranet-1776420059 技能

通过命令行安装

skillhub install intranet-1776420059

下载

⬇ 下载 intranet v3.2.7(免费)

文件大小: 15.69 KB | 发布时间: 2026-4-17 20:12

v3.2.7 最新 2026-4-17 20:12
Make session cookies deterministic so they survive server restarts

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部