Fedora 19を使用していますが、ssh
に問題があります 。
Sshが稼働していて、LANIPを入力すると接続できます。しかし、サーバー名(blahblah.no-ip.org
)を試してみると )接続が拒否されました。 No-ipはすでにサービスとして実行されており、正しく機能しています(正しいIPを送信しています)。
ルーターでポートフォワーディングを設定しました。ssh
のポートも変更しました サービスとルーターポートフォワーディングの両方で(私の最愛のISPがこれらのポートをブロックすることを決定した場合)。しかし、それでも接続が拒否され、nmap
ホスト名sshポートが閉じていることがわかります。
ただし、同じ外部IPの下に2台のPCがあります(正しい内部IPへのポート転送を設定しました)。 nmap blahblah.no-ip.org
の場合 ポート23と80を開きます。 80は問題ないようですが、自分のマシンでTelnetサービスを開始したことはありません。
他に何を試すべきか?ルーターはztezxv10であり、ポート転送は正しく設定されています。これは、大洪水のポートフォワーディングをすでに設定していて、正常に機能しているためです。
承認された回答:
同じLAN内からポート転送されたパブリックIPアドレスに接続することはできません。これを説明するために、例が必要です。
ルーターのプライベートIPが192.168.1.1でパブリックIPが10.1.1.1だとします。サーバーは192.168.1.2ポート2222にあります。10.1.1.1:1111から192.168.1.2:2222へのポート転送を設定しました。
インターネット(10.3.3.3)の誰かがあなたと話したい場合、彼らはパケットを生成します:
Source: 10.3.3.3 port 33333
Dest: 10.1.1.1 port 1111
ルーターは10.1.1.1でパケットを受信し、それを書き換えます:
Source: 10.3.3.3 port 33333
Dest: 192.168.1.2 port 2222
サーバーはそのパケットを受信し、応答を送信します:
Source: 192.168.1.2 port 2222
Dest: 10.3.3.3 port 33333
ルーターは192.168.1.1でそのパケットを受信し、それを書き換えます:
Source: 10.1.1.1 port 1111
Dest: 10.3.3.3 port 33333
そして、接続は機能し、誰もが幸せです。
ここで、LAN(192.168.1.3)の内部から接続するとします。パケットを生成します:
Source: 192.168.1.3 port 33333
Dest: 10.1.1.1 port 1111
ルーターは10.1.1.1でパケットを受信し、それを書き換えます:
Source: 192.168.1.3 port 33333
Dest: 192.168.1.2 port 2222
サーバーはそのパケットを受信し、応答を送信します:
Source: 192.168.1.2 port 2222
Dest: 192.168.1.3 port 33333
ここで問題が発生します。宛先IPはLAN上にあるため、サーバーはそのパケットをルーターに送信して書き換えることはありません。代わりに、192.168.1.3に直接送信します。しかし、そのマシンは192.168.1.2ポート2222からの応答を期待していません。10.1.1.1ポート1111からの応答を期待しています。したがって、この「偽の」パケットのリッスンを拒否し、動作しません。
関連:SSH 7.4「誓約:ネットワーク」での長時間の一時停止?これを回避する方法は、DDNSホスト名を検索するときにサーバーのプライベートIPアドレスを返すようにルーター(LANにDNSも提供する)を構成することです。そうすれば、ホームネットワークに接続しているときに、サーバーに直接接続してポート転送をスキップします。 (このソリューションは、ポート転送がポート番号を変更せず、IPアドレスのみを変更する場合にのみ機能します。また、パブリックホスト名ごとにサーバーを1つだけ持つことができます。)