сервер apache не прослушивает порт 80

сервер apache не прослушивает порт 80

Моя рабочая станция и сервер находятся в одном сегменте локальной сети и могут пинговать друг друга (и я могу без проблем подключиться к серверу по ssh со своей рабочей станции).

Сделал установку Apache по умолчанию на CentOS 7.

Запустил службу, но не могу зайти на свой веб-сервер со своей рабочей станции.

Порт 80 отчета nmap фильтруется.

Я отключил SELinux на сервере, но порт все еще фильтруется.

Вот что мне выдает netstat -l:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7

Странно, netstat -na показывает, что порт 80 прослушивается, но для ipv6 (хотя я где-то читал, что это не обязательно означает, что он не прослушивается и для ipv4)

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0     64 10.1.1.1:22             10.2.2.2:44939        ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
raw6       0      0 :::58                   :::*                    7

Вот соответствующая часть моего /etc/httpd/conf/httpd.conf (которую я не менял)

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory "/var/www/html">

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Files ".ht*">
    Require all denied
</Files>

Служба, похоже, работает нормально:

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Fri 2015-10-02 08:36:40 EDT; 1h 27min ago
  Process: 23294 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 23302 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─23302 /usr/sbin/httpd -DFOREGROUND
           ├─23303 /usr/sbin/httpd -DFOREGROUND
           ├─23304 /usr/sbin/httpd -DFOREGROUND
           ├─23305 /usr/sbin/httpd -DFOREGROUND
           ├─23306 /usr/sbin/httpd -DFOREGROUND
           └─23307 /usr/sbin/httpd -DFOREGROUND

Почему он не прослушивает порт 80?

решение1

Как прокомментировал ваш пост Майкл Хэмптон, я готов поспорить, что ваш брандмауэр (iptables) блокирует ваш трафик.

Либо отключите его ( systemctl disable firewalld), либо разрешите трафик через порт 80 ( firewall-cmd --zone=public --add-port=80/tcp --permanent).

решение2

Тот факт, что порт 80 фильтруется или нет, не имеет значения для вывода netstat. Даже если iptables настроен на блокировку (DROP или REJECT) подключения к этому порту, вы должны увидеть, что Apache прослушивает порт 80.

Дело в том, что httpd настроен на прослушивание ОБА IPv4 и IPv6 ЛЮБЫХ адресов (0.0.0.0 и ::) и в этом случае netstat показывает только IPv6. Объяснение здесь:

https://bugs.launchpad.net/ubuntu/+source/net-tools/+bug/657270

Короче говоря: в этом случае соединение IPv6 способно обслуживать ОБА протокола, и поэтому открывается только один сокет. И поскольку открыт только один сокет, в выводе netstat отображается только один сокет.

решение3

Проверьте правила iptables ( iptables-save) и посмотрите, разрешен ли порт 80.

Для тестирования вы можете сделать service iptables stopили iptables -F.

Связанный контент