Linux查看端口占用情况

Linux系统
272
0
0
2023-05-12
目录
  • 一、查看已知端口占用情况
  • 二、查看全部端口占用情况
  • 三、查看具体端口被哪个程序占用
  • 四、kill被占用的进程
  • 五、检查对应端口是否还在占用

一、查看已知端口占用情况

比如,我们想知道8080端口的使用情况,或者说被谁占用了,命令如下:

 netstat -anp | grep 8080

结果如下:

也可以使用命令:

netstat -tln | grep 8080

结果:

和上个命令对比,少了“2597932/java”,这个显示的是进程号以及被哪个程序所占用。

如果没有被占用,就什么都不显示。

二、查看全部端口占用情况

netstat -anp
 
# 或者
netstat -tln

显示结果分别如下面:

[root@Cent0S8-FTP sysconfig]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address     Foreign Address    State   PID/Program name  
tcp    0   0 127.0.0.1:44321    0.0.0.0:*       LISTEN   1740/pmcd      
tcp    0   0 127.0.0.1:4330     0.0.0.0:*       LISTEN   2715/pmlogger    
tcp    0   0 0.0.0.0:111      0.0.0.0:*       LISTEN   1/systemd      
tcp    0   0 0.0.0.0:22       0.0.0.0:*       LISTEN   1191/sshd      
tcp    0   0 127.0.0.1:631     0.0.0.0:*       LISTEN   1196/cupsd     
tcp    0   0 192.168.10.111:22   192.168.10.112:56798  ESTABLISHED 3209340/sshd: fangd 
tcp    0   0 192.168.10.111:22   192.168.10.112:58794  ESTABLISHED 3330163/sshd: fangd 
tcp   32   0 192.168.10.111:35222  8.43.85.13:443     CLOSE_WAIT 3876/gnome-shell  
tcp    0  52 192.168.10.111:22   192.168.10.112:56674  ESTABLISHED 3198229/sshd: fangd 
tcp6   0   0 ::1:44321       :::*          LISTEN   1740/pmcd      
tcp6   0   0 ::1:4330        :::*          LISTEN   2715/pmlogger    
tcp6   0   0 :::111         :::*          LISTEN   1/systemd      
tcp6   0   0 :::21         :::*          LISTEN   1430/vsftpd     
tcp6   0   0 :::22         :::*          LISTEN   1191/sshd      
tcp6   0   0 ::1:631        :::*          LISTEN   1196/cupsd     
udp    0   0 0.0.0.0:5353      0.0.0.0:*             982/avahi-daemon: r 
udp    0   0 192.168.10.111:46722  193.182.111.143:123  ESTABLISHED 985/chronyd     
udp    0   0 0.0.0.0:67       0.0.0.0:*             2632/dnsmasq    
udp    0   0 192.168.10.111:68   192.168.10.1:67    ESTABLISHED 1176/NetworkManager 
udp    0   0 0.0.0.0:111      0.0.0.0:*             1/systemd      
udp    0   0 0.0.0.0:45242     0.0.0.0:*             982/avahi-daemon: r 
udp    0   0 127.0.0.1:323     0.0.0.0:*             985/chronyd     
udp6   0   0 :::5353        :::*                982/avahi-daemon: r 
udp6   0   0 :::111         :::*                1/systemd      
udp6   0   0 ::1:323        :::*                985/chronyd     
udp6   0   0 :::41737        :::*                982/avahi-daemon: r 
raw6   0   0 :::58         :::*          7     1176/NetworkManager 
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags   Type   State    I-Node PID/Program name  Path
unix 2   [ ACC ]  SEQPACKET LISTENING  24579  1/systemd      /run/systemd/coredump
unix 2   [ ACC ]  STREAM  LISTENING  29959  967/lsmd      /var/run/lsm/ipc/simc
 [root@Cent0S8-FTP sysconfig]# netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address    State   
tcp    0   0 127.0.0.1:44321    0.0.0.0:*       LISTEN   
tcp    0   0 127.0.0.1:4330     0.0.0.0:*       LISTEN   
tcp    0   0 0.0.0.0:111      0.0.0.0:*       LISTEN   
tcp    0   0 0.0.0.0:22       0.0.0.0:*       LISTEN   
tcp    0   0 127.0.0.1:631     0.0.0.0:*       LISTEN   
tcp6   0   0 ::1:44321       :::*          LISTEN   
tcp6   0   0 ::1:4330        :::*          LISTEN   
tcp6   0   0 :::111         :::*          LISTEN   
tcp6   0   0 :::21         :::*          LISTEN   
tcp6   0   0 :::22         :::*          LISTEN   
tcp6   0   0 ::1:631        :::*          LISTEN

三、查看具体端口被哪个程序占用

lsof -i :8080
[root@Cent0S8-FTP sysconfig]# lsof -i :8080
COMMAND  PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java  2597932 root 45u IPv6 27126054   0t0 TCP *:webcache (LISTEN)

四、kill被占用的进程

我们通过三中的命令得到PID对应的2597932,或者通过命令“netstat -anp | grep 8080”得到的“2597932/java”,这里的2597932都是端口占用的对应进程的进程号,我们杀掉对应进程号即可。

 kill -9 2597932

五、检查对应端口是否还在占用

在“四”中,我们kill了对应的进程,那么是否成功了呢,我们可以通过“一”中的命令再查看一下8080端口的使用情况。

netstat -anp | grep 8080