ВМ работает с CentOS, может пинговать, но не может получить доступ к веб-серверу


7

Я пытался настроить сервер CentOS впервые (когда-либо настраивал сервер Linux). Установка прошла нормально, я установил LAMPP (и необходимые зависимости для x86), использовал инструмент безопасности lampp и перешел к http://192.168.0.112:8888/ используя elinks.

Пока все хорошо ... Но потом я хотел получить доступ к серверу с других компьютеров в моей сети (включая хост с ВМ). Но я не могу заставить его работать и продолжать получать 404-е ...

Обратите внимание, что у меня есть другой веб-сервер, работающий в этой сети (на порту 80), поэтому я изменил Listen 80 в Listen 8888 в httpd.conf и перенаправил 8888 в моем маршрутизаторе на IP из установки CentOS (статический: 192.168.0.112согласно ifconfig).

пинг 192.168.0.112 возвращает:

Ping statistics for 192.168.0.112:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Детали сервера:

  • CentOS 6.5 минимальный, установлен из .iso
  • LAMPP 1.8.1 (через wget с сайта apachefriends.org)

Детали хоста:

  • Windows 8.1 x64
  • VirtualBox использует сетевой мостовой адаптер (перевод с голландского: сетевой мост Netwerk)

Есть идеи, как решить эту проблему? Я относительно плохо знаком с сетями и серверами, так как я сам являюсь разработчиком внешнего интерфейса, но я действительно хочу заняться внутренним функционалом.

Становится очень поздно, так что я иду спать. Надеюсь, я получу хорошее представление о том, как работает сеть / CentOS по утрам!

Заранее спасибо.


