「DNSは正常に引ける」
「pingも通る」
「80番は通るのに443番だけNG」
「同じIPなのにポートによって結果が違う」
この症状はネットワーク・OS・ミドルウェア・LBの どこか1箇所でも設計ミスがあると必ず発生します。
本記事では、特定ポートだけ通信できない時の原因を体系的に整理し、 現場でそのまま使える切り分け手順と対策を解説します。
🔎 実務での切り分け順を知りたい方へ
ログ確認・リソース確認・ネットワーク確認など、Linux障害対応の基本フローを整理したまとめ記事はこちら。
▶ 症状別チェックリストと原因・対処の総まとめ
📌 ネットワーク障害を体系的に整理したい方へ
L2・L3・ポート・MTUなど、原因別に切り分けフローをまとめた総合ページはこちら。
▶ 症状別チェックリストと切り分け手順まとめ
あわせて読みたい


DNSは引けるのに通信できない原因と対処法|切り分け手順を徹底解説
「名前解決はできているのに通信できない」「digやnslookupは成功するが、curlやncが失敗する」「pingは通るのにアプリ通信だけNG」 このトラブルは現場で非常に発生頻…
目次
まず結論:原因はほぼ5パターンに集約される
- ポート自体がLISTENしていない
- Firewallでポート単位に遮断されている
- SELinuxがポートを許可していない
- LB/NW機器がポート単位で制御している
- アプリが接続を即切断している
DNSはIPを引くだけなので、この問題には直接関与しません。
① 本当に「そのポート」がLISTENしているか
最初に確認すべきはサーバ側でポートが開いているかです。
# LISTENポート確認
ss -lntp
# 特定ポートのみ確認
ss -lntp | grep 443
ありがちな原因
- 設定ファイルでは有効だがプロセス未起動
- 127.0.0.1でのみLISTENしている
対策
- 0.0.0.0 / :: でLISTENしているか確認
- systemdの起動状態を確認
systemctl status nginx
あわせて読みたい


sysctl変更が反映されない原因と確認ポイント【Linux】
Linux で sysctl を変更したのに、 値が変わっていない 再起動すると元に戻る 設定したはずなのに挙動が変わらない といった経験は非常によくあります。 これは sysctl …
② クライアント側からポート疎通を明示的に確認
pingが通っても、TCP/UDPは別物です。
# TCP疎通確認
nc -vz example.com 443
# curlで実通信
curl -v https://example.com
結果の読み方
- timeout → FW / 経路
- refused → ポート未LISTEN
- 即切断 → アプリ / LB
③ Firewall(firewalld / iptables)によるポート遮断
ポート単位で遮断されているケースは非常に多いです。
firewalld確認
firewall-cmd --list-all
iptables確認
iptables -L -n
よくあるミス
- 80番だけ許可して443を忘れる
- INPUTはOKだがOUTPUTが制限されている
対策
- 対象ポートが明示的に許可されているか確認
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
あわせて読みたい


firewalld でポートが開かないときの対処方法
Linux サーバでサービスを公開しようとして firewalld を設定したのに、外部からアクセスできない…。そんなときに確認すべきポイントをまとめます。 🔎 実務での…
④ SELinuxが「そのポート」を拒否している
SELinuxはポート番号単位で通信を制御します。
SELinux状態確認
getenforce
ポート許可状況確認
semanage port -l | grep http
典型的な失敗
- Apacheを非標準ポートで起動
- ポートをsemanageに登録していない
対策
# 例:8080をhttpとして許可
semanage port -a -t http_port_t -p tcp 8080
AVCログ確認
ausearch -m AVC -ts recent
あわせて読みたい


firewalldとSELinuxの役割の違い【混同しがちな通信制御を完全整理】
Linuxサーバーで通信トラブルが起きた際、 firewalld(iptables)とSELinuxの役割を混同していると、 切り分けに時間がかかり、誤った対処をしてしまいがちです。 本記…
あわせて読みたい


SELinuxのAVCログを読めるようになる実践ガイド【denyの意味が分かる】
SELinuxトラブル対応で最も重要なのが AVCログ です。 「AVC denied が出ているのは分かるが、何をどう直せばいいか分からない」 という状態では、SELinuxは一生怖い存…
⑤ LB(ロードバランサ)のポート設定ミス
LB配下ではポート単位の設計ミスが非常に多発します。
よくある原因
- LB → バックエンドの転送ポート不一致
- health checkは通るが実通信は別ポート
- idle timeout切れ
対策
- LBのリスナーポートと転送先確認
- バックエンドFWも併せて確認
あわせて読みたい


LB idle timeoutとアプリKeepAlive設計の落とし穴
ロードバランサ(LB)配下のシステムで、「通信が突然切れる」「一定時間後にRSTが返る」「再接続が頻発する」といった問題が発生する場合、LBのidle timeoutとアプリの…
⑥ 経路・NATで特定ポートだけ破棄される
NW機器ではポート単位で制御されている場合があります。
確認
traceroute example.com
クラウド環境では以下も要確認です。
- Security Group
- NACL
- ルーティングテーブル
⑦ アプリが接続を拒否・即切断している
ポートは開いているが、アプリが拒否するケースです。
典型例
- 接続数上限
- IP制限
- 認証前に切断
確認
# 接続状態確認
ss -ant | grep 443
対策
- アプリログ確認
- max connection設定見直し
あわせて読みたい


Linuxでコネクション数が異常に増える原因と調査手順【ss・netstat完全活用】
Linuxサーバーで「通信が遅い」「突然接続できなくなる」「TIME_WAITが大量発生している」 といった症状が出た場合、根本原因として多いのが コネクション数の異常増加…
即解決のためのチェックリスト
- ポートはLISTENしているか
- FWで許可されているか
- SELinuxポート登録済みか
- LB設定に不整合はないか
- アプリが拒否していないか
まとめ
「DNSは引けるが特定ポートだけ通信できない」場合、
- DNSは原因ではない
- ポート単位の制御が必ず存在する
LISTEN → FW → SELinux → LB → アプリの順で切り分ければ、 いち早く原因へ辿り着けます。
あわせて読みたい


DNSは引けるのに通信できない原因と対処法|切り分け手順を徹底解説
「名前解決はできているのに通信できない」「digやnslookupは成功するが、curlやncが失敗する」「pingは通るのにアプリ通信だけNG」 このトラブルは現場で非常に発生頻…
あわせて読みたい


SELinuxが原因で通信できない時の切り分け手順【Firewall正常でも要注意】
Linuxサーバーで「ポートはLISTENしている」「Firewallも開いている」 にもかかわらず通信できない場合、原因として非常に多いのが SELinux です。 本記事では、SELinux…
