Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 官方博客

在美國伺服器上部署 IPFS 節點用於伺服器租用靜態網站

發布日期:2026-07-31
在美國伺服器部署 IPFS 節點的示意圖

你可以透過一台公共的 美國伺服器,快速完成去中心化靜態網站的伺服器租用。首先,開通一台美國伺服器並安裝 Kubo。接著,將你的网站文件上傳以獲取內容識別碼(CID)。然後,分別在本機與遠端對內容進行固定(pin)。最後,透過 DNSLink 將你的自訂網域名稱映射到該內容。

為什麼要選擇美國伺服器?位於美國的資料中心伺服器提供公共 IP 位址,你可以繞過本地受限的 NAT 環境,並享受高頻寬,在北美地區更快完成節點發現。

現在,讓我們開始部署 IPFS 節點軟體並上線你的網站。

關鍵要點

  • 美國伺服器提供公共 IP 位址,可實現快速節點連線。

  • 將內容雜湊轉換為 CIDv1,以確保相容現代 Web 瀏覽器。

  • 同時在本機與遠端固定你的網站檔案,避免檔案被意外刪除。

  • 透過簡單的 DNSLink 記錄,將自訂網域名稱映射到內容雜湊。

準備美國伺服器基礎架構

伺服器規格與系統環境

在準備部署 IPFS 節點基礎架構時,建議選擇現代的 64 位元 Linux 發行版,例如 Ubuntu 22.04 LTS。你的伺服器需要具備足夠資源,以支援節點路由並維持快速內容傳遞。

你可以參考下方建議的硬體基線配置:

硬體元件

建議最低規格

CPU

2 核心

RAM(記憶體)

6 GiB

儲存空間

約 12 MB 基礎安裝(總空間會隨共享資料規模而成長)

💡 提示: 請定期監控儲存空間的成長情況。隨著你固定更多靜態網站資源並快取網路資料,所需空間也會隨之增加。

防火牆與連接埠配置

將你的伺服器部署在美國公共基礎設施上,可以解決常見的點對點網路難題。家用網路通常使用網路位址轉換(NAT),NAT 會限制入站流量,並透過路由規則隱藏你的裝置。美國伺服器提供公共 IPv4 位址,這種直接連線方式可以繞過受限的本地 NAT 環境,讓北美地區的其他節點能即時發現你的內容。

你必須在防火牆中開放特定通訊連接埠。可在終端機中執行這些標準的 ufw 指令來調整網路安全策略:

# Allow IPFS Swarm traffic for peer discovery
sudo ufw allow 4001/tcp
sudo ufw allow 4001/udp

# Allow Web Gateway access for public HTTP requests
sudo ufw allow 8080/tcp

# Enable firewall rules
sudo ufw enable

請保持 5001 連接埠不對公共網際網路開放。5001 連接埠用於 API 控制,你必須將該 API 的存取限制在本機,以防止未經授權地控制你的伺服器節點。

部署 IPFS 節點並配置守護行程

在 Linux 上安裝 Kubo

Kubo 是 IPFS 的官方命令列實作。你可以透過簡單的終端機指令,直接在 Linux 伺服器上下載並安裝 Kubo:

# Download the latest Kubo archive
wget https://dist.ipfs.tech/kubo/v0.26.0/kubo_v0.26.0_linux-amd64.tar.gz

# Extract the archive file
tar -xvzf kubo_v0.26.0_linux-amd64.tar.gz

# Run the installation script
cd kubo
sudo bash install.sh

在終端機中執行 ipfs --version 指令,即可驗證安裝是否成功。

初始化節點與 Swarm 連接埠

在建立網路連線前,你必須先初始化節點儲存庫。執行以下標準初始化指令:

ipfs init --profile server

server 設定檔會將你的節點最佳化為資料中心環境使用,並停用本地網路掃描,以提升安全性。

注意: 新啟動的 IPFS 守護行程需要一段預熱時間。在最初的幾分鐘內,你的節點會主動發現網路中的其他節點並建立路由表,以最佳化傳輸速度。

至此,你已在最佳化的節點路由設定下完成 IPFS 節點部署。

配置 Systemd 與閘道

