目次
エラーの概要
SSH には「ポートフォワーディング(ポート転送)」機能があり、ローカルやリモートのポートを経由して安全に接続することが可能です。
しかし、設定をしても ポートフォワーディングが動作しない というトラブルが発生することがあります。
本記事では、その代表的な原因と解決方法を解説します。
🚑 Linux障害の初動対応を整理したい方へ
障害発生時の確認ポイントや典型パターンをまとめた総合ガイドです。
▶ Linux障害 初動対応チェックリスト
主な原因と解決方法
1. コマンドの指定ミス
ssh -L または ssh -R の書式を誤ると、転送が機能しません。
特に localhost と 0.0.0.0 の指定を間違えるケースが多いです。
対処方法
# ローカルフォワード(例: localhost:8080 → remote:80)
ssh -L 8080:localhost:80 user@remote
# リモートフォワード(外部アクセスも許可する場合)
ssh -R 0.0.0.0:9090:localhost:22 user@remote
2. サーバ側の設定 (sshd_config)
サーバの /etc/ssh/sshd_config にて以下の設定が無効だと、ポートフォワーディングは利用できません。
AllowTcpForwarding yes
GatewayPorts yes
AllowTcpForwarding no→ ポートフォワーディング禁止GatewayPorts no→ リモートフォワードがローカル接続のみ許可
対処方法
設定を有効にし、sshd を再起動します。
sudo systemctl restart sshd
3. ファイアウォールやセキュリティグループ
- サーバのファイアウォール(iptables, firewalld)や、クラウド環境(AWS/GCP/Azure)のセキュリティグループで、該当ポートがブロックされている場合があります。
対処方法
対象ポートを開放してください。
# firewalld の例
sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
4. SELinux / AppArmor の制限
セキュリティ機構により TCP フォワーディングが制限されることがあります。
対処方法
一時的に無効化して挙動を確認します。
# SELinuxの状態確認
getenforce
# 一時的に無効化
sudo setenforce 0
あわせて読みたい


SELinux によってファイル操作が拒否されるときの対処方法
概要 Linux サーバーでファイルの作成・移動・読み書きを行おうとした際、次のようなエラーが出ることがあります。 Permission denied mv: cannot move ‘file’ to ‘/var…
あわせて読みたい


SELinux enforcing環境でよくある障害事例集【原因と正しい対処】
SELinuxを enforcing のまま運用していると、 「原因不明の通信エラー」「権限はあるはずなのに動かない」 といった障害に必ず直面します。 本記事では、現場で頻発する…
まとめ
SSH のポートフォワーディングが動作しない場合は、次の順で確認しましょう。
ssh -L/ssh -Rの書式ミスがないか- サーバ側
sshd_configのAllowTcpForwarding/GatewayPortsが有効か - ファイアウォールやクラウドのセキュリティ設定
- SELinux / AppArmor の制限
これらを順に見直せば、ほとんどのケースで解決できます。
よくあるエラーと解決方法まとめ
あわせて読みたい


SSH エラーまとめ|接続失敗・Permission Denied・タイムアウト原因と対処法
SSH(Secure Shell)はLinuxサーバー管理に欠かせないリモート接続の手段ですが、実際の運用では「接続できない」「認証に失敗する」「タイムアウトする」など、さまざ…