Меня немного смущает то, что вы пытаетесь достичь. Если ваш веб-сервер прослушивает порт 8888, вы указали это в elinks при попытке подключения? ( http://192.168.0.112:8888 )
VL-80

Я сделал несколько ошибок в своем первоначальном вопросе, да. Я пытался подключиться в http://192.168.0.112:8888,
Cas Cornelissen

Ответы:


0

Более чем вероятно, конфигурация виртуального хоста внутри Apache. Там есть раздел, который скажет «разрешить от [чего-то]». Убедитесь, что написано «разрешить всем».

Вот как выглядит моя;

<Directory /var/www/>
    Options FollowSymLinks
    AllowOverride AuthConfig FileInfo Limit
    Order allow,deny
    allow from all
</Directory>

Мое личное мнение - вообще не использовать xampp. Вы на самом деле все усложняете. Просто используйте нативные пакеты в CentOS. Вот хороший учебник (из быстрого поиска Google)

https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6

Или вы можете установить Ubuntu Server, и на этапе установки есть опция, которую вы можете проверить, чтобы установить LAMP. Он загрузит и установит все пакеты для вас.

Удачи.


Он сказал, что он получает 404 Not found в отличие от 403 Forbidden,
VL-80

Вау, ты прав, мой плохой.
Linuxx

Вы можете отредактировать свой ответ, чтобы исправить это ... Прежде чем толпа начнет понижать голос.
VL-80

Хотя я не получил ошибку 403, мне не нравится решение не использовать LAMPP. Я всегда использовал XAMPP в Windows, поэтому я решил найти альтернативу для Unix, но использование нативных пакетов звучит намного лучше, и я узнаю больше из него! У меня есть один вопрос, насколько это будет безопасно? Я хочу, чтобы мой веб-сервер был открыт для Интернета, чтобы я мог развиваться, где бы я ни был.
Cas Cornelissen

1
@CasCornelissen, это может быть безопасно. Хотя безопасность - это совершенно отдельная тема на данном этапе, и я не буду касаться ее в этом вопросе. У вас есть несколько вариантов здесь. Ты можешь использовать FTPS загружать контент и код (PHP? или что-то еще) на сервер. Ты можешь использовать SSHFS также, но позже это специальный инструмент для Linux, в то время как FTPS может быть реализован независимо от платформы / ОС.
VL-80

12

У меня тоже была эта проблема. По твоему описанию я запускаю ту же настройку, что и ты. Оказалось у меня firewalld установлен и запущен и поэтому должен был использовать команды:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Это позволило мне получить доступ к apache сервер работает на моей виртуальной машине из-за пределов виртуальной машины.


Спасибо! это ответило, почему мой Centos 7 VB с Apache 2.4 на хосте Windows 7 не мог работать вместе superuser.com/questions/1120134/...
Osvaldo Mercado

Спасибо, спасибо, спасибо. Четыре часа отладки и это был этот брандмауэр. Для меня то, что сработало, это просто остановка сервиса: systemctl stop firewalld, Возможно, потому что мой http-сервер был на порте! = 80. Еще раз спасибо
felipeek

3

Запустите следующие команды:

iptables -I INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT

Чтобы сохранить изменения, перейдите в / etc / sysconfig / и добавьте следующую строку в iptables:

-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT

Затем перезапустите веб-сервер:

service httpd restart

И теперь вы можете получить доступ из VirtualBox.


с centOS 6 потребовалось добавить следующую строку в / etc / sysconfig / iptables, чтобы разблокировать HTTP-трафик: -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT (не забудьте перезапустить iptables после внесения изменений: sudo service iptables restart , не нужно перезагружать веб-сервер)
Evgenia Manolova

0

Похоже, вы перенаправили трафик на вашем маршрутизаторе 192.168.0.112 когда ты действительно хотел 192.168.0.112:8888, Было бы полезно узнать больше о том, с каких компьютеров вы можете и не можете пропинговать компьютер CentOS, как настроен маршрутизатор для перенаправления портов на него и каково содержимое /etc/httpd/conf/httpd.conf являются.

Кроме того, не должно иметь значения, что у вас есть другой веб-сервер в этой сети, если только вы не маршрутизируете в другую сеть, для которой вы хотите иметь доступ к этому веб-серверу, и оба веб-сервера будут иметь одинаковый внешний IP-адрес.

Если это так, то скажите, что ваш «внешний» ip 10.10.10.10 и внутренний IP этого роутера 192.168.0.1, Предположим, что ваш веб-сервер CentOS находится на 192.168.0.112 как описано, и ваш другой сервер находится на 192.168.0.110 и хостинг веб-сервера в порту 80,

Потому что ты хотел 192.168.0.110 чтобы иметь возможность обслуживать HTTP-трафик на устройства на 10.10.10.*переправил 10.10.10.10:80 в 192.168.0.110, Однако это не означает, что вы должны обслуживать веб-трафик через порт 8888 от 192.168.0.112, Только если вы хотели бы получить доступ 192.168.0.112 от устройств, которые должны пройти через 192.168.0.1 нужен ли им порт 80, Так что в этом случае вы бы сохранить 192.168.0.112 обслуживание веб-страниц в порту 80 и переадресация входящего трафика из 10.10.10.10:8888 в 192.168.0.112:80,

Наконец, тот факт, что вы получаете 404 сообщения в браузере означают, что вы подключаетесь к какому-либо веб-серверу:

Сообщение об ошибке 404 или Not Found - это стандартный код ответа HTTP, указывающий, что клиент смог установить связь с сервером, но сервер не смог найти то, что было запрошено. (Википедия)


Спасибо за ответ! Итак, пока он находится в моей локальной сети, у меня должно быть все в порядке с двумя веб-серверами, работающими на порте 80, так как локальный ip отличается? Но при подключении из-за пределов моей сети это не будет работать, так как все компьютеры имеют одинаковый IP-адрес в этот момент, верно?
Cas Cornelissen

Совершенно верно. Как только трафик проходит через ваш маршрутизатор, все за пределами маршрутизатора знает только IP-адрес маршрутизатора. Ваша внутренняя сеть с точки зрения наблюдателя сжата в один IP.
ndt
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.