0. 前置き
インターネット (TCP/IP) おけるネットワークの疎通確認として ping や telnet というツールをよく使用しますが、UDP の確認はあまりしません。
(ping と telnet が通る場合は UDP も通ることがほとんどのため)
しかし、各ノード (計算機) の計算能力が低かったり、低遅延や軽量データを目的とする場合には UDP がよく使用され、
- ping : ICMP パケット
- telnet : TCP パケット
最近のネットワークシステムはファイアウォールが組み込まれることが多いので UDP の確認も行う必要があります。
(TCP と UDP では設定が異なるため)
本稿は Linux サーバに対する UDP の疎通確認方法について記述します。(ついでに TCP も)
動作環境
項目 内容 IP アドレス 備考 サーバ OS AlmaLinux release 10.0 (Purple Lion) 192.168.11.20 本稿記述時の最新版 サーバ&クライアントソフト socat 1.7.4.1 dnf でインストールできる最新版 
現時点で本家の最新版は 1.7.4.4
本稿はポート番号に 10013 を使用するクライアント基本ソフト Windows11 Pro 24H2 192.168.11.40 本稿記述時の最新版 
クライアントのポート番号は動的とする
(動的: 固定されない値)Windows 用クライアントソフト Packet Sender 8.9.1 
1-1. socat をインストールする。
$ su1-2. UDP サーバの起動と確認
# dnf install -y socat
# socat -V | head | fold
# exit
$ which socat
1-2-1. daytime サーバの代わりを起動する。(UDP、本来は ポート 13)1-3. TCP サーバの起動と確認
$ socat -v UDP4-LISTEN:10013,fork SYSTEM:'date +UDP\:\\ %Y-%m-%d\\ %H\:%M\:%S' &1-2-2. 接続と接続不能を確認する。(UDP / TCP)
PID: 毎回異なる数値 (下記 1-2-3 で使用する)
[1] 54321 
$ echo | socat - UDP4:127.0.0.1:100131-2-3. daytime サーバの代わりを停止する。
$ echo | socat - TCP4:127.0.0.1:10013
起動しているのは UDP サーバだけなので、TCP で接続できたら何かがおかしい。
$ kill 54321
1-3-1. Web サーバを起動する。(TCP)
$ socat -v TCP4-LISTEN:10013,fork SYSTEM:'date +TCP\:\\ %Y-%m-%d\\ %H\:%M\:%S' &1-3-2. 接続と接続不能を確認する。(TCP / UDP)
PID: 毎回異なる数値 (下記 1-3-3 で使用する)
[1] 65432 
$ echo | socat - TCP4:127.0.0.1:100131-3-3. Web サーバを停止する。
$ echo | socat - UDP4:127.0.0.1:10013
起動しているのは TCP サーバだけなので、UDP で接続できたら何かがおかしい。
$ kill 65432
2. Windows で疎通確認 [ Windows ⇔ Linux ]
2-1. PacketSender をインストールする。
Windows で作業する2-2. Linux でサーバを用意する。
2-1-1. PacketSender のインストーラをダウンロードする。
ここから Installer for Windows をクリックし PacketSender をダウンロードする。2-1-2. インストーラを実行する。
(今回は PacketSender_x64_v8.9.1.exe だった)
PacketSender_x64_v8.9.1.exe を実行する。
UAC (User Account Control) の確認。
ボタンをクリックする。
⇓
インストールフォルダの選択。
ボタンをクリックする。
⇓
スタートメニューへの登録。(Windows10 用)
Windows11 のスタートにはピン留めされない。
ボタンをクリックする。
⇓
デスクトップにショートカットを作成する選択。
ボタンをクリックする。
⇓
インストール条件の確認。
ボタンをクリックする。
⇓
待つ。
⇓
インストール完了の確認。
ボタンをクリックする。
⇓
初回起動時の画面。
メッセージの言語を選択する。日本語は存在しない。
• English を選択して ボタンをクリックする。
⇓
週次の更新確認の選択。
ボタンをクリックする。
⇓
インストールと初期設定の完了。
Linux で作業する2-3. PacketSender で疎通確認する。
Well known (システムポート) を使わないので、通常ユーザで起動可能。
$ socat -v UDP4-LISTEN:10013,fork SYSTEM:'date +UDP\:\\ %Y-%m-%d\\ %H\:%M\:%S' &
PID: 毎回異なる数値 (下記 2-4 で使用する)
[1] 76543 
$ socat -v TCP4-LISTEN:10013,fork SYSTEM:'date +TCP\:\\ %Y-%m-%d\\ %H\:%M\:%S' &
PID: 毎回異なる数値 (下記 2-4 で使用する)
[1] 87654 
Windows で作業する2-4. Linux でサーバを停止する。
2-3-1. UDP を確認する。
下記条件を記入し ボタンをクリックする。2-3-2. TCP を確認する。
Name (空欄) ASCII (空欄) HEX (空欄) Address 192.168.11.20 Port 10013 Resend Delay (空欄) (Method) 
ログ (一番下のペイン) で以下の表示を確認する。
(あまり重要視しない箇所は背景を暗くした)
Time ^ From IP From Port To Address To Port Method Error ASCII Hex 2025-10-29 23:39:13.313 192.168.11.20 10013 You 53768 UDP UDP: 2025-10-29 23:39:14\n 55 44... 2025-10-29 23:39:13.302 You 53768 192.168.11.20 10013 UDP 
下記条件を記入し ボタンをクリックする。
Name (空欄) ASCII (空欄) HEX (空欄) Address 192.168.11.20 Port 10013 Resend Delay (空欄) (Method) 
ログ (一番下のペイン) で以下の表示を確認する。
(あまり重要視しない箇所は背景を暗くした)
Time ^ From IP From Port To Address To Port Method Error ASCII Hex 2025-10-29 23:40:48.289 192.168.11.20 10013 You 48599 TCP TCP: 2025-10-29 23:40:49\n 54 43... 
Linux で作業する
$ kill 76543
$ kill 87654