我希望Apache在特定的接口上监听链路本地ipv6地址。 我有我的httpd.conf中的以下行:
Listen [fe80::a00:16ff:fe89:420f]:80
这是基于这里的Apache文档: https : //httpd.apache.org/docs/2.4/bind.html “IPv6地址必须括在方括号”
我的操作系统/ Apache版本详细信息如下:
$ httpd -v Server version: Apache/2.4.18 (Unix) Server built: Dec 14 2015 08:05:54 $ uname -rv 4.3.3-3-ARCH #1 SMP PREEMPT Wed Jan 20 08:12:23 CET 2016
使用journalctl -e
显示的结果是:
(22)无效参数:AH00072:make_sock:无法绑定到地址[fe80 …..
IPv6正在工作,因为我有sshd和dnsmasq监听。 我已经尝试追加两个不同的作用域ID后缀到地址。 您可以在ping6
和sshd
使用接口标识3
或名称net1
作为scopeid。
$ ip addr | grep -Po "^\d: \S+" 1: lo: 2: net0: 3: net1: $ for scopeid in 3 net1; do ping6 -c 1 fe80::a00:16ff:fe89:420f%$scopeid; done | grep loss 1 packets transmitted, 1 received, 0% packet loss, time 0ms 1 packets transmitted, 1 received, 0% packet loss, time 0ms
sshd_config适用于: ListenAddress fe80::a00:16ff:fe89:420f%3
或者: ListenAddress fe80::a00:16ff:fe89:420f%net1
所以考虑到这一切,我在httpd.conf中尝试了以下内容
听[fe80 :: a00:16ff:fe89:420f%3]:80
和Listen [fe80::a00:16ff:fe89:420f%net1]:80
在启动过程中,添加任何一个scopeid创build的Apache都会失败。 journalctl -e
在parsinghttpd.conf时显示语法错误,如下所示:
AH00526:/etc/httpd/conf/httpd.conf的第52行的语法错误:
范围ID不受支持
如果我Listen [::1]:80
Apache监听localhost ipv6
我期望Listen 80
能够将Apache绑定到ipv4和ipv6,但是它不会。 它只绑定到ipv6地址–netstat显示:
tcp6 0 0 :::80 :::* LISTEN
在这种情况下,Apache确实接受了net1上链路本地地址的请求。 我必须指定0.0.0.0:80
或特定的ipv4地址来监听ipv4。
那么,如何让Apache绑定到一个特定的链路本地地址(不是所有的 – 我想避免在其他接口上监听),还是Apache不能监听链路本地ipv6地址?
花了一些时间在这似乎Apache文档可能会误导,虽然我可能错过了一些东西。 它说IPv6地址必须用方括号括起来。 非链接本地地址是这样的。 但是我现在已经发现可以使用链路本地地址,并且必须包含一个作用域ID,但没有方括号。 见下文:
Apache文档:
$ wget -q -O- https://httpd.apache.org/docs/2.4/bind.html | grep -Pao "(?<=p.)IPv6[ az]+" IPv6 addresses must be enclosed in square brackets
我的configuration:
$ grep -R ^Listen /etc/httpd/conf/ /etc/httpd/conf/httpd.conf:Listen fe80::a00:16ff:fe89:420f%3:80 /etc/httpd/conf/extra/httpd-ssl.conf:Listen fe80::a00:16ff:fe89:420f%net1:443
正如你所看到的,我使用了端口号为80的端口号,端口号为443的端口号。这只是为了显示接口ID或名称可以成功地用作范围ID。
结果:
$ sudo netstat -pant | grep -i httpd tcp6 0 0 fe80::a00:16ff:fe89::80 :::* LISTEN 709/httpd tcp6 0 0 fe80::a00:16ff:fe89:443 :::* LISTEN 709/httpd