查看为啥开启了tcp6,但是没有开启tcp,有些人就说是只开启了ipv6,没有ipv4,但是实际上ipv6支持ipv4

在Linux系统中,某些服务虽然运行并可以通过ipv4访问,但在使用netstat检查时仅显示tcp6监听。关闭ipv6并通过重启服务后,netstat才正常显示tcp监听。这表明netstat的输出反映了ipv6的监听状态,即使ipv4服务实际运行正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux上,为什么某些服务明明开启了,但用 netstat查看时, 却只显示了 tcp6 监听端口。但是ipv4的服务还是可以访问的,那为什么没有显示 tcp4 的监听呢?

解决过程:

  1. 首先,关闭 ipv6 并且重启服务,就显示正常了,比如httpd 命令如下:
sysctl net.ipv6.conf.all.disable_ipv6=1
systemctl restart httpd
用netstat再次查看监听,可以看到,已经只监听到只有tcp。

总结:
netstat 只是很真实的显示监听的端口而已,但是需要注意 tcp6 实际上在 Linux 上也支持tcp4。