Pour afficher l'occupation des ports sous Linux, vous pouvez utiliser la commandelsofetnetstat.


lsof

lsof (liste les fichiers ouverts) est un outil qui répertorie les fichiers ouverts sur le système actuel.

Syntaxe de lsof pour vérifier l'occupation des ports :

lsof -i:端口号

Exemple

Vérifiez l'occupation du port 8000 sur le serveur :

# lsof -i:8000
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:8000 (LISTEN)

On peut voir que le port 8000 est déjà occupé par un service nodejs léger.

lsof -i nécessite les privilèges de l'utilisateur root pour être exécuté, comme indiqué ci-dessous :

D'autres commandes lsof sont les suivantes :

lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

netstat

netstat -tunlpUtilisé pour afficher des informations associées telles que les ports TCP, UDP et les processus.

Syntaxe de netstat pour vérifier l'occupation des ports :

netstat -tunlp | grep 端口号
  • -t (tcp) afficher uniquement les options liées à tcp
  • -u (udp) n'afficher que les options liées à udp
  • -n refuser d'afficher les alias, convertir en nombre tout ce qui peut être affiché sous forme de nombre
  • -l lister uniquement les services à l'état Listen (en écoute)
  • -p afficher le nom du programme qui a établi la connexion associée
Par exemple, pour vérifier le port 8000, utilisez la commande suivante :
# netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      26993/nodejs   

Plus de commandes :

netstat -ntlp   //查看当前所有tcp端口
netstat -ntulp | grep 80   //查看所有80端口使用情况
netstat -ntulp | grep 3306   //查看所有3306端口使用情况

kill

Après avoir trouvé le processus qui occupe le port, si vous souhaitez tuer le processus, vous pouvez utiliser la commande kill :

kill -9 PID

Dans l'exemple ci-dessus, nous pouvons voir que le PID correspondant au port 8000 est 26993. Utilisez la commande suivante pour tuer le processus :

kill -9 26993