潮起云生 发表于 2024-4-14 15:36:26

linux下端口被占用问题以及解除方式

linux下端口被占用及解除


问题

最近开始学linux,写一个网络编程有关的程序时,服务端绑定端口
客户端第一次连接的时候,服务端能够正常打印出客户端的ip地址及端口号
再次运行时,发现服务端一直处于未响应的状态,排查了一段时间
结果发现程序退出时出现异常,出现了僵尸进程,端口一直被占用

解决办法

1、查看端口是否被占用:
netstat -anp |grep 8888 //查看8888端口的占用情况出现如下情况说明被占用:
https://img.jbzj.com/file_images/article/202404/2024040110134932.jpg
2、查看占用此端口的进程PID
lsof -i :8888结果如下:
https://img.jbzj.com/file_images/article/202404/2024040110134933.jpg
3、杀死进程
kill -9 4110    //4110为进程ID可以看到成功结果:

至此端口已解除占用啦

linux如何查看端口占用情况

在Linux系统中,您可以使用多种命令来查看端口占用情况。
以下是一些常用的方法:

netstat命令

使用netstat命令可以显示网络连接、路由表、接口统计信息等。
要查看端口占用情况,可以使用以下命令:
netstat -tuln
这将显示当前所有监听的TCP和UDP端口,以及它们的状态和进程信息。

ss命令

ss命令也用于查看套接字统计信息,更快速和有效。
要查看端口占用情况,可以使用以下命令:
ss -tuln

lsof命令

lsof命令用于列出所有打开文件和套接字的信息,包括端口占用情况。
要查看某个特定端口的占用情况,可以使用以下命令:
lsof -i :端口号
例如,要查看端口号为80的占用情况,可以使用:
lsof -i :80

pidof和fuser命令

pidof和fuser命令用于查找正在使用某个文件或套接字的进程ID。
要查看某个端口的占用情况,可以结合使用这两个命令,例如:
pidof -t -x 端口号 fuser 端口号/tcp这些命令将显示占用指定端口的进程信息,包括进程ID(PID)和进程名称。
您可以根据需要选择适合的方法来查看Linux系统中的端口占用情况。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/31902282m.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: linux下端口被占用问题以及解除方式