精华内容
下载资源
问答
  • linux 查看端口占用情况

    万次阅读 多人点赞 2019-06-25 07:33:27
    之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是...

    1.netstat  -anp  |grep   端口号

    如下,我以3306为例,netstat  -anp  |grep  3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:

                                                                                         图1

    图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。

    2.netstat   -nultp(此处不用加端口号)

    该命令是查看当前所有已经使用的端口情况,如图2:

                                                                                           图2

    图中可以看出我的82端口没有被占用

    3.netstat  -anp  |grep  82查看82端口的使用情况,如图3:

                                                                                                                              图3

    可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了

    展开全文
  • Linux查看端口占用情况 工具 Linux 查看端口占用情况可以使用 lsof 和 netstat 命令,关闭进程可以用kill。 lsof lsof(list open files)是一个列出当前系统打开文件的工具。 lsof 查看端口占用语法格式:lsof -...

    Linux查看端口占用情况

    工具

    Linux 查看端口占用情况可以使用 lsof 和 netstat 命令,关闭进程可以用kill。

    lsof

    lsof(list open files)是一个列出当前系统打开文件的工具。

    lsof 查看端口占用语法格式:lsof -i:端口号
    常用参数

    -a	列出打开文件存在的进程;
    -c<进程名>	列出指定进程所打开的文件;
    -g	列出GID号进程详情;
    -d<文件号>	列出占用该文件号的进程;
    +d<目录>	列出目录下被打开的文件;
    +D<目录>	递归列出目录下被打开的文件;
    -n<目录>	列出使用NFS的文件;
    -i<条件>	列出符合条件的进程。(4、6、协议、:端口、 @ip )
    -p<进程号>	列出指定进程号所打开的文件;
    -u	列出UID号进程详情;
    -h	显示帮助信息;
    -v	显示版本信息。
    -R  显示父进程id
    -l list UID numbers
    -P no port names 
    -n 不将IP转换为hostname,缺省是不加上-n参数
    
    

    常用方式

    #列出所有打开的文件:
    lsof
    备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位
    
    # 查看谁正在使用某个文件
    lsof   /filepath/file
    
    #递归查看某个目录的文件信息
    lsof +D /filepath/filepath2/
    备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
    
    # 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
    lsof | grep ‘/filepath/filepath2/’
    
    # 列出某个用户打开的文件信息
    lsof  -u username
    备注: -u 选项,u其实是user的缩写
    
    # 列出某个程序所打开的文件信息
    lsof -c mysql
    备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了
    
    # 列出多个程序多打开的文件信息
    lsof -c mysql -c apache
    
    # 列出某个用户以及某个程序所打开的文件信息
    lsof -u test -c mysql
    
    # 列出除了某个用户外的被打开的文件信息
    lsof   -u ^root
    备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
    
    # 通过某个进程号显示该进行打开的文件
    lsof -p 1
    
    # 列出多个进程号对应的文件信息
    lsof -p 123,456,789
    
    # 列出除了某个进程号,其他进程号所打开的文件信息
    lsof -p ^1
    
    # 列出所有的网络连接
    lsof -i
    
    # 列出所有tcp 网络连接信息
    lsof  -i tcp
    
    # 列出所有udp网络连接信息
    lsof  -i udp
    
    # 列出谁在使用某个端口
    lsof -i :3306
    
    # 列出谁在使用某个特定的udp端口
    lsof -i udp:55
    
    # 特定的tcp端口
    lsof -i tcp:80
    
    # 列出某个用户的所有活跃的网络端口
    lsof  -a -u test -i
    
    # 列出所有网络文件系统
    lsof -N
    
    #域名socket文件
    lsof -u
    
    #某个用户组所打开的文件信息
    lsof -g 5555
    
    # 根据文件描述列出对应的文件信息
    lsof -d description(like 2)
    
    # 根据文件描述范围列出文件信息
    lsof -d 2-3
    
    

    实例:查看服务器 80 端口的占用情况:(需要使用root权限才能看到user是root的信息)

    使用-i:port来显示与指定端口相关的网络信息
    使用-i@host来显示指定到指定主机的连接
    使用-i@host:port显示基于主机与端口的连接

    vagrant@ubuntu1804:~$ sudo lsof -i:80
    COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    nginx   1147    root   34u  IPv4  21319      0t0  TCP *:http (LISTEN)
    nginx   1148 vagrant   34u  IPv4  21319      0t0  TCP *:http (LISTEN)
    nginx   1149 vagrant   34u  IPv4  21319      0t0  TCP *:http (LISTEN)
    
    vagrant@ubuntu1804:~$ sudo lsof -R -s -P -i:80
    COMMAND  PID PPID    USER   FD   TYPE DEVICE SIZE NODE NAME
    nginx   1147    1    root   34u  IPv4  21319       TCP *:80 (LISTEN)
    nginx   1148 1147 vagrant   34u  IPv4  21319       TCP *:80 (LISTEN)
    nginx   1149 1147 vagrant   34u  IPv4  21319       TCP *:80 (LISTEN)
    

    仅显示TCP连接

    vagrant@ubuntu1804:~$ sudo lsof  -P -i tcp
    COMMAND    PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    rpcbind    491            root    8u  IPv4  15685      0t0  TCP *:111 (LISTEN)
    rpcbind    491            root   11u  IPv6  15688      0t0  TCP *:111 (LISTEN)
    systemd-r  500 systemd-resolve   13u  IPv4  16857      0t0  TCP localhost:53 (LISTEN)
    mailhog    666         vagrant    3u  IPv6  20126      0t0  TCP *:1025 (LISTEN)
    

    lsof输出各列信息的意义如下:

    COMMAND:进程的名称
    PID:进程标识符
    PPID:父进程标识符(需要指定-R参数)
    USER:进程所有者
    PGID:进程所属组
    FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
    	(1)cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
    
    	(2)txt :该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序
    
    	(3)lnn:library references (AIX);
    
    	(4)er:FD information error (see NAME column);
    
    	(5)jld:jail directory (FreeBSD);
    
    	(6)ltx:shared library text (code and data);
    
    	(7)mxx :hex memory-mapped type number xx.
    
    	(8)m86:DOS Merge mapped file;
    
    	(9)mem:memory-mapped file;
    
    	(10)mmap:memory-mapped device;
    
    	(11)pd:parent directory;
    
    	(12)rtd:root directory;
    
    	(13)tr:kernel trace file (OpenBSD);
    
    	(14)v86 VP/ix mapped file;
    
    	(15)0:表示标准输出
    
    	(16)1:表示标准输入
    
    	(17)2:表示标准错误
    
    	一般在标准输出、标准错误、标准输入后还跟着文件状态模式:r、w、u等
    
    	(1)u:表示该文件被打开并处于读取/写入模式
    
    	(2)r:表示该文件被打开并处于只读模式
    
    	(3)w:表示该文件被打开并处于
    
    	(4)空格:表示该文件的状态模式为unknow,且没有锁定
    
    	(5)-:表示该文件的状态模式为unknow,且被锁定
    
    	同时在文件状态模式后面,还跟着相关的锁
    
    	(1)N:for a Solaris NFS lock of unknown type;
    
    	(2)r:for read lock on part of the file;
    
    	(3)R:for a read lock on the entire file;
    
    	(4)w:for a write lock on part of the file;(文件的部分写锁)
    
    	(5)W:for a write lock on the entire file;(整个文件的写锁)
    
    	(6)u:for a read and write lock of any length;
    
    	(7)U:for a lock of unknown type;
    
    	(8)x:for an SCO OpenServer Xenix lock on part of the file;
    
    	(9)X:for an SCO OpenServer Xenix lock on the entire file;
    
    	(10)space:if there is no lock.
    TYPE:文件类型,如DIR、REG等,常见的文件类型
    (1)DIR:表示目录
    (2)CHR:表示字符类型
    (3)BLK:块设备类型
    (4)UNIX: UNIX 域套接字
    (5)FIFO:先进先出 (FIFO) 队列
    (6)IPv4:网际协议 (IP) 套接字
    DEVICE:指定磁盘的名称
    SIZE:文件的大小
    NODE:索引节点(文件在磁盘上的标识)
    NAME:打开文件的确切名称
    

    netstat命令

    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

    netstat 查看端口占用语法格式:netstat -tunlp | grep 端口号

    -a, --all display all sockets (default: connected)
    -t (tcp) 仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化为数字
    -l 仅列出在Listen(监听)的服务状态
    -p 显示建立相关链接的程序名
    

    常用方法

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

    示例:查看 80 端口的情况

    vagrant@ubuntu1804:~$ sudo netstat -tunlp | grep 80
    tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      808/memcached       
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1147/nginx: master  
    tcp6       0      0 :::8025                 :::*                    LISTEN      666/mailhog  
    

    kill命令

    在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:

    kill -9 PID
    
    展开全文
  • Linux 查看端口占用情况可以使用lsof和netstat命令。 lsof lsof(list open files)是一个列出当前系统打开文件的工具。 lsof 查看端口占用语法格式: lsof-i:端口号 实例 查看服务器 8000 端口的占用情况: ...

    Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。


    lsof

    lsof(list open files)是一个列出当前系统打开文件的工具。

    lsof 查看端口占用语法格式:

    lsof -i:端口号

    实例

    查看服务器 8000 端口的占用情况:

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

    可以看到 8000 端口已经被轻 nodejs 服务占用。

    lsof -i 需要 root 用户的权限来执行,如下图:

    更多 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 -U:显示所有打开的端口和UNIX domain文件

    netstat

    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

    netstat 查看端口占用语法格式:

    netstat -tunlp | grep 端口号
    • -t (tcp) 仅显示tcp相关选项

    • -u (udp)仅显示udp相关选项

    • -n 拒绝显示别名,能显示数字的全部转化为数字

    • -l 仅列出在Listen(监听)的服务状态

    • -p 显示建立相关链接的程序名

    例如查看 8000 端口的情况,使用以下命令:

    # netstat -tunlp | grep 8000tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      26993/nodejs

    更多命令:

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

    kill

    在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:

    kill -9 PID

    如上实例,我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程:

    kill -9 26993

     

    展开全文
  • Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。 lsof lsof(list open files)是一个列出当前系统打开文件的工具。 lsof 查看端口占用语法格式: lsof -i:端口号 更多 lsof 的命令如下: lsof -i:8080:查看...

    Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。

    lsof

    lsof(list open files)是一个列出当前系统打开文件的工具。
    lsof 查看端口占用语法格式:
    lsof -i:端口号
    更多 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 -U:显示所有打开的端口和UNIX domain文件

    netstat

    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
    netstat 查看端口占用语法格式:
    netstat -tunlp | grep 端口号
    -t (tcp) 仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化为数字
    -l 仅列出在Listen(监听)的服务状态
    -p 显示建立相关链接的程序名
    更多命令:
    netstat -ntlp //查看当前所有tcp端口
    netstat -ntulp | grep 80 //查看所有80端口使用情况
    netstat -ntulp | grep 3306 //查看所有3306端口使用情况

    kill

    在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:
    kill -9 PID

    展开全文
  • 原标题:Linux 查看端口占用情况Linux 查看端口占用情况Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。lsoflsof(list open files)是一个列出当前系统打开文件的工具。lsof 查看端口占用语法格式:lsof -i:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,816
精华内容 726
关键字:

linux查看端口占用情况

linux 订阅