如何在 2026 年运行你自己的 Nostr 中继
在便宜 VPS 上运行 Nostr 中继的实用指南。包括软件选择、配置方法、成本估算以及为什么你可能想要运行一个。
运行 Nostr 中继是可行的。该软件是开源的,协议很简单,一个可用的中继可以在 5 美元的 VPS 上运行。如果你之前自托管过任何东西,你可以在一个下午内运行一个中继。
你是否应该运行是另一个问题。大多数用户不需要自己的中继。某些特定情况会从中受益很大。
本指南是针对想要尝试的人的端到端演练。
在小型 VPS 上安装 strfry 或 nostream,将域名指向它,打开端口 443。对于熟悉 Linux 的人来说需要约一小时。运行成本每月 5-15 美元。对特定社区、隐私意识强的用户以及想要更深入控制其 Nostr 基础设施的任何人都很有用。
准备好后, 领取你的 @nostr.blog 地址
你可能想要运行一个的原因
六个正当理由。如果这些都不适用,请改用公共中继。
社区中继。 你想为特定群体建立一个中继(公司的 Nostr、爱好社区、本地聚会)。你的中继的政策反映了该群体的规范。外部垃圾邮件发送者无法充斥它,因为你控制写入访问。
隐私。 你希望在你的设置中至少有一个中继,其中你知道运营者。你在该中继上的阅读习惯不会被任何第三方看到。
保留。 公共中继有时会清除旧事件。你自己的中继如果你愿意,可以无限期保留你的帖子。
实验。 你正在构建客户端、中继扩展或测试新的 NIP。拥有自己的中继对开发至关重要。
区域特定性能。 你所在的地理区域没有好的中继。在你的地区运行一个可以更好地服务你(可能还有其他人)。
原则。 你重视通过托管节点为网络做出贡献。这很少见但很真实;一些运营者运行中继是因为 Nostr 的健康取决于许多独立的节点。
选择中继软件
截至 2026 年 4 月,两个主要的开源选择:
strfry。 用 C++ 编写,使用 LMDB 进行存储,速度极快。可以在适度硬件上处理大量事件负载(数百万事件)。性能导向型中继的首选。
nostream。 TypeScript,运行在 Node.js 上,使用 PostgreSQL。如果你懂 JavaScript,更容易修改。适合自定义政策和插件。
存在其他几个选项(Rust 中的 rnostr、Go 的 khatru 框架、各种分支)。对于第一个中继,strfry 或 nostream 涵盖了常见情况;两者都有很好的文档和积极维护。
本指南在具体演练中使用 strfry。
硬件要求
对于小型中继(数十到数百用户):
- VPS:1-2 个 CPU 核心,1-2 GB 内存
- 存储:10-50 GB,取决于保留期
- 带宽:100-500 GB/月
- 成本:Hetzner、DigitalOcean、Linode 或类似服务每月 5-15 美元
对于中型中继(数千用户):
- VPS:4 个 CPU 核心,4-8 GB 内存
- 存储:200+ GB,最好是 SSD
- 带宽:1+ TB/月
- 成本:每月 30-80 美元
大多数首次中继运营者从 5 美元的 VPS 开始,这对于数百个用户来说已经绰绰有余。
设置演练:Ubuntu 上的 strfry
基本部署的具体步骤。假设一个新鲜的 Ubuntu 22.04+ VPS。
步骤 1:准备服务器
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装构建依赖
sudo apt install -y git build-essential libssl-dev libz-dev \
liblmdb-dev libflatbuffers-dev libsecp256k1-dev \
libzstd-dev pkg-config
步骤 2:克隆并构建 strfry
cd /opt
sudo git clone https://github.com/hoytech/strfry.git
cd strfry
sudo git submodule update --init
sudo make setup-golpe
sudo make -j4
在小型 VPS 上构建需要约 5-10 分钟。
步骤 3:配置中继
编辑 /opt/strfry/strfry.conf。重要的部分:
db路径:事件的存储位置network绑定地址和端口info部分:中继名称、描述、联系方式、公钥retention政策:保留事件多长时间
对于基本设置,默认值有效。自定义信息部分以描述你的中继。
步骤 4:设置服务
创建一个 systemd 单元以使 strfry 持续运行。/etc/systemd/system/strfry.service:
[Unit]
Description=strfry Nostr relay
After=network.target
[Service]
ExecStart=/opt/strfry/strfry relay
WorkingDirectory=/opt/strfry
User=strfry
Restart=always
[Install]
WantedBy=multi-user.target
创建用户并启用:
sudo useradd -r -s /bin/false strfry
sudo chown -R strfry:strfry /opt/strfry
sudo systemctl enable --now strfry
步骤 5:设置 TLS(反向代理)
Nostr 客户端期望 wss://(WebSocket over TLS)。在 strfry 前面使用 Caddy 或 Nginx。
Caddy 最简单。安装:
sudo apt install -y caddy
配置 /etc/caddy/Caddyfile:
your-relay-domain.com {
reverse_proxy /* localhost:7777
}
重新加载:sudo systemctl reload caddy。Caddy 自动从 Let's Encrypt 获取 TLS 证书。
步骤 6:指向 DNS
为 your-relay-domain.com 创建一个 A 记录,指向你的 VPS 的 IP。等待几分钟让 DNS 传播。
步骤 7:验证
从你的笔记本电脑:
curl -s https://your-relay-domain.com
应该返回一个简短的响应,确认中继已启动。在 Nostr 客户端中,将 wss://your-relay-domain.com 添加到你的中继列表。你应该看到它已连接并开始接收事件。
总耗时:对于熟悉 Linux 的人来说 30-60 分钟;对于初学者来说 2-3 小时。
运营中继
一旦运行,中继需要最少的维护。一些定期任务:
监控磁盘使用情况。 strfry 的数据库随着保留事件的增加而增长。每月检查一次;如果需要可以清除。
更新软件。 strfry 会获得更新;当有意义的更新时你需要重新构建。通常每年几次。
检查日志以查找垃圾邮件模式。 遭受大量垃圾邮件攻击的中继可能需要调整速率限制或收紧政策。
续期 TLS。 Caddy 会自动执行此操作。如果你手动使用 Nginx,请设置 certbot 自动续期。
备份数据库。 对于小型中继,每周 rsync 到另一台服务器就很好了。对于你真正关心的数据,更频繁一点。
一旦中继稳定,总时间承诺:每月大约 30 分钟。
要决定的政策
你的中继的规则是你的。提前决定并记录下来。
谁可以写。 完全开放(任何签名事件)?白名单(特定公钥)?付费(每个事件的 sat 费用)?
什么种类。 接受所有事件类型,还是只接受特定类型(仅 kind:1、无转发、无反应)?
速率限制。 每分钟每个公钥多少个事件?默认 strfry 限制是合理的;如果滥用则收紧。
保留。 永久保留事件,还是在 X 天后清除?清除会减少磁盘但失去历史记录。
审核。 你是否手动删除特定事件或特定公钥?你是管理员;你可以。
在 /(信息响应)发布你的政策,以便用户知道会发生什么。不透明的中继对用户来说是一个危险信号。
实际成本
小型公共中继的现实年度预算:
- VPS:60-180 美元
- 域名:12-15 美元
- 监控和备份工具(可选):0-60 美元
- 你的时间:全年 5-10 小时
- 总现金:80-250 美元/年
对于拥有订阅者的付费中继,收益可以覆盖这个成本及以上。对于免费中继,这是对网络的自掏腰包贡献(或对你自己使用的贡献)。
大规模运营
小型中继很容易。增长到数十万用户的范围需要真正的运营工作。
考虑因素:
- 数据库优化。 默认 strfry/nostream 设置在某个点有效。超过约 50 万活跃用户,自定义索引和调优就很重要。
- 地理分布。 一个地区的中继无法以低延迟服务整个世界。大型中继通常运行集群。
- DDOS 保护。 受欢迎的中继会遭到攻击。Cloudflare 在中继前面或其他 DDOS 服务很常见。
- 大规模成本。 每天服务数百万次读取的中继可能需要每月花费数千美元的带宽和计算。
很少有运营者在这个规模上运营。Damus-relay、nos.lol、relay.primal.net 和少数其他的是当前的重量级选手。小型中继不需要竞争;网络受益于两者。
你可能不想运行一个的原因
留在公共中继用户的诚实原因。
- 你没有具体的理由。 为原则运行是可以的;为原则运行但没有任何其他动力会消退。
- 你不喜欢系统管理工作。 中继不复杂,但你偶尔会接触 Linux 配置、日志和 TLS。
- 你已经信任公共中继。 如果默认值对你有效,添加你自己的没有明确的收益。
- 你发布或阅读的不足以证明它的合理性。 休闲用户很少需要自己的中继。
Nostr 社区没有压力让你运行自己的中继。大多数活跃用户不这样做。网络不需要每个用户贡献基础设施;它需要足够的基础设施保持去中心化。
运行后
告诉人们。一个没有用户的中继不是中继;它是一个备份。在 Nostr 上发布关于你的新中继,解释其政策,邀请符合政策的用户连接。如果你推广它,第一个月预期 10-50 个用户;如果你在特定社区中闻名,会更多。
运行中继有助于网络的健康,并为你提供一个真正属于你的基础设施。对于合适的用户来说,这是一个有益的项目。