https://segmentfault.com/q/1010000007087853/a-1020000007089455
系统redhat7,httpd已经启动
[root@rhcsa conf.d]# netstat -tnpl | grep 443
tcp6 0 0 :::443 :::* LISTEN 1229/httpd
为什么如上命令只显示tcp6,而没有tcp ?
==============================================
回答
监听了tcp6后,tcp也可以用的。虽然这个只显示了IPv6的端口监听,但并不代表只接受IPv6的连接,实际上,apache会以mapped address (::FFFF:a.b.c.d) 方式来接受IPv4的连接。除了少部分平台上,例如FreeBSD,NetBSD,OpenBSD之外, Apache在编译时,默认启用了 --enable-v4-mapped 选项。所以,Apache会同时接受IPv6和IPv4的连接请求。
除非是 IPV6_V6ONLY 模式开启,才需要两个不同的socket来分别监听IPv6和IPv4.IPV6_V6ONLY模式可以通过 sysctl net.ipv6.bindv6only 来控制,默认是关闭的。如果你实在愿意在netstat中只看到IPv4端口的监听,那么,你可以修apachezhttp.conf 中,将
Listen 80
修改为
Listen 0.0.0.0:80
具体信息,请参考 http://httpd.apache.org/docs/...