【要約】ping、tracerouteコマンドを使用した、SSHできない時の切り分け方 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
インフラエンジニアが、新設したLinuxサーバへのSSH接続ができない問題に直面した際、原因の特定に苦慮する。特に「pingは通るのにSSHができない」といった状況で、通信レイヤーの混同により調査が停滞する。具体的には以下の課題がある。
- ・ICMP(ping)とTCP(SSH)の通信特性の違いを理解できていない。
- ・障害箇所がネットワーク経路、ファイアウォール、サービス、認証のどこにあるか判別できない。
- ・AWS環境におけるSecurity GroupやNACLなどのクラウド特有の設定を見落とす。
// Approach
通信の到達範囲を段階的に絞り込む「レイヤー別切り分けアプローチ」を採用する。単一のコマンドで判断せず、以下のステップで検証を進める。
1.SSHエラーメッセージの解析:Connection timed out、Connection refused、Permission deniedの差異から、問題の所在を推論する。
2.pingによるICMP疎通確認:宛先IPアドレスがネットワーク上で生存しているかを確認する。
3.tracerouteによる経路確認:通信が途切れる地点を特定し、経路上の問題かを確認する。
4.ncまたはtelnetによるポート確認:TCP 22番ポートが開放され、サービスが応答するかを確認する。
5.AWS環境のインフラ検証:Security Group、NACL、ルートテーブルの設定を網羅的に確認する。
// Result
本手法を導入することで、エンジニアは「何ができていて、何ができていないのか」を客観的に把握できる。これにより、闇雲な設定変更を避け、最短経路での復旧が可能となる。特に、エラーメッセージに基づいた論理的な切り分けは、トラブルシューティングのMTTR(平均復旧時間)を大幅に短縮する効果がある。
Senior Engineer Insight
> 本記事は基礎的だが、トラブルシューティングの「型」として極めて重要である。現場では、単に「繋がらない」ではなく、「ICMPは通るがTCP 22番がTimeoutになる」といった具体的な状況報告が求められる。この切り分け能力は、大規模環境でのMTTR短縮に直結する。また、クラウド環境特有のレイヤー(SG/NACL)を考慮している点も実戦的である。