文章主要内容

Linux系统中,查看网络端口占用情况是系统管理员和开发者的日常必备技能。无论是排查服务启动失败、定位端口冲突,还是检查系统安全,掌握端口查看命令都能让你事半功倍。本文将结合实际使用场景,详细介绍Linux下最实用、最常用的网络端口查看命令和方法。

如何查看linux端口是否被占用

在日常运维中,我们最常遇到的就是启动服务时提示“Address already in use”。这时候就需要快速确认端口是否被占用。最经典的工具是netstat命令,搭配不同的参数可以显示不同维度的信息。

端口查看命令linux_查看端口号linux_linux查看网络端口命令

netstat -tunlp 这个组合堪称查看端口占用的黄金组合。参数t表示显示TCP端口,u表示显示UDP端口linux 删除文件夹,n表示以数字形式显示地址和端口号,l表示只显示监听状态的端口,p则显示占用端口的进程PID和名称。输入这个命令后,你能清晰看到所有正在监听的端口及其对应的服务。

除了netstat,另一个常用工具是ss命令。它是netstat的现代替代品,执行效率更高。使用ss -tunlp也能达到同样的效果,而且输出速度更快,尤其在端口数量较多的服务器上优势明显。

怎样通过端口号查找对应进程

有时候我们知道某个端口异常,比如发现8080端口响应缓慢linux查看网络端口命令,想找到是哪个进程在作怪。这时候可以通过端口号反查进程信息。使用lsof命令非常方便,lsof -i:8080就能直接显示占用8080端口的进程详情。

查看端口号linux_端口查看命令linux_linux查看网络端口命令

lsof的输出信息非常丰富,包括进程PID、进程所有者、文件描述符等。如果系统中没有安装lsof,也可以通过netstat或ss配合grep来查询,例如netstat -tunlp | grep 8080。找到PID后,再用ps -ef | grep PID就能看到完整的进程信息。

linux查看所有开放端口命令

安全审计时经常需要检查系统开放了哪些端口,是否存在不必要的风险。除了前面提到的netstat -tunlp可以查看监听端口外,还可以使用nmap工具从外部扫描本机端口,这样能更真实地反映端口的对外开放情况。

安装nmap后免费linux主机,执行nmap localhost或者nmap 127.0.0.1就能扫描本机所有打开的TCP端口。如果想扫描UDP端口,可以加上-sU参数。对于远程服务器,建议从另一台机器扫描,这样能排除本地防火墙的影响,看到真正的对外暴露端口。

查看端口号linux_端口查看命令linux_linux查看网络端口命令

如果只想快速查看防火墙放行了哪些端口,可以用firewall-cmd --list-ports(CentOS/RHEL)或者ufw status(Ubuntu)。这些命令能帮你了解系统层面的端口访问控制策略。

如何查看某个服务的端口号

部署服务时经常需要确认服务是否正常启动并监听了正确的端口。比如启动了Nginx后,想验证它是否真的占用了80端口。最直接的方法是结合服务名称和端口查看命令。

先通过ps aux | grep nginx找到Nginx的进程PID,然后用netstat -tunlp | grep PID就能看到这个进程占用的所有端口。也可以直接用lsof -c nginx,-c参数指定进程名开头,就能列出nginx进程打开的所有文件,其中包括网络端口。

对于Java应用,常用的是查看配置文件来确定端口,但更可靠的是用jps找到Java进程PID,再用lsof -p PID查看该进程打开的端口。这样可以避免配置文件与实际运行不一致的情况。

查看端口号linux_linux查看网络端口命令_端口查看命令linux

linux端口监控命令有哪些

在生产环境中,我们需要持续关注端口的连接状态,及时发现异常。除了静态查看,动态监控端口状态也是必备技能。watch命令配合netstat可以实现实时监控,例如watch -n 1 ‘netstat -tunp | grep 8080’会每秒刷新一次8080端口的连接情况。

iftop命令可以实时显示网络带宽使用情况,并且能看到每个连接的IP和端口。这对于排查哪个IP占用了大量带宽非常有用。nethogs则能按进程显示带宽使用,直接定位到占用带宽的进程和端口。

对于更专业的监控,可以部署Prometheus结合node_exporter,它能收集系统层面的TCP连接数、各个状态的连接数量等指标,并通过Grafana展示趋势图,便于长期分析和告警。

如何用netstat查看tcp连接状态

端口查看命令linux_linux查看网络端口命令_查看端口号linux

TCP连接有多个状态,如ESTABLISHED、TIME_WAIT、CLOSE_WAIT等,这些状态能反映网络连接的健康状况。netstat -tun可以显示所有TCP连接,配合状态过滤能快速发现问题。

比如执行netstat -tun | grep TIME_WAIT | wc -l可以统计处于TIME_WAIT状态的连接数。如果这个数值持续很高,可能说明服务器并发连接数过高或存在短连接过多的问题。同样,如果CLOSE_WAIT过多linux查看网络端口命令,通常意味着应用程序没有正确关闭连接。

通过netstat -tun | awk ‘{print $6}’ | sort | uniq -c可以统计各种状态的数量分布。这个命令组合在排查网络故障时非常实用,能快速掌握整体连接状况。

你在实际工作中遇到过哪些因为端口问题导致的故障?是用什么命令排查解决的?欢迎在评论区分享你的经验,如果觉得本文对你有帮助,别忘了点赞转发让更多人看到!

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复