---
title: "Direct Shreds - UDP Forwarding (Raw Shreds)"
description: "UDP Forwarding は、Raw Shreds を UDP で届けます。宛先は、設定した 1 つの公開 IPv4 アドレスとポートです。Standard と Premium があります。"
canonical: "https://erpc.global/ja/doc/shredstream/udp-forwarding/"
locale: "ja"
---

# Direct Shreds - UDP Forwarding (Raw Shreds)

UDP Forwarding は、Raw Shreds を UDP で、指定した 1 つの公開 IPv4 アドレスとポートへ届けます。Standard と Premium があります。どちらも、ダッシュボードで選んだリージョンから届けます。受信先へ送るのは、Standard では ERPC のノード、Premium では配信メッシュです。

## UDP Forwarding Standard

**UDP Forwarding Standard では、選んだリージョンの ERPC のノードが、Raw Shreds を設定済みの受信先へ UDP で転送します。受信側で許可する送信元 IP は 1 つです。** ダッシュボードで初回設定時に利用可能なリージョンを一つ選び、受信先の公開 IPv4 アドレスとポートを設定してください。受信先は後から更新できますが、空欄にはできません。初回設定で選んだリージョンも、後からダッシュボードで何回でも変更できます。リージョンを変更すると、転送の送信元 IP が変わります。受信側のファイアウォールで、新しい送信元 IP を許可する必要があります。転送が新しいリージョンへ移る間は、配信が一時的に途切れます。変更先のリージョンに現在空きがないときは、その変更は行われず、リージョンも受信先も変わりません。

- ERPC は、ダッシュボードに設定した公開 IPv4 アドレスとポートへ Raw Shreds を転送します。
- 設定は30秒ごとの更新サイクルで反映されます。Heartbeat による有効化は必要ありません。

## UDP Forwarding Premium

**UDP Forwarding Premium では、配信メッシュが、同じ Shred については先に着いたものを、設定済みの受信先へ UDP で届けます。** ダッシュボードで 7 つのリージョンから選んでください。受信先には、ご自身の受信側ホストの公開 IPv4 アドレスとポートを設定してください。

届くのは、Premium のほうが Standard より、多くの場合 1–3 ms 速いです。フランクフルトにある ERPC の受信機で、2026 年 10 月 30 日に 120 秒間、1 回測りました。Standard と Premium を並行受信し、両方に届いた同じ Shred の最初の到着時刻をそれぞれ比べました。

- 受信側のファイアウォールでは、ダッシュボードに表示されるすべての送信元 IP を、1 つずつ `/32` で許可してください。
- 受信先を保存すると、状態が適用中になります。反映が終わると、配信が始まります。
- リージョンを変更すると、許可する送信元 IP が変わります。反映が終わるまで、配信は途切れます。
- 新しい送信元 IP は、反映の後にダッシュボードに表示されます。受信側のファイアウォールで許可してください。
- 選んだリージョンを現在受け付けられないときは、その変更は保存されません。保存済みのリージョンと受信先は前のままです。
- 前の設定や変更を反映している途中と、受け付けた直後は、次の変更を受け付けません。
- リージョンを変更しなくても、送信元 IP が変わることがあります。許可を足す必要がある変化は、メールまたはサポートからお知らせします。

## UDP の注意点

- UDP は接続確立・再送・順序保証を行わないため、受信側で欠落や順不同を扱う前提があります。

※ 共有エンドポイントで提供される Shreds gRPC は TCP ベースのため、UDP より遅い接続です。

## SDK のサンプルで試す

- サンプルコード: SDK リポジトリの `shreds-udp-rs`（Rust）。問い合わせが多い new-token detection を例にしていますが、ターゲットは自由に差し替え可能です。  
- リポジトリ: https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs  
- UDP Forwarding 利用者: サンプルを公開 IPv4 アドレスとポートでリッスンさせ、そのアドレスとポートをダッシュボードの受信先に設定してください。設定先に届いたパケットを、サンプルで確認できます。
- まだ UDP を使っていない方: リポジトリをクローンし、ローカルまたは手元の Linux サーバー上で実行してみてください。まずはログを眺め、必要に応じてフックを好みの形にカスタムできます。

## 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 の数に合わせて、`<SOURCE_IP_1>`、`<SOURCE_IP_2>` のように並べてください。

Linux（`tcpdump`）:

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

送信元 IP を並べるときは、括弧を外さないでください。外すと、1 つ目より後に並べた送信元 IP からはプロトコルもポートも問わず、すべてのパケットが計測されます。

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
```

Windows では、送信元 IP ごとにパケットフィルターを 1 本ずつ追加します。1 本のパケットフィルターに IP を並べると、並べた IP 同士の間の通信が対象になるためです。

送信元 IP が 1 つのときは、Linux は括弧を付けず、`src host` を 1 つだけ書きます。Windows はパケットフィルターを 1 本にします。

### ファイアウォールと受信側の確認

1. 計測が 0 件のままなら、OS のファイアウォールと OS 外部のファイアウォールを両方確認してください。Hetzner では Cloud Firewall またはスイッチポート側の Robot Firewall、AWS では Security Group とサブネットの Network ACL が通信を遮断している場合があります。
2. 許可する送信元 IP は、Standard と Premium で異なります。
   - Standard: `<ERPC_SOURCE_IP>/32` から宛先ポート `<DESTINATION_PORT>` への inbound UDP を許可してください。ERPC の UDP 送信元ポートは動的なため、送信元ポートは制限しないでください。
   - Premium: ダッシュボードに表示される送信元 IP ごとに、`<SOURCE_IP_n>/32` から宛先ポート `<DESTINATION_PORT>` への inbound UDP を許可してください。送信元ポートは制限しないでください。
3. 計測ではパケットが見えるのにアプリケーションで受信できない場合は、localhost ではなく `0.0.0.0:<DESTINATION_PORT>` で受信し、OS のローカルファイアウォールと socket / process 設定を確認してください。

ルール変更後もパケットが届かない場合は、計測時間、パケット数、送信元 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
