Мне нужно запустить Apache2 на моем сервере Debian 7. Но он работает только на порту tcpv6, а не на порту tcpv4. Я установил его с помощью apt-get install. Если я захожу на localhost или 127.0.0.1 или на мой IPv4-адрес сервера, он не отображает никакой веб-сайт.
Мой /etc/apache2/ports.conf
:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
netstat -plntu
:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3558/sshd
tcp 0 0 0.0.0.0:3466 0.0.0.0:* LISTEN 2820/mysqld
tcp6 0 0 :::80 :::* LISTEN 2097/apache2
tcp6 0 0 :::22 :::* LISTEN 3558/sshd
debian
apache-httpd
Мату
источник
источник
Listen 80
ToListen 0.0.0.0:80
. Вы можете обратиться к документации httpd.apache.org/docs/2.2/bind.html для получения дополнительной информации.sudo iptables -nvL
иsudo sestatus
? Я думаю, что у вас есть локальный брандмауэр, который мешает.a2enmod php5
должен сделать это для вас.::
.Ответы:
Тот факт, что netstat показывает только tcp6, здесь не является проблемой. Если вы не укажете адрес для прослушивания, apache будет прослушивать все поддерживаемые семейства адресов, используя один сокет (по соображениям проектирования sshd использует уникальный сокет для каждого адреса и семейства адресов, следовательно, дважды отображается в выводе netstat).
Вот одна из моих систем, показывающая apache, имеющий только сокеты tcp6, и все же работающий нормально как через IPv4, так и через IPv6.
Если вы запускаете
wget http://127.0.0.1/ -O -
на сервере, что происходит? Это успешно соединяется? Возвращает ли он сырой HTML для вашего сайта, как ожидалось?источник
INADDR_ANY
иIN6ADDR_ANY_INIT
. Но сегодня я видел действительно странное поведение. Никаких изменений брандмауэра, никаких изменений Apache, но каким-то образом удаленные хосты могут подключаться только через IPv6 - что является проблемой для тех, у кого до сих пор нет IPv6. Это, конечно, то, над чем я буду работать, но вы абсолютно правы (хотя вызов, который вы даете, не применим в моем случае, к сожалению).Это будет обрабатывать только подключения IPV4:
https://httpd.apache.org/docs/2.2/bind.html#ipv6
источник
127.0.0.1 является локальным только для компьютера, вы должны находиться на самом сервере в браузере, чтобы использовать локальный IP-адрес обратной связи;
У вас может быть брандмауэр, блокирующий порты;
Убедитесь, что apache работает и работает правильно, проверьте журналы ошибок;
Дважды проверьте все ваши настройки Apache;
Вы хостинг от корня www или пользовательского каталога public_html?
Дважды проверьте владельца и разрешения.
Почти 2019 год (добро пожаловать в будущее):
По умолчанию большая часть мира использует ipv6, а в случае неудачи возвращается к ipv4;
Теперь у нас есть туннели ipv4 поверх ipv6 и наоборот;
Большинство ОС, программ, клиентов и серверов в основном делают это сейчас;
Добро пожаловать в мир, где больше нет NAT, и теперь вам нужно зависеть от брандмауэра / фильтров прямо на вашем устройстве;
Я бы порекомендовал попытаться сохранить все ваши системы двойными, поддерживая одновременно ipv4 и ipv6, поэтому, когда происходит магическое переключение, вы все еще работаете. Моя ОС, сеть, даже мой интернет-провайдер - это два стека в конец. Я мог бы полностью отключить ipv4, если бы захотел, но что там может больше не работать, если не существует туннелей обратно в ipv6 из ipv4.
источник
*
* представляет соединение с локальным сервером без обработки IPv4 или IPv6. Если вы измените localhost (или 127.0.0.1) на реальный IPv4-адрес этого сервера, вы ничего не сможете получить, так как отказали в соединении.
Попробуйте описать ваш IP в конфигурационных файлах: NameVirtualHost: 80 Прослушать: 80
источник