要順利完成靜態網頁的伺服器租用,你必須允許跨來源請求。請在閘道上配置跨來源資源共用(CORS)標頭:

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json Gateway.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

接下來,使用 systemd 讓你的節點在背景持續執行:

  1. 建立 service 單元檔: 使用你習慣的文字編輯器開啟 /etc/systemd/system/ipfs.service

    sudo nano /etc/systemd/system/ipfs.service
    
  2. 配置單元參數: 新增以下服務設定,並將 your-user-name 替換為你實際的 Linux 使用者名稱:

    [Unit]
    Description=IPFS Daemon
    After=syslog.target network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub
    User=your-user-name
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 設定開機自動啟動並立即啟動: 重新載入 systemd 設定檔,開啟開機自動啟動功能,並立刻啟動守護行程:

    sudo systemctl daemon-reload
    sudo systemctl enable ipfs
    sudo systemctl start ipfs
    

現在,你已成功將 IPFS 節點服務以穩定的背景行程方式執行。

部署並固定靜態 Web 內容

將網站檔案新增到 IPFS

你需要使用命令列工具,將靜態網站目錄上傳到 IPFS 網路:

  • 命令列範例: ipfs add -r <directory_name>(例如:ipfs add -r testdir

  • 作用: 遞迴上傳指定目錄中的所有檔案。

  • 產生根 CID 輸出: 為每個檔案產生唯一內容識別碼,並最終輸出整個目錄的根雜湊值(例如:QmPCwGkDRjW8B2SHoS3P9Cc4hKDjtdgytrfHQhg8n1BdGE testdir)。

💡 提示: 在正式進行網站伺服器租用前,請務必將根雜湊轉換為 CIDv1 格式。

特性

CIDv0

CIDv1

預設多進位編碼

Base58(隱含)

Base32

大小寫敏感度

區分大小寫

不區分大小寫

子網域閘道相容性

不相容(瀏覽器會強制將子網域轉為小寫)

相容(符合 RFC1035/RFC1123 網域標準)

網站託管與安全性

在以路徑為基礎的閘道上缺乏獨立的來源隔離

提供瀏覽器來源隔離、安全防護與對相對路徑的良好支援

CIDv0 雜湊在現代瀏覽器中容易出問題,因為瀏覽器網址列會自動將主機名稱轉為小寫。CIDv1 採用不區分大小寫的 Base32 編碼,讓每個網站都擁有獨立的安全來源。這種隔離機制可以保護你的本機瀏覽器儲存空間,並能順暢處理相對路徑。

本機與遠端固定策略

IPFS 節點會自動執行垃圾回收以釋放磁碟空間。在這個自動清理過程中,節點會刪除未固定(unpinned)的本機快取 CID,而已固定的 CID 則會持續保留在磁碟上。

自動垃圾回收取決於幾個關鍵伺服器設定:

  • 資料清理: 刪除未固定的快取檔案,以節省儲存空間。

  • GCPeriod:控制清理作業的執行頻率(預設每 1 小時執行一次)。

  • StorageGCWatermark:當磁碟使用率達到設定門檻時觸發清理(預設 90% 容量)。

本機固定可以確保你的內容持續在線,但伺服器故障仍可能導致網站中斷。你可以串接第三方遠端固定服務(如 Pinata),以實現多節點備援。

使用以下步驟配置遠端固定服務:

  1. 將遠端固定服務新增至 Kubo: 執行 ipfs pin remote service add <nickname> <endpoint> <accessToken>,其中 nickname 為自訂別名,endpoint 為服務供應商的 API 位址,accessToken 為你的金鑰權杖。

  2. 遠端固定內容: 使用 ipfs pin remote add --service=<nickname> --name=<optional-name> <CID> 將根 CID 推送到遠端服務。

  3. 監控固定狀態: 透過 ipfs pin remote ls --service=<nickname> 檢視已完成或佇列中的固定請求。

透過 CI/CD 自動化部署

每次更新網站程式碼都手動部署,既耗時又容易出錯。你可以透過 GitHub Actions 或 ipfs-deploy 等工具建立自動化 CI/CD 流程。

將流程配置為:自動建置網站資源、將最新目錄上傳到美國伺服器、更新遠端固定服務,並在每次程式碼提交後自動輸出最新的 CIDv1 字串。

透過 DNSLink 映射自訂網域

為 IPFS 配置 DNS 記錄

DNSLink 可以將複雜的 IPFS 內容識別碼映射為可讀的網域名稱。如此一來,你在更新網站內容時,無需變更主站連結,只要在網域註冊商後台更新 TXT 記錄即可。

要配置 DNSLink,請為子網域 _dnslink.yourdomain.com 建立 TXT 記錄,並將其值設為 dnslink=/ipfs/<CID>

你還需要將主網域指向公共 IPFS 閘道。可以將 CNAME 記錄指向 gateway.ipfs.io,或將 A 記錄指向你美國伺服器的 IP 位址。

更新 DNS 設定後,可透過終端機工具驗證 TXT 記錄是否已生效:

  • 查詢指令: dig +short TXT _dnslink.yourdomain.com

  • 預期結果: 輸出中包含 IPFS 路徑,例如:"dnslink=/ipfs/bafybeiay2koog2jnndn5gr2raytxh7evobry5lo2w4s7nhugc7xipy6aze"

整合閘道並測試解析

你的美國伺服器需要配置反向代理,以處理安全的 Web 流量。NGINX 會將進入的 Web 請求轉送到本機 IPFS 閘道連接埠。安全通訊端層(SSL)加密可以保護訪客,並提升網站可信度。你可以使用 Let’s Encrypt 與 Certbot 免費申請 SSL 憑證。

依照以下順序啟用自訂網域閘道的 HTTPS:

  1. 在主機系統(如 Ubuntu)上安裝 Certbot 及其 NGINX 外掛。

  2. 執行 sudo certbot --nginx -d ipfs.my-domain-name.com,啟動憑證簽發流程。

  3. 在互動式 CLI 中完成提示操作,讓 Certbot 自動更新 NGINX 設定並強制啟用 HTTPS 重新導向。

現在,在任意瀏覽器中進行測試。將你的自訂網域輸入瀏覽器網址列,你位於美國的本機 IPFS 節點會立即從網路擷取內容。你的去中心化靜態網站現已上線,並可安全地向大眾開放存取!

你已成功將本機伺服器管理與公共 DNS 記錄結合起來,實現去中心化網站的伺服器租用。

你可以透過以下簡單的日常檢查來維護整套部署:

  • 在節點預熱完成後,追蹤你的節點數量,確保連線穩定。

  • 管理磁碟使用上限,避免意外觸發垃圾回收導致空間不足。

  • 定期檢查各遠端服務供應商上的固定狀態,以維持備援。

  • 注意公共閘道會根據你的 DNS TTL,將更新後的 DNSLink 記錄作為 max-age 快取時間,並附帶 Last-Modified 時間戳進行快取。

當你為 IPFS 節點伺服器租用新版本網站後,請透過公共閘道測試自訂網域解析情況,以驗證全球存取效能!

常見問題(FAQ)

如何檢查 IPFS 節點是否運作正常?

在終端機中執行 ipfs stats bw 可檢視頻寬使用情況。你也可以透過以下簡單指令檢查目前活躍的網路節點連線:

ipfs swarm peers

注意: 較高的節點數通常代表你在全球 IPFS 網路中的連線性更佳。

為什麼伺服器租用靜態網站時要優先使用 CIDv1 而不是 CIDv0?

現代瀏覽器會強制將網域名稱轉為小寫。CIDv1 採用不區分大小寫的 Base32 編碼,可避免連結失效,同時保留相對路徑,並為託管的應用程式提供獨立的瀏覽器安全來源。

當伺服器磁碟空間耗盡時會發生什麼事?

當儲存空間接近容量上限時,節點會觸發自動垃圾回收,安全地刪除未固定的快取檔案。

| 內容狀態 | 垃圾回收行為 | | : | : | | 未固定檔案 | 自動刪除 | | 已固定檔案 | 永久保留 |

能否在 IPFS 節點上進行動態網站的伺服器租用?

不能。IPFS 原生僅提供靜態資源,例如 HTML、CSS、前端 JavaScript 與圖片。不過,你仍可透過在前端整合外部公共 API 或 Web3 智慧合約,為應用程式增加動態功能。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Teams