Telegram当无限网盘用?手把手教你搭S3+WebDAV网关 tgNAS
📅 2026年05月27日 · 技术
在 linux.do 刷到一个离谱的项目
前两天在 linux.do 逛,看到有人说「用 Telegram 当存储后端,对外暴露 S3 和 WebDAV」——第一反应:概念项目吧。
点进去一看,Go 写的,Docker 一键部署,4 天 46 个 commit,刚发 v0.1.0。关键是它真的能跑。我也搭了一个,下面手把手教你怎么搞。
它干了什么
简单说:起一个 HTTP 服务,把 S3 和 WebDAV 请求翻译成 Telegram Bot API 调用。文件存在 Telegram 聊天消息里,本地用一个 SQLite 记录映射关系,对外同时暴露 S3 和 WebDAV 两个协议。

怎么搭建
第一步:准备 Telegram
找 @BotFather 创建一个 Bot → 拿到 Bot Token → 建一个群组 → 把 Bot 拉进去给管理员权限 → 记下群组的 Chat ID(负数的那个)。
第二步:部署
在你的服务器上执行:
mkdir -p tgnas/data && cd tgnas
wget -P data https://github.com/aahl/tgnas/raw/refs/heads/dev/data/config.yaml
cat > .env << EOF
TGNAS_SECRET_KEY=你设个密码
TGNAS_TELEGRAM_BOT_TOKEN=Bot的Token
TGNAS_TELEGRAM_CHAT_ID=-群组ID
EOF
docker compose up -d
镜像在 ghcr.io/aahl/tgnas,不用自己编译。docker-compose.yml 去项目仓库复制,就十几行。启动后 9000 端口同时跑 S3 和 WebDAV,用哪个协议取决于你的场景。
怎么用
S3 方式(适合服务器间传文件、rclone 同步)
aws --endpoint-url http://你的服务器IP:9000 s3 ls s3://tgnas/
Access Key 是 admin,Secret Key 就是你设的密码。任何兼容 S3 的工具都能用——rclone、MinIO Client、Duplicati 备份。
WebDAV 方式(适合电脑挂载)
macOS 访达直接 ⌘K 连接服务器,填 http://你的服务器IP:9000/dav/。Windows 装个免费工具(如 RaiDrive)也是一样的操作。

挂载后就是本地文件夹的体验,拖拽文件直接存进 Telegram,你完全感觉不到 Telegram 的存在。
浏览器看文件
配个 Nginx 反代到 9000 端口,加上 HTTPS,然后用 PROPFIND 请求就能列目录(普通浏览器 GET 请求不行,这是 WebDAV 协议决定的)。如果想直接浏览器管理文件,可以在同域名下部署一个轻量 WebDAV 网页客户端。
靠不靠谱
4 天的项目,稳定性还得观察。但方向确实好——Telegram 免费存(单文件上限 2GB),套上标准协议就能接入整个 S3 和 WebDAV 生态,玩法很多。代码质量不差,有完整的 trusted proxy 支持,WebDAV 的 COPY/MOVE 是元数据级别操作(不下载不重传)。
就是得提醒一句:别拿它存重要的东西。Telegram 哪天改 API 或者限速,你的「网盘」可能就炸了。但当玩具或者临时文件中转站,体验真的不错。
项目地址:https://github.com/aahl/tgnas