---
title: "Direct Shreds - UDP Forwarding (Raw Shreds)"
description: "UDP Forwarding 透過 UDP 將原始 Shreds 送達已設定的公用 IPv4 位址與連接埠，分為 UDP Forwarding Standard 與 UDP Forwarding Premium。"
canonical: "https://erpc.global/zh-tw/doc/shredstream/udp-forwarding/"
locale: "zh-tw"
---

# Direct Shreds - UDP Forwarding (Raw Shreds)

UDP Forwarding 透過 UDP 將原始 Shreds 送達您設定的單一公用 IPv4 位址與連接埠。UDP Forwarding Standard 與 UDP Forwarding Premium 的差別在於 Shreds 從您所選區域送達您的方式：使用 Standard 時，ERPC 從該區域的一個節點將 Shreds 轉送給您；使用 Premium 時，則由網狀網路轉送。

## UDP Forwarding Standard

**UDP Forwarding Standard** 透過 UDP 將原始 Shreds 轉送到為您的訂閱設定的公用 IPv4 位址與連接埠。請在初始設定時選擇一個可用區域，並將有效且非空的公用 IPv4 位址與連接埠儲存為目的地。目的地之後可以更新。ERPC 依 30 秒的重新整理週期套用轉送設定，無需透過 heartbeat 啟用。您也可以之後在儀表板中變更區域，次數不限。變更區域會改變來源 IP，因此接收端的防火牆需要允許新的來源 IP。訂閱遷移到新區域期間，資料傳送會短暫中斷。如果新區域目前沒有可用容量，則不會執行此次變更，區域和目的地都維持原狀。

- ERPC 從您所選區域的一個節點透過 UDP 將原始 Shreds 轉送到已設定的目的地，因此 Shreds 會從單一來源 IP 送達您。

## UDP Forwarding Premium

**UDP Forwarding Premium** 透過 UDP 將原始 Shreds 從網狀網路送達為您的訂閱設定的公用 IPv4 位址與連接埠。該網狀網路轉送每個 Shred 的副本中最先抵達該網路的那一份；儀表板上顯示的每個來源 IP 都可能是傳送端。Premium 的 Shreds 往往比 Standard 早 1–3 ms 抵達。2026 年 10 月 30 日，位於法蘭克福的 ERPC 接收端在一次 120 秒的測量中同時接入 Standard 與 Premium，並對兩者都收到的每個 Shred，比較其在 Standard 與 Premium 上的首次抵達時間。

請輸入您自己的接收主機的公用 IPv4 位址與連接埠，並從 7 個可用區域中選擇一個。儲存目的地後，狀態會顯示為「套用中」，設定套用完成後即開始資料傳送。

請在接收端的防火牆中，逐一允許儀表板上顯示的所有來源 IP，每個 IP 使用一條 `/32` 規則。

變更區域後，防火牆需要允許的來源 IP 也會隨之改變。在新區域套用完成之前，資料傳送會持續中斷；套用完成後，新的來源 IP 會顯示在儀表板中。如果所選區域目前無法受理此次變更，該變更不會儲存，已儲存的區域與目的地維持原狀。上一次變更仍在套用中時，或剛受理某次變更之後，不會受理新的變更。

即使不變更區域，來源 IP 也可能改變。如果這項改變需要新增防火牆規則，我們會透過電子郵件或支援團隊通知您。

## UDP 須知

- UDP 不提供連線建立、重傳或順序保證；您的接收端應據此處理封包。

注意：共用的 Shreds gRPC 端點以 TCP 運作，因此比 UDP Shreds 慢。

## 使用 Solana Stream SDK 動手試試

- 範例程式碼（`shreds-udp-rs`，Rust）：新代幣偵測只是常見的範例，可以換成您自己的偵測目標。  
  https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs  
- 在接收端設定您為 UDP Forwarding 儲存的目的地 `ip:port`。
- 還沒使用 UDP 嗎？可以在本機或您自己的伺服器上執行，查看記錄並自訂鉤子。

## 收不到 UDP 封包時

首先，在主機的網路介面上擷取流量。

### UDP Forwarding Standard

設定目的地後，UDP 轉送會自動開始。無需透過 heartbeat 啟用；heartbeat 回傳 `UNIMPLEMENTED` 並不代表轉送已停用。

請將預留位置替換為針對您的串流顯示的 ERPC 來源 IP，以及您設定的目的地連接埠。

Linux（`tcpdump`）：

```bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'
```

Windows（`Pktmon`，以系統管理員身分執行）：

```powershell
pktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time
```

### UDP Forwarding Premium

請將來源 IP 的預留位置替換為儀表板上顯示的來源 IP，並將 `<DESTINATION_PORT>` 替換為您設定的目的地連接埠。

Linux（`tcpdump`）：

```bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and (src host <SOURCE_IP_1> or src host <SOURCE_IP_2>)'
```

請保留括號：拿掉括號後，`udp dst port` 篩選條件只會套用到第一個來源 IP，而第一個之後的每個來源 IP 送出的所有流量，無論協定與連接埠，都會被擷取。每個來源 IP 使用一個 `src host` 條件；只有一個來源 IP 時，請拿掉 `or` 部分與括號。

Windows（`Pktmon`，以系統管理員身分執行）：

```powershell
pktmon filter add ERPC-UDP-1 -t UDP -i <SOURCE_IP_1> -p <DESTINATION_PORT>
pktmon filter add ERPC-UDP-2 -t UDP -i <SOURCE_IP_2> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time
```

請為每個來源 IP 新增一行 `pktmon filter add`，並依範例為篩選器名稱編號；若在一個篩選器中列出多個 IP，比對到的會是這些 IP 之間的流量。只有一個來源 IP 時，只保留第一行篩選器。

### 防火牆與接收端檢查

1. 如果擷取結果一直是零，請同時檢查作業系統防火牆以及作業系統以外的防火牆。Hetzner 可能會在 Cloud Firewall 或交換器連接埠的 Robot 防火牆過濾流量。在 AWS 上，請檢查 Security Group 與子網路的 Network ACL。
2. 請依您使用的方案新增允許規則：
   - UDP Forwarding Standard：允許從 `<ERPC_SOURCE_IP>/32` 到目的地連接埠 `<DESTINATION_PORT>` 的傳入 UDP 流量。ERPC 使用動態 UDP 來源連接埠，因此請勿限制來源連接埠。
   - UDP Forwarding Premium：允許從每個 `<SOURCE_IP_n>/32` 到目的地連接埠 `<DESTINATION_PORT>` 的傳入 UDP 流量，儀表板上顯示的每個來源 IP 各一條規則。請勿限制來源連接埠。
3. 如果擷取結果中看得到封包，但應用程式收不到，請將接收端繫結到 `0.0.0.0:<DESTINATION_PORT>` 而非 localhost，然後檢查本機防火牆以及 socket/處理程序設定。

更新規則後如果仍然收不到封包，請將擷取持續時間、封包數量、來源 IP、目的地 IP 和目的地連接埠提供給支援團隊。

供應商參考文件：[Hetzner Cloud Firewall](https://docs.hetzner.com/cloud/firewalls/overview/)、[Hetzner Robot Firewall](https://docs.hetzner.com/robot/dedicated-server/firewall/)、[AWS Security Groups](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)、[AWS Network ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) 和 [Microsoft Pktmon](https://learn.microsoft.com/en-us/windows-server/networking/technologies/pktmon/pktmon)。

## 資源

- 所有程式碼和 README 文件都在 Solana Stream SDK 儲存庫中：  
  https://github.com/ValidatorsDAO/solana-stream
