LINUX.ORG.RU

Проброс портов во вложенную виртуальную машину

 ,


0

1

Всем привет! Моделирую ситуацию на винде перед покупкой железа для линуксового сервера. На Windows (Хост) у меня установлен VirtualBox, в котором создана виртуальная машина Ubuntu Server 20.04 (ВМ №1). На ВМ №1 установил KVM и внутри (вложенная виртуализация) развернул ещё один Ubuntu Server 20.04 (ВМ №2). Все отлично работает. Я могу подключиться через SSH с хоста на ВМ №1 и из ВМ №1 также по SSH могу подключиться к ВМ №2. Но для запланированных экспериментов мне требуется с хоста подключаться напрямую к ВМ №2. В линуксе я новичок, извиняюсь, если вопрос тупой, пробовал пользоваться поиском, но такую конкретно ситуацию не нашел. Для ВМ1 в VirtualBox у меня выбран сетевой мост. ВМ 1 получает адрес в той же подсети, что и мой хост - 192.168.88.188 Для вложенной ВМ2 в KVM я специально сетевой адаптер не создавал, использовал тот, который был создан при установке. ВМ 2 получила адрес 192.168.122.2 и с хоста, разумеется, не видна. Если я правильно понимаю, чтобы подключиться напрямую с хоста к ВМ 2, мне нужно пробросить порт с ВМ 1 на ВМ 2. Для начала я хочу напрямую подключаться с хоста по SSH (в дальнейшем потребуются и другие порты). Т.к. я нуб в линуксе, я делаю все по этой инструкции https://losst.ru/probros-portov-iptables-v-linux Делаю все через терминал, ввожу такие команды:

sudo echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i eth0 -o eth1 -p tcp --syn --dport 2223 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P FORWARD DROP
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2223 -j DNAT --to-destination 192.168.122.2:22
sudo iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 2223 -d 192.168.122.2 -j SNAT --to-source 192.168.1.1:22

Если я правильно понял, то после этого, когда я с хоста буду пытаться по SSH подключиться к ВМ 1 по адресу 192.168.88.188:2223, то буду попадать на ВМ 2… Но не работает. Подскажите пожалуйста, правильный ли ход моей мысли в целом или надо организовывать процесс как-то иначе? И если да, то что я делаю неправильно с пробросом портов?



Последнее исправление: SEsin (всего исправлений: 2)

Ответ на: комментарий от zemidius

Спасибо, попробую это использовать.

SEsin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.