У меня нет большого опыта работы с сетями или Linux, но я пытаюсь подключиться к виртуальной машине Ubuntu из-за пределов моей домашней сети. Виртуальная машина Ubuntu (VirtualBox) работает на рабочем столе Debian. Я провел некоторое исследование и обнаружил, что мне нужно перенаправить порт 22 с маршрутизатора на виртуальную машину.
Но когда я пытаюсь подключиться, он все равно не работает. ssh username @ - соединение отклонено
Что я должен сделать внутри виртуальной машины, чтобы разрешить входящие соединения? Или перенаправить любой порт?
Есть ли что-то, что я делаю не так, любая помощь будет принята с благодарностью !!
По умолчанию VirtualBox работает в режиме "NAT", подразумевая, что это создает "виртуальную" сеть и переводит доступы к сети из VM так, чтобы к внешнему миру, они, казалось, происходили из Вашего фактического компьютера.
VirtualBox заставляет VM думать, что это подключено к сети, но в действительности VirtualBox предоставляет сетевые услуги, включая мини-сервер DHCP. Затем VirtualBox делает доступы к сети "от имени" VM, заставляя его появиться как просто другое приложение, работающее на Вашем ПК.
Однако это означает, что внешний мир действительно не знает о VM и не может получить доступ к нему непосредственно.
я думаю перенаправление портов, которое Вы сделали был с Вашего домашнего маршрутизатора на Ваш ПК, не к VM. Можно пропускать некоторую конфигурацию на стороне VirtualBox. Извинения, если Вы уже сделали это, но Ваш вопрос не согласился с этим.
В основном необходимо изменить конфигурацию сети VM и установить ее на "Соединенный мостом". То, что это делает, это создает виртуальный интерфейс на Вашем ПК и делает использование VM что получить доступ к внешнему миру; что-либо входящее или идущее в тот интерфейс передается по каналу к VM. Таким образом VM будет видим как просто другая машина в том, какой бы ни объединяются в сеть, Ваш ПК подключен с (это даже имеет свой собственный MAC-адрес!).
Затем в зависимости от конфигурации Вашей сети, VM может получить адрес DHCP как любой другой ПК, подключенный к Вашему маршрутизатору, или Вы, возможно, должны настроить статический IP-адрес для него. Это зависит от того, как Ваша сеть настраивается.
, Как только VM имеет "реальный" адрес, на Вашем маршрутизаторе, можно следовать инструкциям, которые Вы нашли для маршрутизации порта 22 к IP-адресу VM. Это должно работать, поскольку Вы ожидаете его к.
, Если это не делает:
от того, что я могу собрать, Ваша проблема заключается в Вашей сети сервера, потому что, после того как Вы устанавливаете vm сеть к режиму моста, Вы хороши для движения (сверьтесь ssh <your.vm.ip.number>
на командной строке сервера - не в vm).
Ваш сервер находится позади маршрутизатора, точно так же, как vm использование NAT в Вашей машине.
необходимо связаться администратором сети сервера так, чтобы он мог выдвинуть локальный IP-адрес vm к порту/диапазону портов (удостоверьтесь, что vm имеют статический IP-адрес).
можно сделать это сами, если у Вас были полномочия на Вашем шлюзе сервера, чтобы сделать так.
немного визуализации:
Internet
'---ROUTER (SERVER1 and SERVER2 use NAT on this router)
| (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
|
'--- SERVER1 (vm1, vm2, vm3 use Bridge)
| '---vm1
| '---vm2
| '---vm3
'--- SERVER1 (vm4, vm5 use Bridge)
| '---vm4
| '---vm5
Глядя на вашу ситуацию, кажется, что вам нужно настроить брандмауэр для вашей виртуальной машины с помощью $ sudo ufw allow ssh