Debian
Apache2 不在 IPv4 tcp 埠上執行
我需要在我的 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?