frp · 项目介绍

frp

本页由项目自动归档生成,源码与最新进展以 GitHub 仓库为准。

项目简介

一个个人部署 / 运维工具箱仓库,围绕 frp 内网穿透与 Nginx 反代,把家宽内网的 NAS、Ollama、Hexo 博客等服务统一暴露到公网,并附带的 Hexo 博客自动发布流水线与「哆啦工具袋」Web 工具集。它面向需要在无固定公网 IP 环境下对外可达内网服务、并沉淀可复用运维配置的开发者。

技术栈

维度 技术
主要语言/框架 Shell(运维脚本)、Node.js / JavaScript(hexo-publish.js、toolbox-web/server.js、add-more-tag.js)、Nginx 配置、TOML(frp v0.5x 配置)
关键依赖/库 frp v0.67.0(frps / frpc 二进制)、OpenResty / Nginx、fswatch(Hexo 自动发布监听)、Hexo(静态博客生成)
数据存储 无数据库;Hexo 静态产物(website/public)、toolbox-web/data/ 本地数据、Nginx 本地托管
运行/部署方式 服务端(CentOS / OpenCloudOS)跑 frps + OpenResty;客户端(macOS)跑 frpc;Nginx 做 HTTPS 终止与子域名反代;hexo-fswatch.sh + fswatch 监听 Hexo 源文件自动发布

核心功能 / 亮点

  • frp 内网穿透(frpc.toml / frps.toml / subdomain-setup.md):按子域名分发多个服务入口;另含 frpc.ali.toml 说明自建与云厂商服务端并存。
  • Nginx 反代与 HTTPS 终止(nginx.conf 的 include conf.d/*.conf、local-nginx.conf、ollama-proxy.conf):conf.d/ 下 www / myllm / movie / music / siyuan / toolbox 等子域名虚拟主机;ollama-proxy.conf 在 :11435 反代本地 Ollama :11434 并关闭缓冲以支持流式。
  • Hexo 博客自动发布流水线(hexo-publish.js + hexo-fswatch.sh + install-fswatch.sh + HEXO_PUBLISH_README.md):fswatch 监听文件变化,保存即脱敏并发布到 Hexo 静态博客。
  • 「哆啦工具袋」Web 工具集(toolbox-web/:server.js、index.html、pages/、data/):基于 Node 的轻量工具页。
  • 运维文档沉淀(frp-guide.md 安装配置指南、subdomain-setup.md 子域名记录、website-plan.md 域名 / 目录方案、ai-assistant/ai-assistant-architecture.md 架构说明)。
  • 辅助小工具(add-more-tag.js 批量给文章加 tag、start-blog.sh / start-minimal.sh 启动脚本、website/ 为 Hexo 站点源码)。

目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
frp/
├── frpc.toml / frpc.ali.toml / frps.toml # frp 客户端 / 服务端配置(TOML)
├── nginx.conf / local-nginx.conf / ollama-proxy.conf # Nginx 配置
├── conf.d/ # 子域名虚拟主机(www/myllm/movie/music/siyuan/toolbox)
├── hexo-publish.js / hexo-fswatch.sh / install-fswatch.sh / hexo-config.json # Hexo 自动发布
├── HEXO_PUBLISH_README.md # 脱敏发布工具说明
├── toolbox-web/ # 「哆啦工具袋」Web 工具集(server.js / pages / data)
├── website/ # Hexo 博客站点源码(_config.yml / themes / source)
├── ai-assistant/ # AI 助手架构文档
├── add-more-tag.js # 批量加 tag 小工具
├── start-blog.sh / start-minimal.sh # 启动脚本
├── frp-guide.md / subdomain-setup.md / website-plan.md # 运维文档
└── custom.css

相关链接

  • GitHub 仓库:frp

补充:一套穿透配置撑起「内网服务对外可达」

这套东西解决的是一个很实际的问题:家宽没有固定公网 IP,但内网跑着 NAS、Ollama、博客这些想在外面访问的服务。

几个组成部分各自的作用:

  • frp 客户端/服务端配置(frpc.toml / frps.toml / subdomain-setup):把内网端口映射出去。用 subdomain-setup 按子域名分发,一个服务端能给多个服务各开一个入口,不用记一堆端口号。配置文件是 TOML(frp v0.5x 之后的格式,旧版是 ini),另外还有一份 frpc.ali.toml,说明服务端不止一套,自建和云厂商并存。
  • Nginx 反代(nginx.conf / local-nginx.conf / ollama-proxy.conf):frp 只管打通链路,HTTP 层的路由、HTTPS 终止、多服务复用 80/443 交给 Nginx。其中 ollama-proxy.conf 意味着本地跑的大模型也走同一套对外入口。
  • Hexo 博客自动发布(hexo-publish.js + hexo-fswatch.sh):用 fswatch 监听文件变化,一保存就自动触发发布。把「写完 → 上线」从一串手动命令压缩成一次保存,这个自动化本身不复杂,但它决定了我愿不愿意频繁更新博客。
  • 「哆啦工具袋」Web 工具集(toolbox-web/):同一套基础设施上顺手挂的轻量工具页。

这套配置沉淀下来的价值不在某个文件,而在一处内网、多处可达——NAS、本地模型、博客共用同一套穿透和反代规则,新增服务时照抄一份 conf 就行。