Как войти в виртуальную машину с хоста, который является удаленным сервером?

Как войти в виртуальную машину с хоста, который является удаленным сервером?

Моя хостовая машина — это удаленный сервер, на котором я создал виртуальную машину с помощью qemu. Я создал виртуальную машину с помощью следующей команды:

./qemu-system-x86_64 -hda /home/divija/images/xenial-server-cloudimg-amd64-disk1.img -cdrom /home/divija/images/ubuntu-16.04.6-server-i386.iso -m 8G -boot d -smp 4 -monitor stdio -net user,hostfwd=tcp::2222-:22 -net nic

Я вижу результат:

QEMU 2.9.91 monitor - type 'help' for more information
(qemu) VNC server running on 127.0.0.1:5900

Затем на другом терминале я пытаюсь войти в виртуальную машину с хоста через ssh.

ssh -p 5900 divija@localhost

Но я получаю сообщение об ошибке:

 ssh_exchange_identification: Connection closed by remote host
  1. Мне следует войти, используя порт 2222 или 5900? Почему он создается на 5900, когда я явно указал 2222?
  2. Есть ли способ войти в виртуальную машину без переадресации портов?

решение1

Я не уверен в вопросе 1, так как никогда не использовал QEMU, но я думаю, что вы пытаетесь подключиться по SSH к VNC-серверу (ваш вывод на виртуальной машине гласит: VNC server running on 127.0.0.1:5900и я снова могу ошибаться, но я не думаю, что вы можете подключиться по SSH к VNC-серверу. Вы можете использовать Putty для подключения к VNC-серверам.

для вопроса 2 я предлагаю вам использовать ngrok для переадресации порта 5900, так, например, запуск этого на виртуальной машине: ngrok tcp 5900позволит вам получить доступ к этому порту из-за пределов вашей локальной сети.

Связанный контент