По умолчанию VirtualBox работает в режиме «NAT», что означает, что он строит «виртуальную» сеть и транслирует сетевые доступы с ВМ, так что во внешний мир они, похоже, приходят с вашего фактического компьютера.
VirtualBox заставляет виртуальную машину думать, что она подключена к сети, но в действительности VirtualBox предоставляет сетевые сервисы, включая мини-сервер DHCP. Затем VirtualBox осуществляет сетевой доступ «от имени» виртуальной машины, делая его похожим на еще одно приложение, работающее на вашем ПК.
Однако это означает, что внешний мир на самом деле не знает о виртуальной машине и не может получить к ней доступ напрямую.
Я думаю, что вы перенаправили порт с домашнего маршрутизатора на ПК, а не на виртуальную машину. Возможно, вам не хватает какой-либо конфигурации на стороне VirtualBox. Извините, если вы уже сделали это, но ваш вопрос не был ясен по этому поводу.
В основном вы должны изменить сетевую конфигурацию виртуальной машины и установить для нее «Bridged». Это создает виртуальный интерфейс на вашем ПК и позволяет виртуальной машине использовать его для доступа к внешнему миру; все, что входит или выходит на этот интерфейс, передается по виртуальной машине. Таким образом, виртуальная машина будет отображаться как просто другая машина в любой сети, к которой подключен ваш компьютер (у нее даже есть собственный MAC-адрес!).
Затем, в зависимости от конфигурации вашей сети, виртуальная машина может получить адрес DHCP, как и любой другой ПК, подключенный к вашему маршрутизатору, или вам может потребоваться настроить для него статический IP-адрес. Это зависит от того, как настроена ваша сеть.
Когда у виртуальной машины есть «реальный» адрес, вы можете на своем маршрутизаторе следовать найденным инструкциям, чтобы направить порт 22 на IP-адрес виртуальной машины. Это должно работать так, как вы ожидаете.
Если это не так:
- Посмотрите на конфигурацию брандмауэра вашей виртуальной машины (iptables -L -n). Это что-то блокирует?
- Настройте другой компьютер в локальной сети и попробуйте подключиться по SSH к IP-адресу виртуальной машины. Если вы можете, то вам нужно еще раз проверить конфигурацию пересылки в вашем маршрутизаторе. Если вы не можете, вам необходимо перепроверить настройки SSH и брандмауэра виртуальной машины.