Имеется виртуальная среда (VirtualBox) с поднятой операционной системой Ubuntu 10.10 расположенная за NAT.
ekzorchik@ekv:~$ cat /etc/issue && uname -a
Ubuntu 10.10 \n \l
Linux ekv 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux
Посмотреть это можно открыв свойства виртуальной машины, далее перейти в пункт «Сеть», как указано на скриншоте ниже.
Сетевой адрес виртуальной машины:
ekzorchik@ekv:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:0b:36:ff
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
Цель – подключаться через ssh к виртуальной машине находящейся за NAT:
Для решения этой задачи нужно будет настроить «Проброс портов». Проброс портов широко используется для тестирования и разработки, но можно его использовать и для предоставления какого-нибудь сервиса с виртуальной машины.
Заходим в свойства виртуальной машины – «Сеть» – «Проброс портов» – далее создаем правила для портов. Т.к. задача стоит пробросить подключение на порт 22.
, через “+” настраиваются дополнительные правила.
Здесь нужно прописать:
IP адрес хоста (т.е. машины где установлена система VirtualBox – это 127.0.0.1)
Порт хоста – любой свободный.
IP гостя – адрес внутри виртуальной машины (10.0.2.15)
Порт гостя (Сервис к которому мы хотим получиться доступ – Port 22 – SSH)
На этом настройка завершена. Протестируем подключение через Putty.
Во вкладке «Session» указываем IP адрес нашей локальной машины (127.0.0.1) и порт (2555).
Во вкладке «Translation» указываем кодировку подключения – «UTF-8»
Во вкладке «Tunnels» настроим туннель для подключения: порт назначения и ip-адрес машины за nat.
Произведем подключение в виртуальной машине:
Данные по системе Ubuntu:
ekzorchik@ekv:~$ hostname
ekv
ekzorchik@ekv:~$ ifconfig | grep -E “eth0|inet addr|HWaddr”
eth0 Link encap:Ethernet HWaddr 08:00:27:0b:36:ff
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0
Результат достигнут. Подобным образом можно пробросить порт для любого приложения – это совсем не сложно.