Ubuntu 笔记本自动化工作流搭建图文攻略

AI教程2周前更新 BAOLONG
61 0

先把结论给你

你的 Ubuntu 笔记本(【你的笔记本】)已经能全自动完成“每日 AI 热榜 → 20 条精选 → 8 张小红书配图”,全程不消耗任何 AI Token。整个系统通过阿里云服务器的 frp 隧道远程管理,n8n 每天 09:00 自动抓取新浪财经 7×24、新浪科技、网易要闻、百度热点四家媒体热点,用 AI 关键词过滤出 20 条后调用渲染服务出图。目前只差最后两步“接线”:飞书群机器人提醒和发布中心表写入,完成后你每天只需在手机点一下发布。

阅读地图:本文按搭建顺序分五步——①远程通道(frp 隧道)→ ②远程控制(SSH)→ ③配图渲染系统 → ④n8n 每日工作流 → ⑤半自动发布(待配项)。每步都有命令、判断标准和排障方法。

💡

费用说明:frp 是免费开源软件,阿里云服务器只是多个端口转发,不新增任何费用;笔记本是家庭设备,电费忽略不计。唯一硬件要求:阿里云安全组和宝塔防火墙放行 3 个端口(见第二步)。

一、整体架构

每日AI热榜 → 小红书配图 → 半自动发布 · 流水线架构
① 远程通道(frp 隧道 · 免费)
☁️
阿里云服务器
frps 网关
【你的服务器IP】:7000
⇄
💻
Ubuntu 笔记本
【你的笔记本】
frpc 客户端
⇄
🔑
远程管理
SSH 15622
n8n 15678
② 每日自动流水线(笔记本内,零 Token 成本)
⏰
n8n 工作流
每天 09:00 触发
工作流 id=100
→
📡
抓取媒体热点
新浪财经·新浪科技
网易·百度 四源→AI 过滤 20 条
→
🖼️
渲染服务
Python+Pillow
端口 9100 出图
③ 半自动发布(人工点发布,避免封号)
📋
发布中心表
飞书多维表格
文案+图片+状态
→
📲
飞书提醒
手机收到通知
打开即可发布
→
❤️
小红书发布
你手动粘贴
30 秒完成
④ 每天你要做的(仅一步)
收飞书提醒 → 打开小红书 App → 粘贴文案、上传 8 张图 → 发布。其余全部自动。
架构基于 frp 0.61.1 + n8n 2.41.3 + Python 3.14 + Pillow 12.1 · 数据源:新浪财经 7×24 / 新浪科技 / 网易要闻 / 百度热点(媒体独立抓取,不依赖外部服务)

二、第一步:打通远程通道(frp 隧道)

笔记本在家内网,公网无法直连,所以用一台有公网 IP 的服务器(你的阿里云)做“中转站”,把笔记本的 SSH 和 n8n 端口映射到公网。frp 分两端:frps(服务器端)和 frpc(笔记本端)。

1. 阿里云安装 frps(服务端)

cd /opt && wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz && tar -zxvf frp_0.61.1_linux_amd64.tar.gz && cd frp_0.61.1_linux_amd64 && mkdir -p /etc/frp && TOKEN=$(openssl rand -hex 16) && printf 'bindPort = 7000\nauth.method = "token"\nauth.token = "%s"\n' "$TOKEN" > /etc/frp/frps.toml && cp frps /usr/local/bin/frps && nohup /usr/local/bin/frps -c /etc/frp/frps.toml > /var/log/frps.log 2>&1 &

完成判断:执行 ss -tlnp | grep 7000,能看到 frps 监听 7000 即成功。

2. 笔记本安装 frpc(客户端)

cd /opt && wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz && tar -zxvf frp_0.61.1_linux_amd64.tar.gz && cd frp_0.61.1_linux_amd64 && sudo cp frpc /usr/local/bin/frpc

写配置(把 token 换成服务器端生成的同一把钥匙,路径 /etc/frp/frpc.toml):

serverAddr = "【你的服务器IP】"
serverPort = 7000
auth.method = "token"
auth.token = "你的TOKEN"

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 15622

[[proxies]]
name = "n8n"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5678
remotePort = 15678

启动(日志写家目录避免权限问题):

nohup sudo /usr/local/bin/frpc -c /etc/frp/frpc.toml > ~/frpc.log 2>&1 &

完成判断:cat ~/frpc.log 出现 [ssh] start proxy success 和 [n8n] start proxy success 即成功。

3. 放行端口

端口 用途 谁监听 在哪里放行
7000 frp 控制通道 阿里云 frps 阿里云安全组 + 宝塔防火墙
15622 SSH 远程管理笔记本 frps 转发到笔记本 22 同上
15678 n8n 网页/接口 frps 转发到笔记本 5678 同上

4. 常见排障(实测经验)

现象 原因 解决
Connection refused frpc 没在运行 检查 ps aux | grep frpc,重新启动并看 ~/frpc.log
token in login doesn’t match 两端钥匙不一致,或复制时混入隐藏字符 两端用 printf/tee 重写同一把新钥匙,重启两端
日志“权限不够”启动失败 重定向写 /var/log 无权限 日志改写到家目录:> ~/frpc.log

