Ubuntu VMにリモートでSSH接続する

Ubuntu VMにリモートでSSH接続する

私はネットワークや Linux についてあまり経験がありませんが、自宅のネットワーク外から Ubuntu 仮想マシンに ssh で接続しようとしています。Ubuntu 仮想マシン (VirtualBox) は Debian デスクトップ上で実行されています。調べてみると、ルーターから仮想マシンにポート 22 を転送する必要があることがわかりました。

  • VM のネットワーク設定をブリッジに変更しました。
  • ポートをVMに転送しています。
  • 私がチェックしました (http://www.yougetsignal.com/) をクリックして、ポートが開いていることを示します。

しかし、接続しようとすると、まだ機能しません。ssh username@ -- 接続が拒否されました

着信接続を許可するために仮想マシン内で何か行う必要があるのでしょうか? または、ポートを転送する必要があるのでしょうか?

何か間違っているところがあるでしょうか。どんな助けでも大歓迎です!!

答え1

デフォルトでは、VirtualBox は「NAT」モードで動作します。つまり、「仮想」ネットワークを構築し、VM からのネットワーク アクセスを変換して、外部からは実際のコンピューターからのアクセスのように見えます。

VirtualBox は VM がネットワークに接続されていると認識させますが、実際には VirtualBox はミニ DHCP サーバーを含むネットワーク サービスを提供しています。次に、VirtualBox は VM に代わってネットワーク アクセスを実行し、VM を PC 上で実行されている別のアプリケーションのように見せます。

しかし、これは外部の世界が VM について実際には知らず、直接アクセスできないことを意味します。

ポート リダイレクトは、VM ではなく、ホーム ルーターから PC に対して行われたと思います。VirtualBox 側で何らかの構成が欠けている可能性があります。すでに実行されている場合は申し訳ありませんが、質問ではこの点が明確ではありませんでした。

基本的に、VM のネットワーク設定を変更して、「ブリッジ」に設定する必要があります。これにより、PC 上に仮想インターフェイスが作成され、VM がそれを使用して外部の世界にアクセスできるようになります。そのインターフェイスに出入りするすべてのものが VM にパイプされます。したがって、PC が接続されているネットワークでは、VM は単なる別のマシンとして表示されます (独自の MAC アドレスも持っています)。

次に、ネットワークの構成に応じて、VM はルーターに接続されている他の PC と同様に DHCP アドレスを取得するか、VM に静的 IP アドレスを構成する必要があります。これは、ネットワークの設定方法によって異なります。

VM に「実際の」アドレスが割り当てられたら、ルーターで、ポート 22 を VM の IP アドレスにルーティングするための指示に従うことができます。これは期待どおりに動作するはずです。

そうでない場合:

  • VM のファイアウォール構成 (iptables -L -n) を確認してください。何かをブロックしていますか?
  • ローカル ネットワーク上に別のコンピューターを設定し、VM の IP アドレスに SSH 接続してみます。接続できる場合は、ルーターの転送構成を再確認する必要があります。接続できない場合は、VM の SSH とファイアウォール構成を再確認する必要があります。

答え2

私が収集した情報によると、問題はサーバー コンピュータ ネットワークにあります。VM ネットワークをブリッジ モードに設定すれば、問題なく動作します ( ssh <your.vm.ip.number>VM ではなく、サーバーのコマンド ラインで確認してください)。

サーバーは、マシン内で NAT を使用する VM と同様に、ルーターの背後にあります。

サーバーのネットワーク管理者に連絡して、VM のローカル IP アドレスをポートまたはポート範囲に転送してもらう必要があります (VM に静的 IP アドレスがあることを確認してください)。

サーバー ゲートウェイで権限を持っている場合は、自分で実行できます。

少し視覚化してみましょう:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5

答え3

あなたの状況を見ると、VMのファイアウォールを次のように設定する必要があるようです。 $ sudo ufw allow ssh

答え4

「NATモード」でもこれを行うことができます。Oracle VM Virtualboxにはポート転送機能があることがわかりました。

Virtualbox設定 > ネットワーク > アダプタ(NAT) > 詳細 > ポート転送に移動します。

詳細設定 > ポート転送

関連情報