linux下端口被占用及解除
问题
最近开始学linux,写一个网络编程有关的程序时,服务端绑定端口
客户端第一次连接的时候,服务端能够正常打印出客户端的ip地址及端口号
再次运行时,发现服务端一直处于未响应的状态,排查了一段时间
结果发现程序退出时出现异常,出现了僵尸进程,端口一直被占用
解决办法
1、查看端口是否被占用:
netstat -anp |grep 8888 //查看8888端口的占用情况
出现如下情况说明被占用:
2、查看占用此端口的进程PID
lsof -i :8888
结果如下:
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系统中的端口占用情况。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。