3 步用 Nitter + RSSHub 给自己搭一个免登录的 X 推文监控,XCorp 律师函也拿它没办法
XCorp(推特母公司)本周给 Nitter 和 XCancel 同时发了 cease & desist 律师函,要求这两个项目停止提供”免登录看 X 推文”的服务。在彻底下架之前,还有最后一波窗口可以自建 Nitter 实例。这篇教程 3 步带你用 Docker 在自己的服务器上跑一个 Nitter + RSSHub 组合,把关心的账号、关键词变成 RSS 订阅,永久保存。
准备清单
– 硬件:任意云服务器,1 核 1GB 内存就够(最低配置 Vultr / DigitalOcean / 阿里云轻量都 OK)
– 系统:Ubuntu 20.04+ / Debian 11+
– 网络:服务器能访问 X.com(Hetzner、OVH 部分 IP 段已被 XCorp 拉黑,建议选 AWS Lightsail 或香港节点)
– 工具:装了 Docker 和 Docker Compose
– 时间:30 分钟
第 1 步:装 Nitter 实例
Nitter 是开源的”X 前端”,提供免登录看推文、导出 RSS、清理 UI 等功能。
# 创建工作目录
mkdir -p ~/nitter && cd ~/nitter
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: "3"
services:
nitter:
image: zedeus/nitter:latest
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./nitter.conf:/src/nitter.conf:ro
EOF
# 下载配置文件
curl -L https://raw.githubusercontent.com/zedeus/nitter/master/nitter.example.conf -o nitter.conf
编辑 `nitter.conf`,关键项:
[Server]
title = "My Nitter"
hostname = "nitter.example.com"
[Config]
theme = "Nitter"
replaceTwitter = "nitter.example.com"
replaceYouTube = "piped.video"
replaceReddit = "libreddit.example.com"
proxy = "http://your-proxy:8080" # XCorp 封 IP 时使用
**关键**:很多云厂商 IP 已经被 X 拉黑,配置文件中 `proxy` 字段必须填一个能访问 X 的 HTTP 代理,否则 Nitter 拉不到推文。
启动:
docker compose up -d
浏览器访问 `http://服务器IP:8080` 就能看到干净的 Nitter 界面。
第 2 步:部署 RSSHub 拿全网数据
Nitter 只能看 X 推文,但如果要监控”哪些账号提到了我的产品”、”哪些关键词最近变热”,需要 RSSHub 做统一聚合。
# 创建 RSSHub 目录
mkdir -p ~/rsshub && cd ~/rsshub
cat > docker-compose.yml << 'EOF'
version: "3"
services:
rsshub:
image: diygod/rsshub:latest
restart: unless-stopped
ports:
- "1200:1200"
environment:
- NODE_ENV=production
- CACHE_TYPE=redis
- REDIS_URL=redis://redis:6379/
depends_on:
- redis
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis-data:/data
volumes:
redis-data:
EOF
docker compose up -d
启动后访问 `http://服务器IP:1200` 验证 RSSHub 跑通。
第 3 步:拼装监控
现在你有两套服务:
– Nitter(8080 端口):看推文、生成单账号 RSS
– RSSHub(1200 端口):把 X、微博、Hacker News、Reddit 全部转 RSS
监控”X 上谁在讨论 AI 安全”:
# 单账号订阅(通过 Nitter)
http://服务器IP:8080/AnthropicAI/rss
# 关键词搜索(通过 RSSHub)
http://服务器IP:1200/twitter/search/AI安全?lang=zh
把这些 RSS 链接加到任意 RSS 阅读器(Feedly、Inoreader、NetNewsWire、Reeder 都行),设置成 5 分钟刷新一次。
进阶:加自动告警
用免费的 Huginn 或自建 n8n,把这些 RSS 触发器改成”关键词命中 → 推送到 Telegram / 飞书 / 邮件”。
简单的 n8n 工作流:
1. Trigger:RSS Feed Trigger,URL 填上面的关键词搜索链接
2. Function:判断标题是否包含特定关键词
3. Action:Telegram 节点 / 飞书机器人节点 / Sendmail
整套跑通后,你可以监控任意关键词的全网讨论,第一时间收到告警,完全不需要登录 X、不受 Nitter / XCancel 下架影响——因为 Nitter 和 RSSHub 都跑在你自己服务器上。
常见失败处理
1. Nitter 拉取推文失败 / 返回空
XCorp 已经把很多云厂商 IP 段拉黑。解决方案:
– 换 AWS Lightsail / Hetzner Robot / 阿里云香港节点的 IP
– 配置文件 `proxy` 字段填住宅代理(推荐 Bright Data、Oxylabs)
– 自建代理:用 Cloudflare Workers 套一层反代
2. RSSHub 返回 502
Redis 没启动。运行 `docker compose ps` 看 redis 容器是否 healthy。
3. RSS 阅读器拉不到更新
多数 RSS 阅读器默认 1 小时刷新一次。手动改成 5 分钟刷新可以更快收到新推文。
律师函风险评估
自建 Nitter 实例给你个人用不违法——你只是用替代前端访问公开内容,不重新分发。但如果你把实例开放给全网用户使用、用于商业目的,XCorp 的律师函就有法律风险了。建议仅作个人研究、监控使用。
为什么 XCorp 现在才动手
Nitter 存在已经 6 年,XCorp 一直默许它存在。这一次突然发律师函,时机耐人寻味:
1. X API 涨价后替代品被重点关注:XCorp 在 2023-2024 年连续涨价 API 访问费,Nitter 成了绕开 API 收费的灰色途径
2. 数据训练争议升温:XCorp 之前被曝用 X 推文训练 Grok,已经引发多起版权诉讼。Nitter 让外部研究者更容易大规模抓取 X 数据
3. IPO 前的法律清理:XCorp 估值在 2025 年传出 IPO 计划,律师函是”上市前清理法律风险”的常规动作
这次律师函只针对公开实例和大规模分发行为,不针对个人研究用途和源代码分发——所以 Nitter 的代码本身会继续存在于 GitHub,自建实例只要不开放到公网就不会被追责。
备份方案:如果 Nitter 完全消失
– Nitter 替代项目:XCancel 仍在运营(暂时)、literelay、tweetvac
– 直接抓 RSSHub:RSSHub 有自己的 Twitter 抓取通道(基于 Playwright),不依赖 Nitter
– 官方 RSS:少数账号仍提供官方 RSS,可以通过 `https://nitter.net/账号` 重定向获取
📌 LC 智趣厅 会持续追踪 Nitter 项目状态,XCorp 律师函全文翻译下篇放出。
— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn