在linux上,为什么某些服务明明开启了,但用 netstat查看时, 却只显示了 tcp6 监听端口。但是ipv4的服务还是可以访问的,那为什么没有显示 tcp4 的监听呢?
解决过程:
- 首先,关闭 ipv6 并且重启服务,就显示正常了,比如httpd 命令如下:
bash
sysctl net.ipv6.conf.all.disable_ipv6=1
systemctl restart httpd
用netstat再次查看监听,可以看到,已经只监听到只有tcp。
总结:
netstat 只是很真实的显示监听的端口而已,但是需要注意 tcp6 实际上在 Linux 上也支持tcp4。