Вопрос или проблема
Мне нужен ваш совет.
Кратко о моем вопросе:
У меня есть две машины на Linux/Ubuntu 18.04 Lts. Первая из них – это хост (SSHD), на котором установлена виртуальная машина (сетевая карта виртуальной машины настроена как NAT: Qemu/KVM – виртуализация). Простое SSH-соединение между хостом и виртуальной машиной в режиме NAT работает отлично:
ssh [email protected] > pass
Первая машина подключена к маршрутизатору через LAN, а вторая машина является ssh-клиентом, подключенным к маршрутизатору по Wifi.
машина1 (хост-машина, LAN) > Маршрутизатор < (wifi) машина2 (SSH клиент)
Есть ли какое-либо решение для доступа к виртуальной машине (на хост-машине) с машины, подключенной только к сети Wi-Fi? Я достаточно нов в Unix/Linux, поэтому очень оценю вашу помощь в этом случае.
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.122.x netmask 255.255.255.0 broadcast 192.168.122.255
P.S. Я предпочел бы не переключать NAT в режим моста. Если вам нужно больше данных, я с радостью предоставлю вам дополнительные детали.
Если вы можете подключиться по ssh к физическому хосту со своего клиента и к виртуальной машине с физического хоста, то просто….
ssh -J [email protected] [email protected]
(в качестве альтернативы создайте ssh_config для vm.example.com с установленным ProxyJump на phys.example.com)
Если у вас есть KVM Manager (GUI), вы можете следовать этому руководству без проблем. Процесс тот же: Портовое переадресовывание VMware Workstation
Ответ или решение
Чтобы подключиться к виртуальной машине (VM), работающей под управлением Qemu/KVM с использованием NAT, с клиента, подключенного к Wi-Fi, вы можете воспользоваться методом SSH через промежуточный хост (жирный физический хост). Предполагаем, что у вас есть доступ к SSH на физическом хосте (первом устройстве), а также возможность подключаться к виртуальной машине с этого хоста.
Шаг 1: Убедитесь, что вы можете подключиться к физическому хосту
Сначала проверьте, что вы можете подключиться к физическому хосту из вашего клиента. Используйте команду:
ssh [пользователь]@[IP-адрес_физического_хоста]
Шаг 2: Проверка доступа к виртуальной машине
После подключения к физическому хосту убедитесь, что вы можете подключиться к виртуальной машине. Используйте команду:
ssh [пользователь]@[IP-адрес_VM]
Шаг 3: Настройка подключения через SSH
Если подключения работают нормально, вам нужно использовать ProxyJump
для автоматизации процесса подключения к виртуальной машине через физический хост. Для этого вам нужно отредактировать файл конфигурации SSH (обычно он находится в ~/.ssh/config
). Добавьте следующее:
Host vm.example.com
HostName [IP-адрес_VM]
User [пользователь_VM]
ProxyJump [пользователь]@[IP-адрес_физического_хоста]
Замените [пользователь]
, [IP-адрес_физического_хоста]
, [пользователь_VM]
и [IP-адрес_VM]
на ваши значения.
Теперь вы сможете подключаться к виртуальной машине с клиента с помощью простой команды:
ssh vm.example.com
Шаг 4: Альтернативный способ – использование SSH через прокси
Если вы не хотите редактировать конфигурационный файл SSH, вы можете использовать прямую команду SSH с опцией -J
, чтобы задать промежуточный хост:
ssh -J [пользователь]@[IP-адрес_физического_хоста] [пользователь_VM]@[IP-адрес_VM]
Дополнительные настройки (если необходимо)
Если для доступа к виртуальной машине необходимо перенастроить параметры NAT (например, для переадресации портов), вот пример, как это можно сделать:
- Откройте файл конфигурации виртуальной машины (обычно расположен в
/etc/libvirt/qemu/
). - Найдите секцию для интерфейса сети и добавьте переадресацию портов. Пример:
<port forwarding>
<forwarding protocol='tcp' port='2222' />
</port forwarding>
Затем перезапустите виртуальную машину.
Теперь, если вы настроили переадресацию так, вы сможете подключиться следующим образом:
ssh -p 2222 [пользователь_VM]@localhost
Заключение
Таким образом, подключение к виртуальной машине с использованием SSH из клиентского устройства на Wi-Fi возможно через SSH-подключение к физическому хосту. Выбор между редактированием конфигурации SSH или использованием команды с опцией -J
зависит от ваших предпочтений. Если у вас есть дополнительные вопросы или потребуется помощь, пожалуйста, дайте знать!