<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tcpdump on K-Life Hack | システムアーキテクチャ &amp; DevOps</title><link>https://klifehack.com/tags/tcpdump/</link><description>Recent content in Tcpdump on K-Life Hack | システムアーキテクチャ &amp; DevOps</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Fri, 09 Oct 2026 10:46:32 +0900</lastBuildDate><atom:link href="https://klifehack.com/tags/tcpdump/index.xml" rel="self" type="application/rss+xml"/><item><title>Ping疎通可能でもTCP接続が失敗する境界領域のトラブルシューティング</title><link>https://klifehack.com/p/ping-ok-tcp-connection-failed-troubleshooting/</link><pubDate>Fri, 09 Oct 2026 10:46:32 +0900</pubDate><guid>https://klifehack.com/p/ping-ok-tcp-connection-failed-troubleshooting/</guid><description>&lt;p&gt;インフラストラクチャの運用において、「Pingは通るが、サーバーへの接続（SSHやHTTPなど）が失敗する」という事象は頻繁に発生します。ICMPによるL3レベルの疎通確認のみに依存し、L4以上のトランスポート層やL7アプリケーション層の検証を怠ることは、障害復旧の遅延や誤った原因特定を招く要因となります。&lt;/p&gt;&#10;&lt;p&gt;ICMPエコーテストは低レイテンシかつパケットロス0%で成功している状態を示します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ping 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PING 192.168.10.100 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;192.168.10.100&lt;span style="color:#f92672"&gt;)&lt;/span&gt; 56&lt;span style="color:#f92672"&gt;(&lt;/span&gt;84&lt;span style="color:#f92672"&gt;)&lt;/span&gt; bytes of data.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt; bytes from 192.168.10.100: icmp_seq&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; ttl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt; time&lt;span style="color:#f92672"&gt;=&lt;/span&gt;0.3 ms&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt; bytes from 192.168.10.100: icmp_seq&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; ttl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt; time&lt;span style="color:#f92672"&gt;=&lt;/span&gt;0.2 ms&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;しかし、SSHセッションやHTTPリクエストを開始すると、接続に失敗します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ssh 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh: connect to host 192.168.10.100 port 22: Connection refused&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;あるいは、接続試行時にタイムアウトが発生します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ curl http://192.168.10.100:8080&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl: &lt;span style="color:#f92672"&gt;(&lt;/span&gt;7&lt;span style="color:#f92672"&gt;)&lt;/span&gt; Failed to connect to 192.168.10.100 port 8080: Connection timed out&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;「Pingが成功したためネットワークは正常であり、接続失敗はサーバー自体の破損を意味する」という仮定は、技術的に誤りです。ICMPはネットワーク層（L3）で動作するのに対し、SSH、HTTP、HTTPS、PostgreSQL、MySQL、Redisなどの主要なアプリケーションプロトコルは、特定のポート番号にバインドされたトランスポート層（L4）のTCPソケットに依存しているためです。&lt;/p&gt;&#10;&lt;p&gt;本稿では、この境界ギャップを体系的に分解し、Linuxの3つのコアユーティリティである &lt;code&gt;ss&lt;/code&gt;、&lt;code&gt;nc&lt;/code&gt;、&lt;code&gt;tcpdump&lt;/code&gt; を中心とした診断手法を確立します。&lt;/p&gt;&#10;&lt;h2 id="1-ネットワーク層の抽象化とサービスマッピング"&gt;1. ネットワーク層の抽象化とサービスマッピング&#10;&lt;/h2&gt;&lt;p&gt;💡 通信のボトルネックを効果的に特定するために、対象サービスをOSI参照モデルの各レイヤーとトランスポートメカニズムにマッピングします。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;ICMP&lt;/b&gt;: &lt;code&gt;ping&lt;/code&gt; などの診断および制御メッセージングにのみ使用されます（トランスポートポートは存在しません）。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;SSH&lt;/b&gt;: TCP ポート &lt;code&gt;22&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;HTTP&lt;/b&gt;: TCP ポート &lt;code&gt;80&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;HTTPS&lt;/b&gt;: TCP ポート &lt;code&gt;443&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;PostgreSQL&lt;/b&gt;: TCP ポート &lt;code&gt;5432&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;MySQL / MariaDB&lt;/b&gt;: TCP ポート &lt;code&gt;3306&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;Redis&lt;/b&gt;: TCP ポート &lt;code&gt;6379&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;ICMPはL4のTCPリスニングソケットとは独立して動作するため、ICMPエコーリクエストに対する応答があっても、TCPポートが開放されている、あるいは到達可能である保証はありません。&lt;/p&gt;&#10;&lt;h2 id="2-ping-の低レイヤーメカニズム"&gt;2. &lt;code&gt;ping&lt;/code&gt; の低レイヤーメカニズム&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ping 192.168.10.100&lt;/code&gt; を実行すると、宛先ホストに対して &lt;b&gt;ICMP Echo Request&lt;/b&gt; パケット（Type 8）が送信され、宛先ホストは &lt;b&gt;ICMP Echo Reply&lt;/b&gt; パケット（Type 0）を返します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+------------------------+ +------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Client: 192.168.10.50 | | Server: 192.168.10.100 |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+------------------------+ +------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |------------ ICMP Echo Request (Type 8) -------------&amp;amp;gt;|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |&amp;amp;lt;----------- ICMP Echo Reply (Type 0) ----------------|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ping of 成功は、クライアントからローカルルーティング、ゲートウェイ、物理ネットワーク、ターゲットのIPスタックを経て、ICMP応答が戻るパスが正常であることを確認するに留まります。ファイアウォールルールがTCPフレームを許可しているか、あるいはホスト上のアプリケーションデーモンがアクティブにソケットを処理しているかは検証できません。&lt;/p&gt;&#10;&lt;h2 id="3-tcp-3-way-ハンドシェイクの構造"&gt;3. TCP 3-Way ハンドシェイクの構造&#10;&lt;/h2&gt;&lt;p&gt;TCPベースのサービス接続を開始する際、オペレーティングシステムのカーネルは、まず &lt;b&gt;TCP 3-Way ハンドシェイク&lt;/b&gt; を介してステートフルな接続を確立する必要があります。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Client (192.168.10.50) Server (192.168.10.100:22)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |----------------------- 1. SYN ------------------------------&amp;amp;gt;|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |&amp;amp;lt;------------------- 2. SYN-ACK ------------------------------|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |----------------------- 3. ACK ------------------------------&amp;amp;gt;|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[ ESTABLISHED ] [ ESTABLISHED ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;b&gt;SYN&lt;/b&gt;: クライアントは接続開始を要求するために、&lt;code&gt;SYN&lt;/code&gt; フラグを設定したTCPフレームを送信します。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;SYN-ACK&lt;/b&gt;: サーバーは &lt;code&gt;SYN&lt;/code&gt; を受信すると、ポート &lt;code&gt;22&lt;/code&gt; でリスニングしているソケットを確認し、接続状態バッファを割り当てて &lt;code&gt;SYN-ACK&lt;/code&gt; で応答します。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;ACK&lt;/b&gt;: クライアントは &lt;code&gt;ACK&lt;/code&gt; で応答し、両方のエンドポイントが &lt;code&gt;ESTABLISHED&lt;/code&gt; 状態に移行します。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;アプリケーションプロトコルが機能するためには、このL4シーケンスが正常に完了する必要があります。&lt;/p&gt;&#10;&lt;h2 id="4-ping疎通可能--tcp接続失敗の診断"&gt;4. 「Ping疎通可能 ＋ TCP接続失敗」の診断&#10;&lt;/h2&gt;&lt;p&gt;初期の診断状態を定義します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ping 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 成功 (パケットロス 0%)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 失敗&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この不一致により、障害ドメインを即座に絞り込むことができます。ICMPが機能していることはL3ルーティングと物理リンクが正常であることを示し、TCPの失敗はL4ソケット、ファイアウォール、またはサービスデーモンの障害を示します。&lt;/p&gt;&#10;&lt;h2 id="5-nc-netcat-によるトランスポート層のプロービング"&gt;5. &lt;code&gt;nc&lt;/code&gt; (Netcat) によるトランスポート層のプロービング&#10;&lt;/h2&gt;&lt;p&gt;Netcat (&lt;code&gt;nc&lt;/code&gt;) は、TCPおよびUDPの接続アナライザーとして機能します。実務環境における主なユースケースは、特定のソケットアドレスに対する生のTCP到達性を検証することです。&lt;/p&gt;&#10;&lt;p&gt;Netcatの実行には、ポートスキャン用のオプションを指定します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;-z`: Zero-I/Oモード（ペイロードデータを送信せずにリスニングデーモンをスキャン）。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;-v&lt;/code&gt;: 詳細出力モード。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;接続テストの実行結果から、ネットワークの状態を判定します。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;ハンドシェイク成功&lt;/b&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Connection to 192.168.10.100 22 port [tcp/ssh] succeeded!&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;失敗パターン A&lt;/b&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nc: connect to 192.168.10.100 port 22 failed: Connection refused&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;失敗パターン B&lt;/b&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nc: connect to 192.168.10.100 port 22 failed: Connection timed out&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;b&gt;Connection Refused&lt;/b&gt; と &lt;b&gt;Connection Timed Out&lt;/b&gt; の違いを理解することは、根本原因の特定において極めて重要です。&lt;/p&gt;&#10;&lt;h2 id="6-connection-refused-と-connection-timeout-のメカニズム"&gt;6. Connection Refused と Connection Timeout のメカニズム&#10;&lt;/h2&gt;&lt;h3 id="connection-refused-の仕組み"&gt;Connection Refused の仕組み&#10;&lt;/h3&gt;&lt;p&gt;⚠️ &lt;code&gt;Connection refused&lt;/code&gt; エラーは、クライアントの &lt;code&gt;SYN&lt;/code&gt; パケットが宛先ホストのカーネルに到達したものの、ホストが明示的に接続を拒否し、TCP &lt;b&gt;Reset (&lt;code&gt;RST&lt;/code&gt;)&lt;/b&gt; フレームを返したことを示します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Client Server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |--------------------------- SYN ----------------------------&amp;amp;gt;| (宛先ホストに到達)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | (リスニング中のプロセスなし)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |&amp;amp;lt;------------------------ TCP RST ---------------------------|&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="主な原因"&gt;主な原因:&#10;&lt;/h4&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;b&gt;サービスデーモンの停止&lt;/b&gt;: プロセス（&lt;code&gt;sshd&lt;/code&gt;、&lt;code&gt;nginx&lt;/code&gt;、&lt;code&gt;mysqld&lt;/code&gt; など）が起動していません。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;誤ったサービスポート&lt;/b&gt;: アプリケーションがデフォルト以外のポート（例：&lt;code&gt;22&lt;/code&gt; ではなく &lt;code&gt;2222&lt;/code&gt;）でリスニングしています。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;バインドインターフェースの不整合&lt;/b&gt;: デーモンが &lt;code&gt;0.0.0.0&lt;/code&gt; ではなく &lt;code&gt;127.0.0.1&lt;/code&gt; のみにバインドされています。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;アクティブなパケットフィルタリング&lt;/b&gt;: ローカルホストのファイアウォールが、パケットを破棄（DROP）するのではなく、明示的にTCP Resetパケットを返す（REJECT）ように設定されています。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="connection-timeout-の仕組み"&gt;Connection Timeout の仕組み&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Connection timed out&lt;/code&gt; エラーは、クライアントが &lt;code&gt;SYN&lt;/code&gt; パケットを送信したものの、ソケットのタイムアウトしきい値が経過するまでに&lt;b&gt;応答が一切返ってこなかった&lt;/b&gt;場合に発生します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Client Network / Firewall / Target&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |--------------------------- SYN ----------------------------&amp;amp;gt;|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | ===&amp;amp;gt; [ 破棄 / ブロック ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | (応答なし) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | ... タイムアウト ... |&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="主な原因-1"&gt;主な原因:&#10;&lt;/h4&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;b&gt;ネットワークセキュリティによる破棄&lt;/b&gt;: クラウドのセキュリティグループ、ネットワークACL、またはハードウェアファイアウォールがインバウンドトラフィックをサイレントに破棄しています。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;ホストレベルのファイアウォールによる破棄&lt;/b&gt;: &lt;code&gt;iptables&lt;/code&gt;、&lt;code&gt;firewalld&lt;/code&gt;、または &lt;code&gt;nftables&lt;/code&gt; が &lt;code&gt;DROP&lt;/code&gt; アクションで設定されています。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;ルーティング障害&lt;/b&gt;: 中間ネットワークスイッチやルーターにおけるデフォルトルーティングの誤り、または静的ルートの欠落。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;非対称ルーティング / 戻りパスの失敗&lt;/b&gt;: サーバーは &lt;code&gt;SYN&lt;/code&gt; を受信して &lt;code&gt;SYN-ACK&lt;/code&gt; を送信したものの、戻りパスのルーティングでパケットが破棄または誤送信されています。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="7-ss-によるローカルソケットの検査"&gt;7. &lt;code&gt;ss&lt;/code&gt; によるローカルソケットの検査&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ss&lt;/code&gt; (Socket Statistics) ユーティリティは、Linuxプラットフォーム上のアクティブな内部ソケットを検査し、従来の &lt;code&gt;netstat&lt;/code&gt; ツールに代わるものとして使用されます。&lt;/p&gt;&#10;&lt;p&gt;ソケットの状態を確認するための診断コマンドを実行します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -lntp&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="フラグ仕様"&gt;フラグ仕様:&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;-l&lt;/code&gt;: リスニング（&lt;code&gt;LISTEN&lt;/code&gt;）状態のソケットのみを表示。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;-n&lt;/code&gt;: 数値アドレスとポートを表示（DNSやサービス名の解決によるオーバーヘッドを防止）。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;-t&lt;/code&gt;: TCPソケットを表示。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;-p&lt;/code&gt;: ソケットに関連付けられたプロセスIDと名前を表示（&lt;code&gt;root&lt;/code&gt; または &lt;code&gt;sudo&lt;/code&gt; 権限が必要）。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;コマンドの実行により、以下のようなソケット情報が出力されます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;State Recv-Q Send-Q Local Address:Port Peer Address:Port Process&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((&amp;#34;sshd&amp;#34;,pid=1234,fd=3))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:((&amp;#34;nginx&amp;#34;,pid=1500,fd=6))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN 0 128 127.0.0.1:8080 0.0.0.0:* users:((&amp;#34;java&amp;#34;,pid=2000,fd=20))&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="8-バインドアドレスの分析-127001-vs-0000"&gt;8. バインドアドレスの分析: &lt;code&gt;127.0.0.1&lt;/code&gt; vs &lt;code&gt;0.0.0.0&lt;/code&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Local Address:Port&lt;/code&gt; のバインド設定は、外部からの到達性を決定します。&lt;/p&gt;&#10;&lt;h3 id="ループバック隔離ケース-1270018080"&gt;ループバック隔離ケース (&lt;code&gt;127.0.0.1:8080&lt;/code&gt;)&#10;&lt;/h3&gt;&lt;p&gt;ソケットがループバックアドレスにのみバインドされている状態を示します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN 0 128 127.0.0.1:8080 0.0.0.0:*&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;アプリケーションプロセス（&lt;code&gt;java&lt;/code&gt;）は &lt;b&gt;ループバックインターフェース（&lt;code&gt;lo&lt;/code&gt;）&lt;/b&gt; にのみバインドされています。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[ 外部クライアント ] [ ターゲットサーバー ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 192.168.10.50 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |--- 192.168.10.100:8080 へのHTTPリクエスト ------&amp;amp;gt;| [ 物理インターフェース ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | (ブロック / ソケットなし)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | [ ループバックインターフェース ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | 127.0.0.1:8080 (Javaデーモン)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;ローカル検証&lt;/b&gt;: サーバー上で &lt;code&gt;curl http://127.0.0.1:8080&lt;/code&gt; を実行すると成功します。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;リモート検証&lt;/b&gt;: 外部クライアントから &lt;code&gt;curl http://192.168.10.100:8080&lt;/code&gt; を実行すると失敗します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="ワイルドカードipv4バインド-00008080"&gt;ワイルドカードIPv4バインド (&lt;code&gt;0.0.0.0:8080&lt;/code&gt;)&#10;&lt;/h3&gt;&lt;p&gt;ソケットがすべてのインターフェースにバインドされている状態を示します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN 0 128 0.0.0.0:8080 0.0.0.0:*&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ソケットは、ホストに割り当てられた&lt;b&gt;すべてのアクティブなIPv4ネットワークインターフェース&lt;/b&gt;（例：IP &lt;code&gt;192.168.10.100&lt;/code&gt; を持つ &lt;code&gt;ens160&lt;/code&gt;）を介したインバウンドTCPトラフィックを受け入れます。ファイアウォールが許可していれば、外部クライアントからの接続が可能です。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+-------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Server: 192.168.10.100 |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Interface ens160 [ 192.168.10.100 ] &amp;amp;lt;--- [ 外部リクエスト ] |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| v |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 0.0.0.0:8080 にバインドされたサービス (全インターフェースで受診) |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+-------------------------------------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="9-実務におけるトラブルシューティング事例"&gt;9. 実務におけるトラブルシューティング事例&#10;&lt;/h2&gt;&lt;h3 id="事例-1-pingは通るがsshが失敗する-connection-refused"&gt;事例 1: Pingは通るが、SSHが失敗する (&lt;code&gt;Connection Refused&lt;/code&gt;)&#10;&lt;/h3&gt;&lt;h4 id="環境構成"&gt;環境構成:&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;クライアント&lt;/b&gt;: &lt;code&gt;192.168.10.50&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;サーバー&lt;/b&gt;: &lt;code&gt;192.168.10.100&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;対象サービス&lt;/b&gt;: SSH (TCP ポート &lt;code&gt;22&lt;/code&gt;)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="ステップ-1-クライアント側での診断"&gt;ステップ 1: クライアント側での診断&#10;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ping 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 結果: 64 bytes from 192.168.10.100: icmp_seq=1 ttl=64 time=0.3 ms (成功)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 結果: nc: connect to 192.168.10.100 port 22 failed: Connection refused&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="ステップ-2-サーバー側でのソケット検査"&gt;ステップ 2: サーバー側でのソケット検査&#10;&lt;/h4&gt;&lt;p&gt;サーバーのローカルコンソールまたは帯域外（OOB）管理インターフェースにログインします。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -lntp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 出力結果:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:((&amp;#34;nginx&amp;#34;,pid=1500,fd=6))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TCPポート22がリスナーテーブルに存在しません。*&lt;/p&gt;&#10;&lt;h4 id="ステップ-3-サービス状態の確認と解決"&gt;ステップ 3: サービス状態の確認と解決&#10;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo systemctl status sshd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 出力: Active: inactive (dead)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo systemctl start sshd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo systemctl enable sshd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -lntp | grep &lt;span style="color:#e6db74"&gt;&amp;#39;:22&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 出力: LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((&amp;#34;sshd&amp;#34;,pid=3102,fd=3))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;クライアント側で再度 &lt;code&gt;nc -zv 192.168.10.100 22&lt;/code&gt; を実行すると、接続が成功します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="事例-2-プロセスは起動しているが外部アクセスが失敗する-bind-mismatch"&gt;事例 2: プロセスは起動しているが、外部アクセスが失敗する (&lt;code&gt;Bind Mismatch&lt;/code&gt;)&#10;&lt;/h3&gt;&lt;h4 id="診断状態"&gt;診断状態:&#10;&lt;/h4&gt;&lt;p&gt;アプリケーションサーバー上で &lt;code&gt;ss -lntp&lt;/code&gt; を実行すると、以下の結果が得られます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN 0 128 127.0.0.1:8080 0.0.0.0:* users:((&amp;#34;node&amp;#34;,pid=4211,fd=18))&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="疎通テスト"&gt;疎通テスト:&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;ターゲットサーバーから&lt;/b&gt;: &lt;code&gt;curl http://127.0.0.1:8080&lt;/code&gt; $\longrightarrow$ &lt;b&gt;200 OK&lt;/b&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;リモートクライアントから&lt;/b&gt;: &lt;code&gt;curl http://192.168.10.100:8080&lt;/code&gt; $\longrightarrow$ &lt;b&gt;接続拒否 (Refused)&lt;/b&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="診断と解決策"&gt;診断と解決策:&#10;&lt;/h4&gt;&lt;p&gt;アプリケーション（Node.js、Spring Boot、Nginxなど）の設定が &lt;code&gt;localhost&lt;/code&gt; に制限されています。ホストの設定（例：&lt;code&gt;server.host = 0.0.0.0&lt;/code&gt; または &lt;code&gt;LISTEN 0.0.0.0:8080&lt;/code&gt;）を変更し、サービスを再起動してソケットを外部インターフェースに公開します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="事例-3-サービスはバインドされているが外部接続がタイムアウトする"&gt;事例 3: サービスはバインドされているが、外部接続がタイムアウトする&#10;&lt;/h3&gt;&lt;h4 id="診断状態-1"&gt;診断状態:&#10;&lt;/h4&gt;&lt;p&gt;サーバーのソケットテーブルは正常に公開されています。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -lntp | grep &lt;span style="color:#e6db74"&gt;&amp;#39;:8080&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;128&lt;/span&gt; 0.0.0.0:8080 0.0.0.0:* users:&lt;span style="color:#f92672"&gt;((&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;java&amp;#34;&lt;/span&gt;,pid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;8820,fd&lt;span style="color:#f92672"&gt;=&lt;/span&gt;7&lt;span style="color:#f92672"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;しかし、クライアント側での実行は失敗します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nc: connect to 192.168.10.100 port &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt; failed: Connection timed out&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="ファイアウォールの検査"&gt;ファイアウォールの検査:&#10;&lt;/h4&gt;&lt;p&gt;出力が &lt;code&gt;Refused&lt;/code&gt; ではなく &lt;code&gt;Timeout&lt;/code&gt; であるため、インラインネットワークデバイスまたはホストのファイアウォールルールがパケットをサイレントに破棄しています。&lt;/p&gt;&#10;&lt;p&gt;ローカルホストのルールを確認します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo firewall-cmd --list-all&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# サービスおよびポートセクションに &amp;#39;8080/tcp&amp;#39; が存在するか確認&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo nft list ruleset&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;firewalld&lt;code&gt; でICMPがグローバルに許可されていても、ポート8080が除外されている場合、&lt;/code&gt;ping` は通過しますが、ポート8080へのL4 TCPトラフィックは破棄されます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Client (192.168.10.50) Server (192.168.10.100)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |----------------------- TCP SYN ----------------------------&amp;amp;gt;|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | [ Host Firewall (nftables) ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | [ Action: DROP Port 8080 ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | &amp;amp;lt;=== Timeout (SYN-ACKが送信されない) ========================|&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="10-tcpdump-によるディープパケット診断"&gt;10. &lt;code&gt;tcpdump&lt;/code&gt; によるディープパケット診断&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nc&lt;/code&gt; は接続結果を報告し、&lt;code&gt;ss&lt;/code&gt; はソケットのリスニング状態を示します。しかし、&lt;code&gt;tcpdump&lt;/code&gt; は実際のパケットの動きをキャプチャし、フレームレベルでの状態遷移を明らかにします。&lt;/p&gt;&#10;&lt;p&gt;ターゲットサーバーでパケットキャプチャを実行します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo tcpdump -nn -i ens160 tcp port &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;-n`: ホスト名を解決しない。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;-nn&lt;/code&gt;: ホスト名およびポート名を解決しない（数値IPとポートを表示）。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;-i ens160&lt;/code&gt;: 対象ネットワークインターフェース &lt;code&gt;ens160&lt;/code&gt; のトラフィックを監視。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;tcp port 8080&lt;/code&gt;: ポート8080を通過するTCPパケットのみをフィルタリング。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="11-tcpdump-によるパケットパターンの分析"&gt;11. &lt;code&gt;tcpdump&lt;/code&gt; によるパケットパターンの分析&#10;&lt;/h2&gt;&lt;h3 id="シナリオ-a-正常な-tcp-3-way-ハンドシェイク"&gt;シナリオ A: 正常な TCP 3-Way ハンドシェイク&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.001 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S], seq 1001&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.002 IP 192.168.10.100.8080 &amp;amp;gt; 192.168.10.50.52344: Flags [S.], seq 2001, ack 1002&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.003 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [.], seq 1002, ack 2002&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Flags [S]`: クライアントからの初期 SYN フレーム。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Flags [S.]&lt;/code&gt;: サーバーからの SYN-ACK 応答。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Flags [.]&lt;/code&gt;: クライアントからの ACK フレーム。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;診断&lt;/b&gt;: L4ハンドシェイクが完了し、接続が確立（ESTABLISHED）されています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="シナリオ-b-応答のないインバウンド-syn-の継続"&gt;シナリオ B: 応答のないインバウンド SYN の継続&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.001 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S], seq 1001&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:04.005 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S], seq 1001&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:10.009 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S], seq 1001&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;観察&lt;/b&gt;: クライアントが TCP &lt;code&gt;SYN&lt;/code&gt; を再送信しています。サーバーのインターフェースはパケットを受信していますが、アウトバウンドの &lt;code&gt;SYN-ACK&lt;/code&gt; (&lt;code&gt;[S.]&lt;/code&gt;) が送信されていません。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;診断&lt;/b&gt;: ホストレベルのセキュリティメカニズム（&lt;code&gt;iptables&lt;/code&gt;、&lt;code&gt;nftables&lt;/code&gt;、&lt;code&gt;SELinux&lt;/code&gt;、またはカーネルレベルのIPフィルタリング）が、ネットワークインターフェース層への流入直後にパケットを破棄しています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="シナリオ-c-サーバーは-syn-ack-を送信するがクライアントが-syn-を再送する"&gt;シナリオ C: サーバーは SYN-ACK を送信するが、クライアントが SYN を再送する&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.001 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.002 IP 192.168.10.100.8080 &amp;amp;gt; 192.168.10.50.52344: Flags [S.]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:04.005 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;観察&lt;/b&gt;: サーバーはインバウンド &lt;code&gt;SYN&lt;/code&gt; を処理して &lt;code&gt;SYN-ACK&lt;/code&gt; を送信していますが、クライアントは応答を受信していないかのように &lt;code&gt;SYN&lt;/code&gt; フレームを送信し続けています。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;診断&lt;/b&gt;: サーバーとクライアント間の&lt;b&gt;戻りパスのルーティング障害&lt;/b&gt;、または送信元方向へのエグレスファイアウォールによるフィルタリングが発生しています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Client (192.168.10.50) Server (192.168.10.100)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |----------------------- 1. SYN -----------------------------&amp;amp;gt;|&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | X &amp;amp;lt;=== [ 戻りルーティング障害 / エグレスブロック ] ---------| (SYN-ACKを送信)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;主な原因：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;ターゲットサーバー上のローカルデフォルトゲートウェイの設定誤り。&lt;/li&gt;&#10;&lt;li&gt;非対称ルーティングポリシーによる戻りパスの破棄。&lt;/li&gt;&#10;&lt;li&gt;NATテーブルの状態喪失。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="シナリオ-d-即時のリセット-syn-直後の-rst"&gt;シナリオ D: 即時のリセット (&lt;code&gt;SYN&lt;/code&gt; 直後の &lt;code&gt;RST&lt;/code&gt;)&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.001 IP 192.168.10.50.52344 &amp;amp;gt; 192.168.10.100.8080: Flags [S]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10:00:01.001 IP 192.168.10.100.8080 &amp;amp;gt; 192.168.10.50.52344: Flags [R.]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;観察&lt;/b&gt;: サーバーが即座にリセットフレーム（&lt;code&gt;[R.]&lt;/code&gt;）を返しています。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;b&gt;診断&lt;/b&gt;: パケットはホストのファイアウォールを通過しましたが、カーネルは TCP ポート 8080 でリスニングしているプロセスを見つけられませんでした。&lt;code&gt;ss -lntp&lt;/code&gt; でデーモンの状態を確認してください。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="12-カーネルカウンタによるソケット状態の追跡"&gt;12. カーネルカウンタによるソケット状態の追跡&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ss -ant&lt;/code&gt; を実行して、アクティブなソケット全体の接続状態の割り当てを確認します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -ant&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;State Recv-Q Send-Q Local Address:Port Peer Address:Port&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LISTEN &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;128&lt;/span&gt; 0.0.0.0:8080 0.0.0.0:*&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ESTAB &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; 192.168.10.100:8080 192.168.10.50:52344&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SYN-RECV &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; 192.168.10.100:8080 192.168.10.50:52345&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="重要なソケット状態と異常値"&gt;重要なソケット状態と異常値:&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;&lt;code&gt;SYN-SENT&lt;/code&gt; の累積 (クライアント側)&lt;/b&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ss -ant state syn-sent&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;意味*: クライアントアプリケーションが &lt;code&gt;SYN&lt;/code&gt; フレームを送信しましたが、&lt;code&gt;SYN-ACK&lt;/code&gt; を受信していません。アウトバウンドのブロックまたは経路上の破棄を示します。&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;b&gt;&lt;code&gt;SYN-RECV&lt;/code&gt; の累積 (サーバー側)&lt;/b&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ss -ant state syn-recv&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;意味*: サーバーが &lt;code&gt;SYN&lt;/code&gt; を受信して &lt;code&gt;SYN-ACK&lt;/code&gt; を送信しましたが、クライアントからの最終的な &lt;code&gt;ACK&lt;/code&gt; を待機したまま停止しています。クライアント側のインバウンドブロック、非対称ルーティング、またはSYNフラッド攻撃を示します。&lt;/p&gt;&#10;&lt;h2 id="13-上位レイヤーの診断-pingとtcpは成功するがアプリケーションが失敗する"&gt;13. 上位レイヤーの診断: PingとTCPは成功するが、アプリケーションが失敗する&#10;&lt;/h2&gt;&lt;p&gt;さらに高度な障害状態を定義します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ping 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 成功 (L3正常)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 成功 (L4 TCP接続正常)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ curl http://192.168.10.100:8080/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 失敗 / エラー / HTTP 5xx / 応答なし&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このシナリオは、ネットワーク層（L3）およびトランスポート層（L4）が完全に機能していることを証明しています。&lt;/p&gt;&#10;&lt;h3 id="curl-によるアプリケーション層のデバッグ"&gt;&lt;code&gt;curl&lt;/code&gt; によるアプリケーション層のデバッグ&#10;&lt;/h3&gt;&lt;p&gt;詳細なHTTP操作を実行して、ハンドシェイクとプロトコルのセマンティクスをキャプチャします。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ curl -v http://192.168.10.100:8080/&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;詳細な実行トレースの例を示します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Trying 192.168.10.100:8080...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Connected to 192.168.10.100 (192.168.10.100) port 8080 (#0)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; GET / HTTP/1.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; Host: 192.168.10.100:8080&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; User-Agent: curl/7.76.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt; Accept: */*&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; HTTP/1.1 504 Gateway Timeout&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Server: nginx/1.20.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Date: Mon, 10 Nov 2025 10:00:00 GMT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;amp;lt; Content-Type: text/html&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="l7障害の主な原因カテゴリ"&gt;L7障害の主な原因カテゴリ:&#10;&lt;/h4&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;b&gt;リバースプロキシの上流タイムアウト&lt;/b&gt;: Nginxはポート8080で接続を受け入れますが、ローカルで動作するバックエンド（例：&lt;code&gt;127.0.0.1:8000&lt;/code&gt; のNode/Javaアプリ）への到達に失敗し、HTTP &lt;code&gt;504 Gateway Timeout&lt;/code&gt; または &lt;code&gt;502 Bad Gateway&lt;/code&gt; を返します。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;HTTPホストヘッダーの拒否&lt;/b&gt;: アプリケーションの仮想ホストフィルタが、有効な &lt;code&gt;Host:&lt;/code&gt; リクエストヘッダーを欠くリクエストを破棄しています。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;アプリケーションのスレッドロック&lt;/b&gt;: データベース接続プールの枯渇や内部デッドロックにより、L4ソケットハンドシェイクが確立されているにもかかわらず、アプリケーション層がペイロードフレームを送信できません。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;TLS/SSLハンドシェイクの失敗&lt;/b&gt;: 暗号スイートの不一致、証明書の期限切れ、またはSNIの誤設定により、ポート443でのTCP初期化直後に接続が切断されます。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="14-udpプロトコル診断における注意点"&gt;14. UDPプロトコル診断における注意点&#10;&lt;/h2&gt;&lt;p&gt;TCPとは異なり、&lt;b&gt;UDPはコネクションレス&lt;/b&gt;です。セットアップフラグ（&lt;code&gt;SYN&lt;/code&gt;、&lt;code&gt;ACK&lt;/code&gt;）や状態マシンのチェックはありません。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;nc&lt;/code&gt; を使用してUDPの到達性をテストするには、&lt;code&gt;-u&lt;/code&gt; フラグが必要です。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zvu 192.168.10.100 &lt;span style="color:#ae81ff"&gt;53&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="診断上の課題"&gt;診断上の課題:&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;UDPスキャナーは0バイトのパケットを送信します。&lt;code&gt;ICMP Port Unreachable&lt;/code&gt; フレームが戻ってこない場合、&lt;code&gt;nc&lt;/code&gt; はポートが「開いている」または「開いているかフィルタされている」と判断します。&lt;/li&gt;&#10;&lt;li&gt;誤検知が非常に多いため、信頼性の高いUDPテストには、アクティブなパケットキャプチャと並行して、プロトコル固有のクエリツール（例：DNS UDP 53には &lt;code&gt;dig&lt;/code&gt;、SNMP UDP 161には &lt;code&gt;snmpwalk&lt;/code&gt;）を使用する必要があります。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo tcpdump -nn -i ens160 udp port &lt;span style="color:#ae81ff"&gt;53&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="15-システムエンジニアのためのツールマトリクス"&gt;15. システムエンジニアのためのツールマトリクス&#10;&lt;/h2&gt;&lt;p&gt;これらの診断ツールを統合された運用ワークフローに組み込みます。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ユーティリティ&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;対象レイヤー&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;コア機能&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;主な診断価値&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;b&gt;&lt;code&gt;ping&lt;/code&gt;&lt;/b&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;L3 (ネットワーク)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;生のICMP到達性とリンクレイテンシの評価&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;基本的なIPルーティングと物理的接続性の検証&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;b&gt;&lt;code&gt;nc&lt;/code&gt;&lt;/b&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;L4 (トランスポート)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;エンドツーエンドのTCP/UDPソケット可用性テスト&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;Connection Refused&lt;/code&gt; と &lt;code&gt;Timeout&lt;/code&gt; の識別&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;b&gt;&lt;code&gt;ss&lt;/code&gt;&lt;/b&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ホストカーネルソケット&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ローカルインターフェースバインドとソケット状態の検査&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;デーモンプロセスが正常に起動しバインドされているかの確認&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;b&gt;&lt;code&gt;tcpdump&lt;/code&gt;&lt;/b&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ワイヤプロトコル&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;生のネットワークインターフェースにおけるTCPフレームの監視&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;シーケンスフラグ（&lt;code&gt;SYN&lt;/code&gt;、&lt;code&gt;SYN-ACK&lt;/code&gt;、&lt;code&gt;RST&lt;/code&gt;）の分析による障害箇所の特定&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;b&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/b&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;L7 (アプリケーション)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;HTTP/Sアプリケーションプロトコルトランザクションの検証&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Webサーバーエラー、プロキシ設定ミス、バックエンドタイムアウトの特定&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="16-体系的なトラブルシューティングフロー"&gt;16. 体系的なトラブルシューティングフロー&#10;&lt;/h2&gt;&lt;p&gt;🛠️ 「Pingは通るが、サービスアクセスが失敗する」事象に遭遇した場合は、以下の論理フローに従って診断を進めます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ 事象発生: Pingは通るがサービスアクセスが失敗する ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 実行: nc -zv &amp;lt;server_ip&amp;gt; &amp;lt;port&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; +-----------------------------------+-----------------------------------+&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v v v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ Connection Refused ] [ Connection Timed Out ] [ Succeeded ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v v v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ターゲットサーバーにログイン サーバーでパケットキャプチャを実行: L3/L4レイヤーは正常。&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 実行: ss -lntp tcpdump -nn -i &amp;lt;nic&amp;gt; port &amp;lt;port&amp;gt; L7アプリケーション層を検証。&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | 実行: curl -v http://&amp;lt;ip&amp;gt;:&amp;lt;port&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; +---------------+ +---------------+ |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | | | v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v v v v アプリ/プロキシログを確認:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ ポートが未表示 ] [ 127.0.0.1 にバインド ] [ SYNが未到達 ] [ SYN到達、SYN-ACKなし ] - Systemdステータス&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | | | | - Nginx / アプリ例外&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v v v v - DB接続プール&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; デーモンの起動: アプリ設定の修正 ネットワークパスの確認: ホストファイアウォールの確認:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; systemctl start 0.0.0.0:&amp;lt;port&amp;gt; - ネットワークFW - firewall-cmd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;service&amp;gt; アプリ再起動 - セキュリティグループ - nftablesルール&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - ルーター設定 - カーネルIPフィルタリング&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="17-運用cliクイックリファレンス"&gt;17. 運用CLIクイックリファレンス&#10;&lt;/h2&gt;&lt;h3 id="l3-診断コマンド"&gt;L3 診断コマンド:&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# リンク到達性をテストするために4つのICMPパケットを送信&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ping -c &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt; 192.168.10.100&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="l4-ソケットプロービングコマンド-nc"&gt;L4 ソケットプロービングコマンド (&lt;code&gt;nc&lt;/code&gt;):&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 標準的な管理およびWebサービスのTCPポートを調査&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;443&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zv 192.168.10.100 &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# UDPドメイン名解決サービスを調査&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nc -zvu 192.168.10.100 &lt;span style="color:#ae81ff"&gt;53&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ローカルソケット検査コマンド-ss"&gt;ローカルソケット検査コマンド (&lt;code&gt;ss&lt;/code&gt;):&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# プロセス詳細を含むすべてのアクティブなリスニングTCPポートを一覧表示&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -lntp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 特定のターゲットソケットリスナーをフィルタリング&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -lntp | grep &lt;span style="color:#e6db74"&gt;&amp;#39;:8080&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 状態に関係なく、すべての数値TCP接続を表示&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -ant&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# SYN-SENTまたはSYN-RECV状態の接続を分離&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -ant state syn-sent&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo ss -ant state syn-recv&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="パケット分析コマンド-tcpdump"&gt;パケット分析コマンド (&lt;code&gt;tcpdump&lt;/code&gt;):&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 特定のインターフェースでTCPポート8080を監視&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo tcpdump -nn -i ens160 tcp port &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 生のSYN接続初期化リクエストをグローバルにキャプチャ&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo tcpdump -nn -i ens160 &lt;span style="color:#e6db74"&gt;&amp;#39;tcp[tcpflags] &amp;amp;amp; tcp-syn != 0&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 特定のホストIPアドレスに関連するすべてのトラフィックをキャプチャ&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo tcpdump -nn -i ens160 host 192.168.10.50&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# ICMP制御パケットとターゲットTCPアプリケーショントラフィックを多重追跡&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo tcpdump -nn -i ens160 &lt;span style="color:#e6db74"&gt;&amp;#39;tcp port 8080 or icmp&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ホストファイアウォール操作-firewalld--nftables"&gt;ホストファイアウォール操作 (&lt;code&gt;firewalld&lt;/code&gt; / &lt;code&gt;nftables&lt;/code&gt;):&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 現在のfirewalld設定を検査&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo firewall-cmd --list-all&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# TCP 8080の許可を永続的に追加&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo firewall-cmd --add-port&lt;span style="color:#f92672"&gt;=&lt;/span&gt;8080/tcp --permanent&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo firewall-cmd --reload&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 低レベルのnftablesルールセットバインディングを検査&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo nft list ruleset&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="lessons-learned"&gt;Lessons Learned&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;b&gt;Pingの成功はサービスの健全性を保証しない&lt;/b&gt;: ICMP Echo応答は、レイヤー3のインターフェース到達性とルーティングの正常性のみを証明します。レイヤー4のポート状態やレイヤー7のアプリケーション機能は検証されません。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;エラーメッセージの正確な解釈&lt;/b&gt;:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Connection refused&lt;/code&gt; は、パケットがホストに到達したものの、アクティブなリスナーがないか、明示的に &lt;code&gt;RST&lt;/code&gt; 拒否されたことを示します。&lt;b&gt;ホストのソケットバインド&lt;/b&gt; (&lt;code&gt;ss -lntp&lt;/code&gt;) を確認してください。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Connection timed out&lt;/code&gt; は、送信または戻りの経路でフレームが消失したことを示します。&lt;b&gt;ファイアウォール、セキュリティグループ、ルーティングループ&lt;/b&gt;を確認してください。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;&lt;b&gt;ワイヤキャプチャによるパケットパスの追跡&lt;/b&gt;: &lt;code&gt;tcpdump&lt;/code&gt; を使用して、「初期SYNフレームがインフラストラクチャスタックのどこまで到達したか」という根本的な問いに答えます。&lt;/li&gt;&#10;&lt;li&gt;&lt;b&gt;レイヤー範囲の段階的な分離&lt;/b&gt;: L3（&lt;code&gt;ping&lt;/code&gt;）からL4（&lt;code&gt;nc&lt;/code&gt;）へ順次テストし、ローカルのリスニング状態（&lt;code&gt;ss&lt;/code&gt;）を検査し、ワイヤ上の生のフレーム（&lt;code&gt;tcpdump&lt;/code&gt;）を検証し、最後にL7（&lt;code&gt;curl&lt;/code&gt;）で確認を行います。&lt;/service&gt;&lt;/port&gt;&lt;/port&gt;&lt;/ip&gt;&lt;/port&gt;&lt;/nic&gt;&lt;/port&gt;&amp;lt;/server_ip&amp;gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;</description></item></channel></rss>