私は Netgear C6300 (ファームウェア バージョン 2.01.14) ルーター/モデムを持っており、全力で外部から Raspberry Pi に SSH 接続しようとしています。これが私のポート転送設定です:
内部的には を使用して ssh できますssh 192.168.0.84
が、外部的には canyouseeme.com で「エラー: ポート (22) でサービスを確認できませんでした」というメッセージが表示されます。私の sshd_config には 行がありPort 22
、ListenAddress
行はコメント アウトされています。つまり、このファイルは変更していません。何が起こっているのでしょうか?
答え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 に応答する」オプションが有効になっている場合のみになるというバグがあるようです。