Debian

Apache2 不在 IPv4 tcp 埠上執行

  • April 14, 2021

我需要在我的 Debian 7 伺服器上執行 Apache2。但它只在 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       

netstat 在這裡僅顯示 tcp6 的事實不是問題。如果您沒有指定要偵聽的地址,apache 將使用單個套接字偵聽所有受支持的地址系列(出於設計原因,sshd 每個地址和地址系列使用唯一的套接字,因此在您的 netstat 輸出中顯示兩次)。

這是我的一個系統,顯示 apache 只有 tcp6 套接字,但仍然可以通過 IPv4 和 IPv6 正常工作。

woodpecker ~ # netstat -anp |grep apache
tcp6       0      0 :::80    :::*       LISTEN      1637/apache2        
tcp6       0      0 :::443   :::*       LISTEN      1637/apache2        
woodpecker ~ # wget http://127.0.0.1/ -O /dev/null
--2013-12-25 08:52:38--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45 [text/html]
...
# wget http://[::1]/ -O /dev/null
--2013-12-25 08:53:00--  http://[::1]/
Connecting to [::1]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45 [text/html]
...

如果你wget http://127.0.0.1/ -O -在伺服器上執行會發生什麼?連接成功了嗎?它是否按預期返回您網站的原始 HTML?

引用自:https://unix.stackexchange.com/questions/106502