三、第二步:远程控制(SSH 密钥)

隧道打通后,把公钥加入笔记本的 ~/.ssh/authorized_keys,即可免密全权管理笔记本:

mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '你的公钥' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
sudo systemctl enable --now ssh

之后从任何电脑可用 ssh -p 15622 用户名@【你的服务器IP】 进入笔记本。

安全提示:15622 是搭建期的“施工通道”,流水线跑稳后建议关闭公网 SSH(只留 n8n 隧道),缩小暴露面。

四、第三步:小红书配图渲染系统

配图用程序化渲染(Python + Pillow + 中文字体),不是 AI 生图——所以零 Token、零费用、秒出图,风格稳定不跑偏。

1. 两个组件

文件 作用
~/xhs-pipeline/render_xhs.py 核心渲染器:读 20 条热榜 JSON,输出 8 张竖版图(1 封面 + 7 内容页,蓝底编号 + 标题 + 摘要 + 来源,风格与网站热榜页一致)
~/xhs-pipeline/render_server.py 常驻 HTTP 服务(端口 9100):n8n 容器 POST 数据过来就出图,返回 base64 图片

2. 启动与开机自启

cd ~/xhs-pipeline && nohup python3 render_server.py > render_server.log 2>&1 &
(crontab -l 2>/dev/null; echo '@reboot sleep 15 && cd /home/用户名/xhs-pipeline && nohup python3 render_server.py >> render_server.log 2>&1 &') | crontab -

完成判断:curl http://127.0.0.1:9100/healthz 返回 {"ok": true}。

3. 渲染效果(实测样图)

渲染样图
封面:标题 + 日期胶囊 + 20 条计数
渲染样图
内容页:蓝底编号 + 标题 + 摘要 + 来源
渲染样图
末页:第 19-20 条收尾

五、第四步:n8n 每日热榜工作流

1. 数据源(四源媒体独立抓取,不依赖豆包)

媒体源 接口 特点
新浪财经 7×24 https://zhibo.sina.com.cn/api/zhibo/feed?zhibo_id=152 财经快讯 JSON,AI/科技要闻占比高,带时间
新浪科技滚动 https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2516 科技滚动新闻 JSON,实时更新
网易要闻 https://news.163.com/special/cm_yaowen20200213/ 要闻 JSONP,含摘要字段
百度热点 https://top.baidu.com/api/board?platform=wise&tab=realtime 实时热搜词,补充大众关注点

2. 工作流逻辑

n8n 工作流(id=100)共两个节点:Schedule 触发器(每天 09:00)→ Code 节点(并行抓取四源媒体 → AI 关键词过滤(AI/大模型/智能体/OpenAI/芯片/机器人等)→ 科技关键词补足 → 标题去重 → 编号 1-20 → POST 172.18.0.1:9100/render 出图)。渲染服务在笔记本宿主机,n8n 容器通过网关 172.18.0.1 访问它。全程零 API Key、零飞书凭证、零 Token 消耗。

3. 导入命令

docker cp ~/xhs-pipeline/workflow_daily_hot_xhs_v3.json n8n:/tmp/wf.json
docker exec n8n n8n import:workflow --input=/tmp/wf.json

完成判断:docker exec n8n n8n list:workflow 能看到该工作流;在 n8n 网页(公网 15678)里可打开检查。

六、第五步:半自动发布(剩最后两步接线)

为什么半自动:小红书没有个人官方发布 API,全自动 RPA 有封号风险,所以策略是机器做重活、人做点发布。

环节 现状 需要你做的
抓取 + 配图 已完成(四源媒体独立抓取,无需任何凭证) 无——第二天 09:00 自动运行
飞书提醒 待接线 在飞书群加“自定义机器人”复制 Webhook 给我
发布中心表 待接线 需要飞书开放平台 App ID/Secret(n8n 写表用;不接也能手动发布)
小红书发布 手动 每天收提醒后粘贴发布(30 秒)

☐ 飞书群添加自定义机器人,拿到 Webhook 地址

☐ 激活工作流(active=1),观察第一个 09:00 自动运行

七、日常维护清单

事项 命令/位置
检查渲染服务 curl http://127.0.0.1:9100/healthz(笔记本上)
检查 frpc 隧道 tail ~/frpc.log;公网测 curl http://【你的服务器IP】:15678
查看今日配图 ~/xhs-pipeline/output/ 目录(当日日期_xhs_01.png 起)
n8n 运行记录 n8n 网页 → 左侧「Executions」查看每次执行结果
笔记本重启后 frpc 需手动重启(或后续补 systemd 自启);渲染服务已自动拉起

边界提醒:四源均为公开接口,个别源偶发限流/反爬时,工作流会自动跳过该源、由其余源补足;若四源全部失败(如断网),会返回“今日无数据”并跳过出图,不影响次日。数据与图片仅用于你自己的账号发布,请勿搬运他人版权内容。

© 版权声明

相关文章

暂无评论

none
暂无评论...