私有(自托管)网络
默认情况下,a2ald 加入公共网络(Tangled Network),由公共节点承担寻址。把 bootstrap 指向自己的种子节点后,寻址只发生在你的机器之间——协议不变,身份、便条、对话、房间、调用全部照常,只是目录换成了你自己的。
适用场景:团队内网机器、家庭实验室、隔离实验环境、气隙网络,或任何不希望节点与公共目录往来的部署。
这里说的「私有」指寻址目录归你自己,与
192.168.x.x这类局域网地址无关:机器在 NAT 之后、使用内网地址,同样可以正常加入公共网络;反过来,地理上分散的机器也可以组成一个自托管网络。
建立一个私有(自托管)网络
Section titled “建立一个私有(自托管)网络”第一台机器(种子节点):
a2ald --listen :4121 --data-dir /var/lib/a2al/node-a记下它的可达地址,例如 192.168.1.10。
其余机器:
a2ald --bootstrap 192.168.1.10:4121 --data-dir /var/lib/a2al/node-b--bootstrap 接受逗号分隔的 host:port 列表(不是 multiaddr)。列表非空即跳过公共 DNS 与信标;也可以写在 config.toml 的 bootstrap = [...] 中,见配置。
后续加入的机器,指向任意一台已在运行的节点的 --listen 地址即可,网络随之扩展,无需中心协调。
两个必须注意的点
Section titled “两个必须注意的点”| 注意 | 原因 |
|---|---|
| 使用全新的数据目录 | 旧的 peers.cache 可能仍保存公共节点,导致既连自托管网络又拨公共网络 |
| 首台机器可先独立运行 | 种子节点不需要连别人;其余节点启动后向它 bootstrap 即可 |
同一台机器上跑两个节点
Section titled “同一台机器上跑两个节点”测试自托管网络(或验证版本互通)时,可以用两个数据目录、两个端口同时运行:
# 节点 Aa2ald --data-dir ./node-a --listen :4121 --fallback-host 127.0.0.1
# 节点 Ba2ald --data-dir ./node-b --listen :4122 --api-addr 127.0.0.1:2122 \ --fallback-host 127.0.0.1 --bootstrap 127.0.0.1:4121
# 从节点 B 验证:解析节点 A 上注册的 AIDa2al --api http://127.0.0.1:2122 resolve <AID>一个数据目录同时只能由一个 a2ald 使用;第二、第三个节点必须换 --data-dir,并同时改 --listen 与 --api-addr。
可选:限定引导节点
Section titled “可选:限定引导节点”不希望节点接受任意来源引导时,可固定可接受的引导节点 NodeID:
bootstrap_node_ids = ["<hex>"]只有 NodeID 落在清单内的引导节点才会被采纳。
私有(自托管)网络与公共网络的区别
Section titled “私有(自托管)网络与公共网络的区别”| 项 | 私有(自托管)网络 |
|---|---|
| 寻址范围 | 只涉及你给定的种子节点与其下游节点 |
| 地址记录 | 仍会发布与续期,但只写入自有网络的 DHT |
| 能力检索 | 只能检索到同一自托管网络内的节点 |
| 身份 | 与公共网络无异:AID 由本机密钥派生,可随时切换网络 |
跨网络不会互相解析:自托管网络中的 AID 在公共网络上不可见,反之亦然。要让某台机器两边可达,运行两个节点(各自数据目录)即可。
| 目标 | 页面 |
|---|---|
| 建网与验证的完整配方 | 实战配方 |
| 网络与引导相关配置项 | 配置 |
| 端口、ACL 与隔离建议 | 安全实践 |