VM, що працює з CentOS, може пінг, але не може отримати доступ до веб-сервера


8

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

Поки що добре ... Але тоді я хотів отримати доступ до сервера з інших комп’ютерів у моїй мережі (включаючи хост VM). Але я не можу змусити його працювати і продовжувати отримувати 404 ...

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

Ping 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, чи вказали ви це посиланнями, намагаючись підключитися? ( http://192.168.0.112:8888)
VL-80

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

Відповіді:


0

Більш ніж ймовірно, це налаштування virtualhost всередині 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 може бути реалізований на платформі / OS незалежній основі.
VL-80

13

У мене теж було це питання. З вашого опису я працював у тій же програмі, що і ви. Виявилося, я firewalldвстановив і працював, і тому довелося використовувати команди:

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

Потім це дозволило мені отримати доступ до apacheсервера, що працює на моїй віртуальній машині, поза межами vm.


Дякую! це відповіло, чому мій Centos 7 VB з Apache 2.4 в хості Windows 7 не міг працювати разом superuser.com/questions/1120134/…
Освальдо Меркадо

Дякую, дякую, дякую. Чотири години налагодження, і саме цей брандмауер. Для мене то , що працювало тільки зупинивши службу: 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не потрібно було перезавантажувати веб-сервер)
Євгенія Манолова

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 в той момент, правда?
Кас Корнеліссен

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