Из этого туториала я узнал, как создать виртуальную машину Ubuntu Server (12.10, 64-битная) в VirtualBox на хост-компьютере Windows 7 , установить Apache и заставить его обслуживать сайт. из фиктивного домена, доступного через браузер хост-машины.
Потребовался день и много попыток (хотя казалось, что я следовал инструкциям, поскольку они были изложены, я всегда делал что-то не так), и я наконец сделал это.
Я нахожу Ubuntu гораздо более гладкой средой разработки, чем Windows, и поэтому я хотел сделать то же самое в Ubuntu. Итак, на этот раз я создал виртуальную машину Ubuntu Server в VirtualBox на хост-компьютере Ubuntu , установил Apache и настроил его. Но когда я захожу на сайт через фиктивный домен, я получаю ошибку « Сервер не найден ».
Да, я изменил файл /etc/hosts
так же, как упомянуто в учебник (который предназначен для Windows 7). Но я не мог заставить его работать. Не знаю что не так. Кто-нибудь знает, что еще я должен делать?
РЕДАКТИРОВАТЬ: Если я не достаточно ясно, пожалуйста, спросите. Я хочу уточнить.
Только root
могут открывать порты < 1024, поэтому, если обычный пользователь запускает VirtualBox, он не открывает порт 80 на хосте и не перенаправляет его гостю.
Вы можете разрешить программам открывать привилегированные порты, выполнив:
setcap 'cap_net_bind_service=+ep' /path/to/executable
Я не знаю пути к исполняемому файлу VirtualBox
, но вы легко можете его выяснить поиск чего-то похожего на «VirtualBox» в выходных данных ps auxf
.
Если вам нужно, чтобы другие машины в вашей физической сети достигли вашей виртуальной машины, или если виртуальной машине требуется доступ к Интернету, используйте мостовую сеть. В противном случае, придерживайтесь только сети хоста.
Остановите виртуальную машину и откройте настройки для нее в VirtualBox (OSE) Manager
Перейдите в сеть Вкладка
Выберите режим сети по вашему выбору (мостовая сеть или только для хоста)
Если вы хотите использовать мостовую сеть, вы должны выбрать правильный сетевой адаптер в Имя: ____________ . Для проводных соединений вы бы выбрали что-то вроде eth0
. Беспроводные соединения обычно называются wlan0
(номера могут отличаться).
Сохраните настройки
Запустите виртуальную машину Ubuntu
Когда это произойдет, вы можете получить IP-адрес, выполнив: [ 1133]
sudo ifconfig
Вывод должен выглядеть примерно так:
eth0 Link encap:Ethernet HWaddr 08:00:27:f4:c3:7b
inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef4:c37b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3244 (3.2 KB) TX bytes:2512 (2.5 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
В приведенном выше выводе 192.168.1.4
(во второй строке) - это IP-адрес, который можно использовать в вашей Ubuntu. хост-система для доступа к вашей виртуальной машине.
Теперь откройте файл hosts на хост-компьютере Ubuntu:
sudo gedit /etc/hosts
(Если вы не хотите использовать gedit
, замените слово на имя вашего любимого редактора. Например, vim
, nano
.)
. После открытия файла добавьте эту строку и сохраните :
192.168.1.4 my-dummy-site.com
Откройте любой браузер на хост-компьютере и перейдите на my-dummy-site.com
для доступа к вашему веб-сайту, обслуживаемому прямо из VirtualBox.
(Особая благодарность @iSeth за помощь . Полностью основана на этого ответа , бит НЕ является то же самое.)