1.
准备与选购台湾地区云主机(VPS)
- 说明:挑选台湾节点可降低延迟并符合地方法规。
- 推荐配置:至少 2 vCPU、4GB 内存、40GB SSD(根据存储需求扩大)、带宽按需(建议 100M 或以上)。
- 供应商选择:可选 AWS 台北区域(若有)、GCE 台湾合作伙伴、台湾本地 VPS 提供商(如 HiNet 合作机房的 VPS、kio 等)。
- 账号与付款:注册并完成实名认证,选择 Linux 镜像(推荐 Ubuntu 22.04 LTS),记录控制台分配的公网 IP、用户名(通常为 ubuntu 或 root)与 SSH 密钥。
2.
远程连接与基础系统准备
- 通过本地终端连接:ssh -i /path/to/key.pem ubuntu@你的公网IP
- 更新系统并安装常用工具:sudo apt update && sudo apt upgrade -y;sudo apt install -y wget curl git ufw nano
- 创建一个专用用户(非 root):sudo adduser ipfsadmin && sudo usermod -aG sudo ipfsadmin;然后切换到该用户:su - ipfsadmin
3.
设置持久化数据目录与权限
- 建议将 IPFS 数据目录放在独立磁盘或挂载点(如 /srv/ipfs 或 /data/ipfs):sudo mkdir -p /srv/ipfs && sudo chown ipfsadmin:ipfsadmin /srv/ipfs
- 若有额外挂载盘:在云主机控制面板挂载 SSD,然后在 /etc/fstab 配置自动挂载,确保开机可用。
4.
下载安装 go-ipfs(稳定版)
- 查找最新版并下载(以 Linux amd64 为例):cd /tmp;wget https://dist.ipfs.io/go-ipfs/v0.xx.x/go-ipfs_v0.xx.x_linux-amd64.tar.gz(替换为最新版链接)
- 解压并安装:tar -xzf go-ipfs_v*.tar.gz;cd go-ipfs;sudo bash install.sh
- 验证安装:ipfs --version;若提示权限问题,检查 /usr/local/bin/ipfs 是否存在并可执行。
5.
初始化 IPFS 节点并指定数据路径
- 设置环境变量指向数据目录(可写入 /etc/profile 或 systemd 环境):export IPFS_PATH=/srv/ipfs/.ipfs
- 以 ipfsadmin 用户执行初始化:ipfs init --profile=server (或 ipfs init)
- 验证:ls /srv/ipfs/.ipfs;ipfs config Addresses 表示监听地址。
6.
配置网络与防火墙(开放必须端口)
- IPFS 主要端口:4001 (swarm),5001 (API),8080 (gateway)。
- 使用 ufw:sudo ufw allow 22/tcp;sudo ufw allow 4001/tcp;sudo ufw allow 5001/tcp;sudo ufw allow 8080/tcp;sudo ufw enable。
- 若云提供商有安全组(Security Group),在控制台也要放通这些端口并允许出站流量。
7.
配置 systemd 实现后台运行与自启
- 创建 systemd 服务文件 /etc/systemd/system/ipfs.service(以 root 建立并 chown):
[Unit]
Description=IPFS daemon
After=network.target
[Service]
User=ipfsadmin
Environment=IPFS_PATH=/srv/ipfs/.ipfs
ExecStart=/usr/local/bin/ipfs daemon --migrate=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
- 重新加载并启用:sudo systemctl daemon-reload;sudo systemctl enable --now ipfs.service;sudo systemctl status ipfs.service 查看运行状态。
8.
调整配置以适应云环境
- 修改 swarm 监听地址为 0.0.0.0(在 ipfs config Addresses.Swarm 中确认或设置)。
- 若需要固定外部访问,使用 ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080;ipfs config Addresses.API /ip4/127.0.0.1/tcp/5001(API 建议仅本地开放)。
- 开启垃圾回收策略:ipfs config Datastore.StorageMax "100GB"(根据磁盘调整),并定期运行 ipfs repo gc。
9.
域名与反向代理(可选,便于访问 Gateway)
- 如果需要通过域名访问 gateway:在 DNS 控制面板添加 A 记录指向 VPS 公网 IP。
- 使用 Nginx 反向代理(将 80/443 转发到 8080):sudo apt install -y nginx;在 /etc/nginx/sites-available 创建配置,proxy_pass http://127.0.0.1:8080;然后 sudo systemctl restart nginx。
- 为 HTTPS 使用 certbot:sudo apt install certbot python3-certbot-nginx;sudo certbot --nginx -d yourdomain.example。
10.
备份与持久化策略
- 备份 IPFS 配置与 keystore:定期拷贝 /srv/ipfs/.ipfs 到另一个存储(如远程 SFTP、对象存储),例如:rsync -a /srv/ipfs/.ipfs backup-server:/backup/ipfs/。
- 如果存储大量数据,考虑挂载独立数据盘并做快照或使用云提供的卷备份功能。
11.
监控、日志与性能优化
- 查看 logs:journalctl -u ipfs.service -f;设置 logrotate 若需要。
- 安装监控(Prometheus + node_exporter 或云厂商监控),关注磁盘 I/O、网络带宽与 CPU。
- 若要提高可用性,可在不同机房部署多个节点并使用 IPFS Cluster 做固定(pin)管理。
12.
常见故障排查小贴士
- 无法互联:检查云提供商安全组与本机 ufw 是否放通 4001、8080、5001;确认 ipfs daemon 日志中没有 bind 错误。
- 磁盘满:ipfs repo stat;若超过阈值,运行 ipfs repo gc 或扩容磁盘。
- 权限问题:确认 IPFS_PATH 目录属主为运行 IPFS 的用户。
13.
可选:构建私有 IPFS 网络(Swarm Key)
- 如果不希望与公有网络互联,可生成 swarm key(使用 libp2p-swarm-key-gen)并放入 /srv/ipfs/.ipfs/swarm.key,所有私有节点采用相同 swarm.key。
- 启动时仅与指定节点对等(bootstrap)列表通信,防止与公用网络交换数据。
14.
问:在台湾云主机上运行 IPFS 是否需要额外合规注意?
- 答:台湾地区对于节点运行本身没有特殊限制,但应遵守当地与服务器托管国的法律法规。若存储或分享的内容含敏感或侵权信息,需要严格管理和及时响应法律要求。对企业用户,建议咨询法律顾问以确保合规。
15.
问:如何将当前 IPFS 节点的数据容量扩展而不中断服务?
- 答:推荐步骤为:1)在控制台新增更大数据盘并挂载为临时路径;2)停止服务(sudo systemctl stop ipfs);3)rsync -a /srv/ipfs /mnt/newdisk/ 并确认数据完整;4)修改 /etc/fstab 将新盘挂载到 /srv/ipfs;5)恢复权限并重启服务(sudo systemctl start ipfs)。这样可最小化停机时间。
16.
问:我应该如何备份 IPFS 节点的关键配置与密钥?
- 答:备份重点是 /srv/ipfs/.ipfs/config、/srv/ipfs/.ipfs/keystore、/srv/ipfs/.ipfs/swarm.key(若存在)。使用 rsync + cron 定期将这些目录同步到异地备份服务器或对象存储,并确保备份文件的访问权限与加密。恢复时先停止 ipfs 服务,再恢复文件并确保属主是运行用户,然后启动服务。
来源:从零开始搭建台湾省ipfs云服务器云主机的详细步骤