Linux下查看端口占用情况

本文介绍在Linux环境下如何查看端口占用情况,提供了两种实用的方法:使用lsof命令和netstat命令结合grep进行精确查找,并展示了如何进一步获取占用端口的进程详细信息。
Linux下查看端口占用情况
 
用启动服务的账号登录,然后运行命令:
lsof -i:<端口号>
例如:
www.2cto.com  
Linux代码  
[root@SonarServer1 user0]# lsof -i:80  
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME  
java    19408 root  144u  IPv6 183572842      0t0  TCP *:http (LISTEN)  
   www.2cto.com  
也可使用命令:
netstat -apn|grep <端口号>
例如:
Linux代码  
[root@SonarServer1 user0]# netstat -apn|grep 80  
tcp        0      0 :::80                       :::*                        LISTEN      19408/java    
 找到进程号以后,再使用以下命令查看详细信息:
ps -aux|grep <进程号>
Linux代码  
[root@SonarServer1 user0]# ps -aux|grep 19408  
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ  
root     19408  3.8  2.2 2520992 357368 ?      Sl   10:29   0:27 java -Djava.awt.headless=true -XX:MaxPermSize=128m -Xms256m -Xmx512m -Djava.library.path=./lib -classpath ../../lib/servlet-api-2.5-20081211.jar:../../lib/jetty-util-6.1.25.jar:../../lib/activation-1.1.jar:../../lib/geronimo-spec-jta-1.0-M1.jar:../../lib/wrapper-3.2.3.jar:../../lib/commons-io-2.0.1.jar:../../lib/jetty-6.1.25.jar:../../lib/sonar-application-3.2.jar:../../lib/jetty-naming-6.1.25.jar:../../lib/jetty-plus-6.1.25.jar:../../:../../extensions/jdbc-driver/mysql/mysql-connector-java-5.1.18.jar:../../extensions/jdbc-driver/postgresql/postgresql-9.0-801.jdbc3.jar:../../extensions/jdbc-driver/mssql/jtds-1.2.4.jar -Dwrapper.key=n24m_l80HqD33MJi -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=19406 -Dwrapper.version=3.2.3 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 org.tanukisoftware.wrapper.WrapperSimpleApp org.sonar.application.StartServer  
root     19460  0.0  0.0 105476   948 pts/5    S+   10:41   0:00 grep 19408 
Linux 系统中,查看 8080 端口占用情况可以使用多种命令,这些方法适用于排查服务是否正常运行或解决端口冲突问题。 ### 使用 `netstat` 命令 `netstat` 是一个常用的网络状态工具,可以显示与网络连接、路由表、接口统计等有关的信息。要查看 8080 端口占用情况,可以使用以下命令: ```bash sudo netstat -tulnp | grep :8080 ``` - `-t`:显示 TCP 连接。 - `-u`:显示 UDP 连接。 - `-l`:仅列出监听状态的端口。 - `-n`:以数字形式显示地址和端口号(不解析为域名或服务名)。 - `-p`:显示进程标识符和进程名(需要 root 权限)[^2]。 ### 使用 `ss` 命令 `ss` 是一个功能更强大且效率更高的工具,推荐在现代 Linux 发行版中使用。它用于获取套接字统计信息,并能提供比 `netstat` 更快的速度。要检查 8080 端口,可以使用: ```bash sudo ss -tulnp | grep :8080 ``` 这里的选项含义与 `netstat` 类似: - `-t`:显示 TCP 端口。 - `-u`:显示 UDP 端口。 - `-l`:仅显示监听状态的端口。 - `-n`:不解析服务名称。 - `-p`:显示进程信息(同样需要 root 权限)[^1]。 ### 使用 `lsof` 命令 `lsof` 是一个列出打开文件信息的工具,也可以用来查看特定端口的使用情况。对于 8080 端口,可以执行如下命令: ```bash sudo lsof -i :8080 ``` 此命令将列出所有使用 8080 端口的进程及其相关信息,如用户、PID 和进程名称等 [^1]。 ### 使用 `fuser` 命令 `fuser` 可以显示哪些进程正在使用指定的端口。对于 8080 竓,您可以运行: ```bash sudo fuser 8080/tcp ``` 此外,如果想要获得更详细的进程信息,可以添加 `-v` 参数来增加输出的详细程度: ```bash sudo fuser -v 8080/tcp ``` 这会给出每个使用该端口的进程的更多信息 [^1]。 ### 结束占用 8080 端口的进程 如果您发现 8080 端口被不必要的进程占用,并决定终止该进程,可以通过上文提到的命令获取到 PID(进程 ID),然后使用 `kill` 命令结束进程: ```bash sudo kill -9 <PID> ``` 请替换 `<PID>` 为实际的进程编号 [^3]。 通过上述任一方法,您都可以有效地监控和管理 Linux 系统上的 8080 端口使用情况
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值