Hugo 博客部署
一句话版:Hugo 把「写文章」变成「发网站」只要几秒钟,内网云隧道再给它开扇公网大门——博客放自家、静态不怕黑、公网随意看。
一、为什么选 Hugo + 内网云隧道?
搭建个人博客有很多方案,为什么推荐 Hugo + 内网云隧道 这个组合?
| 方案 | 优点 | 缺点 |
|---|---|---|
| Hexo | 生态丰富,插件多 | Node.js 依赖重,国内 npm 源慢 |
| WordPress | 功能强大,所见即所得 | 需要 MySQL + PHP,资源占用高 |
| GitHub Pages | 免费托管 | 国内访问慢,自定义域名麻烦 |
| Hugo + 内网云 ✅ | 零依赖、极速构建、公网访问 | 需要自有主机 |
Hugo 的核心优势:
- ⚡ 极速构建 — 500 篇文章构建仅需 161ms
- 📦 零依赖 — 单个二进制文件,无需 Node.js/Python/PHP
- 🔒 纯静态 — 无数据库、无运行时漏洞
- 🌙 主题丰富 — PaperMod、Stack、Next 等优质主题
内网云隧道的价值:
- 🌐 公网访问 — 家里的主机也能对外提供服务
- 🔐 数据自有 — 站点文件都留在自己机器上,随时可迁移
- 💰 零成本 — 不需要云服务器、不需要域名备案
二、环境准备
2.1 架构总览
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 读者(公网) │────▶│ 内网云平台 │────▶│ 你的主机 │
└──────────────┘ └──────────────┘ └──────────────┘
访问你的公网域名 SSH 反向隧道 Hugo Server
(80/443 端口) nssh 客户端 1313 端口
2.2 你需要准备什么
| 需要 | 说明 |
|---|---|
| 一台主机 | 能长期开机的电脑、小主机即可,Windows/macOS/Linux 都行,下文以 Linux 为例 |
| 配置 | Hugo 很轻量,512MB 内存都绰绰有余,闲置的旧电脑就能跑 |
| 网络 | 主机 能访问 GitHub(下载 Hugo 与主题用) |
不用专门买服务器:手头淘汰的旧笔记本、小主机都行——Hugo 只占一点点资源,剩下的交给内网云隧道去「开门」。
2.3 登录主机
下面的安装操作都在主机上执行。如果你远程操作,先用 SSH 登录(把 IP 换成主机的真实内网 IP):
ssh root@<你的内网IP>
# 建议配置 SSH 密钥登录,比每次手动输密码更安全
三、安装 Hugo
3.1 下载 Hugo 二进制
Hugo 是单个二进制文件,无需安装依赖:
# 下载 Hugo extended(支持 SCSS/SASS)
HUGO_VER="0.161.1"
wget -q "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VER}/hugo_extended_${HUGO_VER}_linux-amd64.tar.gz" -O hugo.tar.gz
tar xzf hugo.tar.gz hugo
mv hugo /usr/local/bin/hugo
chmod +x /usr/local/bin/hugo
rm -f hugo.tar.gz
# 验证
hugo version
# → hugo v0.161.1+extended linux/amd64
💡 GitHub 下载慢?可以给 wget 配代理或改用国内镜像加速下载,具体以你本地网络环境为准。
3.2 安装 Dart Sass
PaperMod 主题需要 Dart Sass 编译 SCSS:
SASS_VER="1.99.0"
wget -q "https://github.com/sass/dart-sass/releases/download/${SASS_VER}/dart-sass-${SASS_VER}-linux-x64.tar.gz" -O sass.tar.gz
tar xzf sass.tar.gz
mv dart-sass /opt/dart-sass
ln -sf /opt/dart-sass/sass /usr/local/bin/sass
rm -f sass.tar.gz
# 验证
sass --version
# → 1.99.0
⚠️ 为什么需要 Dart Sass? Hugo 从 v0.114 开始弃用了内置的 LibSass,转而使用 Dart Sass。PaperMod 主题使用 SCSS 格式,必须安装 Dart Sass 才能编译。