
Я пытаюсь решить эту проблему (время от времени) уже три месяца, но так и не могу заставить ее работать или даже понять, почему это происходит.
СЦЕНАРИЙ:
{HP 32bit, Windows 7}
У меня на ноутбуке установлен VirtualBox.
В этом VB я без проблем установил CentOs 6.5 minimal, Nginx, PHP-FPM.
Короче говоря, все работает хорошо.
Проблема
Проблема в том, что я могу получить доступ только locahost
если подключен к Интернету.
При подключении к Интернету, если я захожу на сайт, http://192.168.1.100/
все работает, я вижу свои файлы index.html
, но как только я отключаюсь от сети, я ничего не получаю, как будто я пытаюсь получить доступ к Google без подключения к Интернету.
Это снимок экрана моих настроек Vbox.:
Также вот конфигурация для/etc/sysconfig/network-scripts/ifcfg-eth0
:
Я делал следующее несколько раз.
Пробовал с
iptables
отключенным/включенным.
Пробовал с Host Only, NAT Bridged Adapters.
Пробовал со статическим IP и DHCP..
обновлял сети несколько раз.
Я уверен, что ответ где-то есть, потому что у меня до сих пор нет идеальных конфигураций настроек, но я смешиваю много вещей по ходу дела, поэтому все еще не могу заставить это работать.
решение1
В настройках сети VirtualBox машина CentOS подключена через мост к вашей сети WiFi со статическим IP-адресом.
У вашего ноутбука не будет фиксированного IP-адреса на его WiFi-подключении; когда вы не подключены к WiFi, Windows не имеет сетевого подключения и не знает, как получить доступ к серверу CentOS. Когда вы подключаетесь к WiFi, ваш маршрутизатор дает Windows адрес в той же сети, и тогда он может получить доступ к серверу CentOS.
Они работают на одном компьютере, но они разделены и не могут автоматически общаться друг с другом. Исправление заключается в том, чтобы как-то изменить сетевые настройки, а то, как вы это измените, зависит от того, что вы хотите сделать.
Самый простой способ — зайти в Панель управления Windows, Сетевые подключения, а затем найти свойпроводнойСетевой адаптер (при условии, что он есть на вашем ноутбуке и вы им не пользуетесь) зайдите в его свойства и установите сетевой адрес TCP/IP 192.168.1.101, маску подсети 255.255.255.0, без шлюза.
Это позволит вашему компьютеру всегда находиться в той же сети, что и машина CentOS, и всегда иметь к ней доступ, но при этом подключение по WiFi должно перехватывать управление и быть вашим интернет-подключением, когда вы его используете, и CentOS по-прежнему иметь возможность выходить в Интернет при подключении по WiFi, и другие компьютеры по-прежнему смогут подключаться к CentOS, и ваш компьютер по-прежнему сможет работать в других сетях WiFi, но это не позволит работать вашему проводному соединению во многих местах.
Существуют и другие подходы, которые вы можете использовать, но все они повлияют на один или несколько из этих вариантов использования и потребуют больше работы для их последующей реализации.
[Правка: Я игнорирую то, что вы говорите "не могу получить доступ localhost
". Это может быть важно. Вы должны точно описать, в чем заключается ваш тест - какой компьютер вы используете, какое программное обеспечение вы загружаете, где вы вводите localhost?]
Редактировать: Новая предлагаемая конфигурация
Это подразумевает наличие отдельной сети из двух компьютеров, предназначенной только для взаимодействия Windows с CentOS.
В Windows, на изображении, которое вы здесь показалиhttps://i.stack.imgur.com/a3CIZ.jpg- перейдите в свойства сетевого адаптера VirtualBox Host-Only, в свойства протокола Интернета TCP/IP v4 и установите IP-адрес 192.168.250.1 и маску подсети 255.255.255.0, оставьте остальные параметры пустыми и нажмите кнопку ОК.
В настройках виртуальной машины CentOS (при выключенном питании) перейдите в настройки сети и установите для адаптера 1 значение «Только хост-адаптер».
Включите машину CentOS. Отредактируйте
/etc/sysconfig/network-scripts/ifcfg-eth0
и установите IP-адрес 192.168.250.2 и маску подсети 255.255.255.0. Не должно быть шлюза, нет DNS-серверов. Перезапустите сеть или перезапустите машину CentOS.
Теперь у вас должна быть эта новая отдельная сеть 192.168.250.1 -- 192.168.250.2 для связи между ними. Запустите NGinX, чтобы он прослушивал адрес 192.168.250.2, и зайдите http://192.168.250.2/
в Windows, чтобы получить к нему доступ.
Это должно работать с WiFi или без него. Единственная проблема в том, что CentOS не может получить доступ к Интернету для обновления или установки. Если это проблема:
Выключите машину CentOS и перейдите в настройки VirtualBox для нее, в Network. Выберите вкладку Adapter 2, включите его, установите для него значение Bridged Adapter.
Включите машину CentOS и настройте интерфейс eth1. Настройте его для получения IP-адреса динамически / по DHCP. Я использую,
system-config-network-tui
но мне пришлось его установить. Вы можете скопировать/etc/sysconfig/network-scripts/ifcfg-eth0 to /etc/sysconfig/network-scripts/ifcfg-eth1
Перезапустите сеть, убедитесь, что она заработала.
Он должен иметь сетевое подключение, подключенное к вашему WiFi, как и оригинальное, которое работает только при подключении WiFi, но CentOS может использовать его для выхода в Интернет.