内部的にはSSHできるが、外部的にはできない

内部的にはSSHできるが、外部的にはできない

私は Netgear C6300 (ファームウェア バージョン 2.01.14) ルーター/モデムを持っており、全力で外部から Raspberry Pi に SSH 接続しようとしています。これが私のポート転送設定です: ここに画像の説明を入力してください

内部的には を使用して ssh できますssh 192.168.0.84が、外部的には canyouseeme.com で「エラー: ポート (22) でサービスを確認できませんでした」というメッセージが表示されます。私の sshd_config には 行がありPort 22ListenAddress行はコメント アウトされています。つまり、このファイルは変更していません。何が起こっているのでしょうか?

答え1

いくつか思い浮かぶことがあります。

スクリーンショットの転送は問題ないようです。sshは TCP プロトコルなので、TCPの代わりにに設定してみてください。TCP/UDP

ダインドンズ

動的に更新される正しいホスト名または正しいパブリック IP アドレスを使用していることを確認していますか? パブリック IP アドレスを見つけるには、Raspberry でコンソールを開くか、内部で SSH して を使用しますcurl icanhazip.com

sshd_config

/etc/ssh/sshd_config複数のインターフェースがある場合、で sshd が正しいインターフェースをリッスンしていることを確認します。ListenAddress a.b.c.dの行をコメントアウトし#、サービス (/etc/init.d/sshd restartま​​たはsystemctl restart sshdディストリビューションによっては ) を再起動します。編集: 申し訳ありませんが、すでにおっしゃっています。

編集:

ルーティング

から出力が得られない場合curl icanhazip.com、Raspberry がインターネットへの接続方法を知らない可能性があります。そのため、外部からの接続試行に応答できません。たとえば でルートを追加し、ip route add default via <your modem's IP address>もう一度試してください。

iptables

Raspberryの内部ファイアウォールが外部アドレスからのSSHを許可していることを確認してください。iptables -Sルールのリストが表示されます。次のような行を探します。

-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
# SSH only allowed from the internal network, if iptables policy INPUT is DROP

iptables -P INPUT ACCEPTその場合は、または のいずれかを使用してすべての着信トラフィックを許可しますiptables -I INPUT -p tcp --dport 22 -j ACCEPT

DS-Lite (デュアルスタックライト)

内部的には、ホーム ネットワークでは IPv4 アドレスを使用します。この例では 192.168.0.x です。ただし、ISP はネットワークで IPv6 を使用する場合があります。ルーターは IPv4 アドレスを IPv6 に変換します。このため、通常はリモートからホーム ネットワークに接続できなくなります。

curl icanhazip.comたとえば、 IPv6 アドレスが指定されている場合は2001:a61::35:2、それが指標になるかもしれません。また、C6300 にその情報が表示されるかもしれません。(私は AVM Fritz!Box 7360 を使用していますが、明示的に「Fritz!Box は DS-Lite トンネルを使用します」と出力します)。

100% 確実にするには、ISP に問い合わせてください。

編集:

DS-Lite トンネルの背後にいる場合でも、リモートから自宅に接続するための次のオプションが考えられます。

  • プロバイダー/ISPに、回線をDS-Lite以外のものに切り替えるよう依頼してください。
  • autossh自宅のコンピュータを別のホスト、たとえば職場のホスト (事前に雇用主に確認してください)、Web サーバー、VPS に接続するには、 を使用します。autosshリバース トンネル (例: ) を作成するように構成します。その後、 yourvps.com に ssh し、そこから 経由で自宅に ssh することができます。ssh -R 10000:localhost:22 [email protected]ssh -p 10000 user@localhost

編集:

Netgear C6300 専用

ファームウェア バージョン 2.01.14 までには、開いているポートが表示されるのは、「詳細設定」>「WAN セットアップ」の「インターネット WAN ポートでの Ping に応答する」オプションが有効になっている場合のみになるというバグがあるようです。

Netgear C6300 WAN セットアップ

関連情報