OS: Ubuntu Budgie Remix 16.04
uname -a: Linux midgard 4.8.0-54-generic #57~16.04.1-Ubuntu SMP Wed May 24 16:22:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
これはかなり基本的なことのように思えますが、いろいろ試してみましたが、うまくいきませんでした。詳細は次のとおりです。
状況: 自宅の接続でポート 3791 で sshd を実行しています (単純なネットワーク スキャンを避け、明らかな ssh デーモンを見つけようとするため)
sudo /usr/sbin/sshd -D -p 3791
問題: 接続できない
albion@midgard:~$ ssh {myIPv4OrIPv6} -p 3791 -v
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to {myIPv4OrIPv6} port 3791.
debug1: connect to address {myIPv4OrIPv6} port 3791: Connection timed out
ssh: connect to host {myIPv4OrIPv6} port 3791: Connection timed out
確認したこと:
- ローカルホストをnmapして開いているポートを確認できました
- ローカルホストにSSH接続し、正常にログインできました
- iptables ('sudo iptables -L') でルールを確認しましたが、何も見つかりません。
- 念のため、「sudo systemctl stop ufw」を実行して ufw を無効にしました。
- 私のルータは、ポート 3791 から同じポートの LAN アドレス (192.168.0.2) へのポート転送を許可するように設定されています。
- ルーターレベルのファイアウォールのオプションを無効にしました。
- ISP に電話して、何かアイデアがあるかどうか確認しましたが、もちろん、何もありませんでした。
確認する価値のあることを誰か思いつきますか? 1 つ不思議なのは、IPv4 に ping すると応答が返ってくるのですが、IPv6 に ping すると応答が返ってこないことです。これは関係ないかもしれませんが、言及しておこうと思いました。
答え1
@steeldriver の回答が正しいと思うので、強調表示します。
どうやら問題は、私のルーターが NAT ループバックをサポートしていないことにあるようです。 https://en.wikipedia.org/wiki/ネットワークアドレス変換#NATループバック
これは、ネットワーク内の他のコンピュータが内部 LAN IP (例: 192.168.0.2) を使用している場合、そのコンピュータから自分のコンピュータに接続できるという事実によるものと思われます。同様に外部から、私の IPv6 IP を使用する場合。
したがって、解決策は次のとおりです。
1) 同じネットワークから接続する場合は、LAN IP (または同じデバイスの場合は localhost) を使用します。2) 外部から接続する場合は、IPv6 アドレス (ISP から提供されている場合) または IPv4 アドレス (ポート転送ルールを設定している場合) を使用します。
@steeldriver さん、ありがとう!