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

  • 相关阅读:
    java正则表达式(九)
    java正则表达式(八)
    java正则表达式(十)
    正确理解ThreadLocal
    Class.getResource与ClassLoader.getResource()区别
    seajs中define方法的id和dependencies参数
    seajs研究一二三
    十八年开发经验分享(三)问题解决篇(中)
    EntityModelStudio系列教程4静态建模进阶
    EntityModelStudio系列教程6EMLib框架之Orm
  • 原文地址:https://www.cnblogs.com/zyh0430/p/11877647.html
Copyright © 2011-2022 走看看