zoukankan      html  css  js  c++  java
  • linux下常用命令查看端口占用

    在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询
    netstat命令各个参数说明如下:
      -t : 指明显示TCP端口
      -u : 指明显示UDP端口
      -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
      -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
      -n : 不进行DNS轮询,显示IP(可以加速操作)
    即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··
    netstat -ntlp   //查看当前所有tcp端口·
    netstat -ntulp |grep 80   //查看所有80端口使用情况·
    netstat -ntulp | grep 3306   //查看所有3306端口使用情况·

    Linux查看程序端口占用情况
    使用命令:
    ps -aux | grep tomcat
    发现并没有8080端口的Tomcat进程。
    使用命令:netstat –apn
    查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name 
    发现8080端口被PID为9658的Java进程占用。
    进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
    就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!
    方法二:直接使用 netstat   -anp   |   grep  portno
    即:netstat -anp|grep 8080


    netstat -anp|grep 8080 --> tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      28500/java
    ps -aux | grep 28500  --> r/local/tomcat9-jforum/tomcat


    安装lsof list open files//---也可以  netstat -tunlp|grep 端口号  netstat -anp|grep 端口号 
    yum install lsof
    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 用以显示符合条件的进程情况
    lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
      46 --> IPv4 or IPv6
      protocol --> TCP or UDP
      hostname --> Internet host name
      hostaddr --> IPv4地址
      service --> /etc/service中的 service name (可以不止一个)
      port --> 端口号 (可以不止一个)
      lsof -i //显示所有打开的端口
    lsof -i:80 //显示所有打开80端口的进程
    lsof -i -U //显示所有打开的端口和UNIX domain文件


    其实我一般这样用:

    [root@VM_39_230_centos bin]# lsof -i:3306
    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    mysqld  16422 mysql   19u  IPv6 148794      0t0  TCP *:mysql (LISTEN)
    mysqld  16422 mysql   39u  IPv6 643698      0t0  TCP localhost:mysql->localhost:36582 (ESTABLISHED)
    mysqld  16422 mysql   45u  IPv6 643699      0t0  TCP localhost:mysql->localhost:36584 (ESTABLISHED)
    mysqld  16422 mysql   46u  IPv6 643700      0t0  TCP localhost:mysql->localhost:36586 (ESTABLISHED)
    mysqld  16422 mysql   47u  IPv6 643702      0t0  TCP localhost:mysql->localhost:36588 (ESTABLISHED)
    mysqld  16422 mysql   48u  IPv6 643704      0t0  TCP localhost:mysql->localhost:36590 (ESTABLISHED)
    java    17302  root  122u  IPv4 643695      0t0  TCP localhost:36582->localhost:mysql (ESTABLISHED)
    java    17302  root  123u  IPv4 643701      0t0  TCP localhost:36588->localhost:mysql (ESTABLISHED)
    java    17302  root  124u  IPv4 643696      0t0  TCP localhost:36586->localhost:mysql (ESTABLISHED)
    java    17302  root  125u  IPv4 643697      0t0  TCP localhost:36584->localhost:mysql (ESTABLISHED)
    java    17302  root  126u  IPv4 643703      0t0  TCP localhost:36590->localhost:mysql (ESTABLISHED)

    或者
    [root@VM_39_230_centos bin]# netstat -ntulp | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      16422/mysqld  

    找到pid  然后 

    [root@VM_39_230_centos bin]# ps -aux | grep 16422
    mysql    16422  0.0 47.7 1340428 485944 ?      Sl   Jun29   1:46 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/lib/mysql/VM_39_230_centos.err --pid-file=/var/lib/mysql/VM_39_230_centos.pid
    root     25713  0.0  0.0 112616   700 pts/0    R+   17:04   0:00 grep --color=auto 16422

  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/zyh0430/p/11877647.html
Copyright © 2011-2022 走看看