在Linux上找到所有已经打开的端口及其对应的进程

Linux服务器端口检查
本文介绍如何使用netstat命令在Linux服务器上查看所有开放端口及其对应的进程,并通过实例展示了如何定位特定端口的占用情况。

参考文章:
How to Check for All Open Ports on a Linux Server (文档 ID 1539208.1)


请以root用户执行如下命令,否则对应的进程名可能显示不全
[root@rac2 ~]# netstat -lpntu| grep --color -i -E 'listen|listening'
tcp        0      0 172.17.0.2:50313        0.0.0.0:*               LISTEN      15300/evmd.bin      
tcp        0      0 192.168.100.193:1521    0.0.0.0:*               LISTEN      26870/tnslsnr       
tcp        0      0 192.168.100.192:1521    0.0.0.0:*               LISTEN      16721/tnslsnr       
tcp        0      0 192.168.100.102:1521    0.0.0.0:*               LISTEN      16721/tnslsnr       
tcp        0      0 127.0.0.1:6100          0.0.0.0:*               LISTEN      15470/ons           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      2168/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1676/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1677/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2128/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      14194/sshd: root@pt 
tcp        0      0 0.0.0.0:9179            0.0.0.0:*               LISTEN      14861/gpnpd.bin     
tcp        0      0 172.17.0.2:61020        0.0.0.0:*               LISTEN      15095/osysmond.bin  
tcp        0      0 172.17.0.2:61021        0.0.0.0:*               LISTEN      15482/ologgerd      
tcp        0      0 172.17.0.2:48895        0.0.0.0:*               LISTEN      15284/crsd.bin      
tcp        0      0 127.0.0.1:2016          0.0.0.0:*               LISTEN      14837/oraagent.bin  
tcp6       0      0 :::23792                :::*                    LISTEN      1328/java           
tcp6       0      0 ::1:6100                :::*                    LISTEN      15470/ons           
tcp6       0      0 :::22                   :::*                    LISTEN      1676/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1677/cupsd          
tcp6       0      0 127.0.0.1:8888          :::*                    LISTEN      1328/java ---->>>目的是找出8888端口谁占用了.          
tcp6       0      0 :::6200                 :::*                    LISTEN      15470/ons           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2128/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      14194/sshd: root@pt 
tcp6       0      0 :::45855                :::*                    LISTEN      31808/ora_d000_orcl 
tcp6       0      0 ::1:2016                :::*                    LISTEN      14837/oraagent.bin  
tcp6       0      0 :::9127                 :::*                    LISTEN      1328/java           
[root@rac2 ~]# ps -ef | grep 1328 ----------->>>找到了进程了.
grid      1328     1  0 Jul11 ?        00:06:41 /u01/app/11.2.0/grid/jdk/bin/java -server -Xcheck:jni -Xms128M -Xmx384M -Djava.awt.headless=true -Ddisable.checkForUpdate=true -Dstdstream.filesize=100 -Dstdstream.filenumber=10 -DTRACING.ENABLED=false -Doracle.wlm.dbwlmlogger.logging.level=INFO -Dport.rmi=23792 -jar /u01/app/11.2.0/grid/oc4j/j2ee/home/oc4j.jar -config /u01/app/11.2.0/grid/oc4j/j2ee/home/OC4J_DBWLM_config/server.xml -out /u01/app/11.2.0/grid/oc4j/j2ee/home/log/oc4j.out -err /u01/app/11.2.0/grid/oc4j/j2ee/home/log/oc4j.err
root     15205 14200  0 09:50 pts/0    00:00:00 grep --color=auto 1328
[root@rac2 ~]# 


### Linux 查看所有开放端口对应进程的方法 在Linux系统中,查看所有开放端口及其对应进程信息可以通过多种命令实现,以下是几种常用方法: #### 方法一:使用 `netstat` 命令 `netstat` 是一个网络统计工具,可以显示网络连接、路由表、接口统计、伪装连接和多播成员。通过以下命令可以查看所有开放的端口及其对应进程信息: ```bash sudo netstat -tulnlp ``` 此命令中的参数含义如下: - `-t`:显示 TCP 端口。 - `-u`:显示 UDP 端口。 - `-l`:仅显示监听状态的端口。 - `-n`:以数字形式显示地址和端口号。 - `-p`:显示与端口关联的进程名称和进程ID。 这种方法可以直接列出所有正在监听的端口以及对应进程信息[^2]。 #### 方法二:使用 `ss` 命令 `ss` 是 `netstat` 的替代工具,功能更强大且性能更高。以下是使用 `ss` 查看开放端口对应进程的命令: ```bash sudo ss -tuln ``` 如果需要显示进程信息,可以添加 `-p` 参数: ```bash sudo ss -tulnp ``` 此命令中的参数含义与 `netstat` 类似,`-p` 参数用于显示进程信息[^4]。 #### 方法三:使用 `lsof` 命令 `lsof`(List Open Files)是一个列出当前系统打开文件的工具,也可以用来查看网络端口。以下是使用 `lsof` 查看所有监听的网络端口及其对应进程信息的命令: ```bash sudo lsof -i -P -n | grep LISTEN ``` 此命令中的参数含义如下: - `-i`:显示网络相关的文件。 - `-P`:显示端口号而不是服务名称。 - `-n`:以 IP 地址的形式显示,而不是尝试解析主机名。 - `grep LISTEN`:过滤出处于监听状态的端口。 如果需要查看特定端口的信息,可以使用以下命令: ```bash sudo lsof -i :端口号 ``` 例如,查看 80 端口的信息: ```bash sudo lsof -i :80 ``` 这种方法可以清晰地展示每个监听端口对应进程信息[^1]。 #### 方法四:结合 `ps` 和 `grep` 命令 如果已经知道某个端口对应进程名称,可以使用 `ps` 和 `grep` 命令来查找该进程的详细信息。例如: ```bash ps -aux | grep 进程名 ``` 此命令会列出与指定进程名相关的所有信息,包括进程ID、用户、CPU占用率等[^3]。 ### 注意事项 - 需要超级用户权限(`sudo`)才能查看所有端口进程信息。 - 如果系统中没有安装某些工具(如 `netstat` 或 `ss`),可以通过包管理器进行安装。例如,在基于 Debian 的系统中可以使用以下命令安装 `net-tools` 包: ```bash sudo apt-get install net-tools ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值