httpd 443端口为什么只监听在tcp6上


https://segmentfault.com/q/1010000007087853/a-1020000007089455


系统redhat7,httpd已经启动

[root@rhcsa conf.d]# netstat -tnpl | grep 443
tcp6       0      0 :::443            :::*          LISTEN      1229/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/...


posted @   张同光  阅读(528)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示