Назад | Перейти на главную страницу

Не могу получить доступ к Apache в моем CentOS Virtualbox

Я настраиваю VirtualBox с CentOS, чтобы я мог протестировать весь свой код и т. Д. В системе Linux вместо Windows, которую я использую для разработки.

Я только что получил работу SSH (я SSH на localhost: 2222, и порт перенаправляет его на порт виртуального бокса 22).

Он использует NAT, потому что по какой-то причине он отказывается запускаться с мостовым адаптером.

Я пытаюсь сделать то же самое с Apache, чтобы запустить и запустить веб-сервер.

Я перенаправил порт 8888 на локальном хосте на порт 80 в моем CentOS Virtualbox, но я не могу получить доступ ни к чему с помощью localhost: 8888 в моем браузере?

Apache тоже определенно работает:

ps -e | grep httpd
2108  ?      00:00:00 httpd
2110  ?      00:00:00 httpd
2111  ?      00:00:00 httpd
2112  ?      00:00:00 httpd
2113  ?      00:00:00 httpd
2114  ?      00:00:00 httpd
2115  ?      00:00:00 httpd
2116  ?      00:00:00 httpd
2117  ?      00:00:00 httpd

Iptables:

# Generated by iptables-save v1.4.7 on Fri Jan 27 18:26:36 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [32:2278]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-I INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
-I OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Jan 27 18:26:36 2012

Я также остановил iptables, так что это не мешает. Я попытался подключиться через telnet к порту 80 с моей виртуальной машины CentOS, чтобы посмотреть, будет ли это работать, но ни 127.0.0.1, ни [vm ip] не работают для telneting на порт 80. Он попадает в connecting to [ip] а затем говорит connection closed by foreign host. Для строк прослушивания в моем httpd.conf он говорит listen 0.0.0.0:80

Выход netstat -tlnp | grep http

netstat -tlnp | grep http
tcp        0      0 0.0.0.0:80                       0.0.0.0:*                        LISTEN      2032/httpd
tcp        0      0 :::443                      :::*                        LISTEN      2032/httpd

Когда я Nmap localhost, Я получил

[root@CentOS conf]# nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2012-01-28 00:58 WST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Hostname localhost resolves to 3 IPs. Only scanned 127.0.0.1
Not shown: 993 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
23/tcp  open  telnet
25/tcp  open  smtp
80/tcp  open  http
111/tcp open  rpcbind
443/tcp open  https
631/tcp open  ipp

Вы скопировали и вставили правила iptables? Если да, то в нем есть ошибка:

 _I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

подчеркивание вместо дефиса.

В виртуальном боксе попробуйте изменить настройки сети на Bridge Adapter вместо NAT и выберите соответствующий интерфейс, который вы хотите использовать (проводной или беспроводной). Запустите CentOS, а затем еще раз проверьте свой сетевой адрес (запустите ifconfig).

Оттуда проверьте, можете ли вы теперь получить доступ к apache, используя новый адрес Ethernet.

Что касается ssh на centos, вы должны обязательно отредактировать sshd_config и раскомментировать следующее:

Port 22
PermitRootLogin No

Также создайте другого пользователя помимо root, а затем добавьте этого пользователя в sshd_config:

AllowUsers username

Сначала вы должны убедиться, что apache прослушивает интерфейс Ethernet (тот, что от виртуальной машины) или все адреса. Для этого запуска:

sudo netstat -tlnp|grep http

Если он не прослушивает внешний интерфейс (в отличие от петлевого), вам необходимо изменить директиву Listen в конфигурации apache и перезапустить apache (не перезагружать).