在 Apache2 上设置 IPv6

在 Apache2 上设置 IPv6

目前我有包含以下内容的“ports.conf”:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
    NameVirtualHost *:443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

因此要添加 IPv6,我必须将其更改为:

NameVirtualHost 91.64.99.215:80
Listen 91.64.99.215:80

NameVirtualHost [2a01:4f8:140:54e4::3]:80
Listen [2a01:4f8:140:54e4::3]:80

<IfModule mod_ssl.c>
    Listen 443
    NameVirtualHost 91.64.99.215:443
    NameVirtualHost [2a01:4f8:140:54e4::3]:443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 91.64.99.215:443
    Listen [2a01:4f8:140:54e4::3]:443
</IfModule>

它是否正确?

我担心的是,如果我这样做,所有的虚拟主机都会像

<VirtualHost *:80>
     ServerName www.domain.tld
     ServerAlias domain.tld
     DocumentRoot /www/domain
</VirtualHost>

会发狂。如果不是这样,那么

<VirtualHost *:80 [*]:80>
     ServerName www.domain.tld
     ServerAlias domain.tld
     DocumentRoot /www/domain
</VirtualHost>

还应使域名可通过 IPv6 访问吗?

我在这里有点困惑,无法从现有的“示例”中得出太多结论。如能提供任何帮助,我将不胜感激。

答案1

您只需将您的Listen指令更改为:

Listen [::]:80
Listen [::]:443

虽然你的

NameVirtualHost *:80
<VirtualHost *:80>

保持不变。

注意:netstat -tln将显示 apache 仅在tcp6/上监听:::80;这是正常的(它也会像以前一样响应 IPv4)

相关内容