pingは成功する。
しかしSSHもHTTPも接続できない。
この状態は、
「ネットワークは正常」とは言えません。
pingはICMP(制御用プロトコル)、 TCPはセッション型通信です。
動作条件がまったく違います。
本記事では、
- なぜpingは通るのか
- TCPが失敗する代表パターン
- どこで止まっているかの見分け方
- 原因ごとの具体的対処法
- 「解決した」と言える確認基準
まで、実務レベルで解説します。
目次
まず理解すべき:ICMPとTCPは別物
| 項目 | ping (ICMP) | TCP通信 |
|---|---|---|
| ポート | 不要 | 必要 |
| セッション | なし | 3way handshake必要 |
| FW制御 | 許可されやすい | 制限されやすい |
| MTU影響 | 小さいため影響受けにくい | 受けやすい |
ping成功は、
「IPレベル到達確認」に過ぎません。
最初にやるべき確認
1. ポートはLISTENしているか
ss -lntp | grep ポート番号
LISTENしていなければ、ネットワーク以前の問題です。
解決方法
- サービス起動確認
- bindアドレス確認(0.0.0.0 or 特定IP)
次に見る:SYNは届いているか
tcpdump -nn port 80
確認ポイント:
- SYNが届いているか
- SYN-ACKが返っているか
パターン別:原因と対処
① SYNが届いていない
原因
- FWでTCPのみ遮断
- ACL設定ミス
- ルーティング不備
確認方法
- FWログ確認
- 中間機器でtcpdump
解決方法
- TCPポート許可
- 正しい経路へ修正
解決判定:SYNがサーバまで到達すること。
② SYNは来るがSYN-ACKが返らない
原因
- サービス未起動
- ローカルFW(iptables/firewalld)拒否
- rp_filterで破棄
確認
iptables -L -n
sysctl net.ipv4.conf.all.rp_filter
解決方法
- ポート開放
- rp_filter調整(非対称ルート時)
解決判定:SYN-ACKが返ること。
③ SYN-ACKは出るがACKが戻らない
原因
- 戻り経路不一致(非対称ルーティング)
- NATセッション破棄
- セキュリティ機器による遮断
確認
- tcpdumpで双方向確認
- tracerouteで経路確認
解決方法
- 経路対称化
- NAT設定修正
解決判定:3way handshakeが完了すること。
④ 接続は確立するがすぐ切れる
原因
- MTU不一致
- MSS調整不足
- アプリ側即時close
確認
ping -M do -s 1472 相手IP
解決方法
- MSS clamp設定
- MTU統一
解決判定:データ送受信が継続できること。
よくある誤解
- ping通る=通信OK → ❌
- ポート開いてる=接続できる → ❌
- FW通しているはず → ❌(ログ確認必須)
最短切り分けフロー
- ssでLISTEN確認
- tcpdumpでSYN到達確認
- SYN-ACK応答確認
- ACK戻り確認
- データ送受信確認
この順で追えば必ず原因に到達します。
解決したと言える状態
- 3way handshake成功
- データが双方向に流れる
- FWログでdenyなし
- 再送が発生していない
まとめ
pingが通るのにTCP通信できない理由は、
ICMP成功とTCP成功は別条件だから
です。
主な原因は:
- ポート未起動
- FW制御
- 非対称ルーティング
- MTU不一致
- NAT問題
「どの段階で止まっているか」をtcpdumpで可視化すれば必ず解決できます。
あわせて読みたい


ARPキャッシュが原因の通信断トラブル集【症状別に原因と対処を完全解説】
ネットワーク障害の現場で、「設定は正しいのに通信できない」 「しばらく待つと直る」――このような症状の裏に潜んでいるのが ARPキャッシュ問題 です。 本記事では、実…
あわせて読みたい


TCPコネクションが確立しない時の原因と確認手順(SYN/ACK解析)
「pingは通るのにアプリケーション通信ができない」「特定のポートだけ接続できない」 このようなトラブルの多くは、TCPコネクション確立(3ウェイハンドシェイク)の …
