玩客云部署Hexo,通过cloudflare隧道实现公网访问
📋 项目概述
使用 Hexo 静态博客框架,通过 Cloudflare Tunnel 在内网 NAS 上部署,实现公网访问。
🛠️ 环境要求
本地开发环境
- Node.js 14+
- Git
- Hexo CLI
服务器环境
- Linux NAS/服务器
- Python 3.x
- Cloudflared
📁 项目结构
text
1 | my-ws01-blog/ |
🚀 完整部署流程
第一阶段:本地开发环境搭建
1. 安装 Hexo
bash
1 | npm install -g hexo-cli |
2. 创建博客项目
bash
1 | hexo init my-ws01-blog |
3. 安装主题和插件
ws01-note主题:https://github.com/K1314047/hexo-theme-ws01-note
bash
1 | # 搜索插件 |
4. 测试本地运行
bash
1 | hexo clean && hexo generate && hexo server |
第二阶段:NAS 环境准备
1. 创建网站目录
bash
1 | mkdir -p /var/www/hexo-blog |
2. 安装 Cloudflared
bash
1 | wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O cloudflared |
3. Cloudflare 认证
bash
1 | cloudflared tunnel login |
4. 创建隧道
bash
1 | cloudflared tunnel create hexo-blog |
5. 配置隧道
bash
1 | mkdir -p ~/.cloudflared |
6. 配置 DNS
bash
1 | cloudflared tunnel route dns hexo-blog blog.iove.eu.org |
第三阶段:Web 服务配置
方法一:使用 systemd 服务(推荐)
bash
1 | cat > /etc/systemd/system/hexo-blog.service << 'EOF' |
方法二:使用 screen(备用)
bash
1 | screen -S hexo-server -d -m python3 -m http.server 4000 |
第四阶段:部署和更新
1. 首次部署
bash
1 | # 本地生成静态文件 |
2. 创建部署脚本 deploy.sh
bash
1 | #!/bin/bash |
3. 配置 SSH 密钥免密码登录
bash
1 | # 本地生成密钥 |
⚠️ 常见问题及解决方案
问题 1: hexo: command not found
原因: Node.js 或 Hexo 未安装
解决:
bash
1 | npm install -g hexo-cli |
问题 2: Address already in use
原因: 端口被占用或服务已在运行
解决:
bash
1 | # 检查占用进程 |
问题 3: 关闭 SSH 后服务停止
原因: 服务在前台运行
解决: 使用 systemd 或 screen
bash
1 | # systemd 方式 |
问题 4: Cloudflare Tunnel 连接失败
解决:
bash
1 | # 检查隧道状态 |
问题 5: 代码高亮不显示
解决: 在主题 CSS 中添加高亮样式
css
1 | figure.highlight { |
🔧 维护命令
服务管理
bash
1 | # 启动 Web 服务 |
Cloudflare Tunnel 管理
bash
1 | # 查看隧道列表 |
文件管理
bash
1 | # 检查网站文件 |
📝 日常使用流程
写作新文章
bash
1 | hexo new "文章标题" |
本地预览
bash
1 | hexo clean && hexo generate && hexo server |
部署更新
bash
1 | # 使用脚本一键部署 |
🎯 快速检查清单
部署完成后验证:
- 本地
hexo server可访问 - NAS 上
curl http://localhost:4000返回 200 netstat -tulpn | grep :4000显示端口监听cloudflared tunnel list显示隧道活跃- 公网
https://blog.iove.eu.org可访问
💡 优化建议
- 性能优化: 配置 Nginx 替代 Python 简单服务器
- 自动化: 设置 Git Hook 自动部署
- 备份: 定期备份 Hexo 源码和主题文件
- 监控: 设置服务监控和告警
- CDN: 利用 Cloudflare CDN 加速静态资源
📞 故障排除流程
- 检查本地:
hexo server是否正常 - 检查 NAS 服务:
systemctl status hexo-blog.service - 检查端口:
netstat -tulpn | grep :4000 - 检查隧道:
cloudflared tunnel list - 查看日志:
journalctl -u hexo-blog.service -n 20
最后更新: 2025年11月12日
基于实际部署经验总结