玩玩Linux云主机-Linux看端口的占用 、linux lsof、netstat

来源:互联网 发布:手机如何发布淘宝宝贝 编辑:程序博客网 时间:2024/05/16 14:18
  1. 查看端口的占用情况,这个是非常有必要的,经常会发现端口已经被占用,不能使用这个端口啦,所以呢,排查问题,查看日志等本领基本还是需要懂一些,笔者在windows上开发也是经常的遇到,端口占用的情况,所以排查这个问题是必须使用的,但是,怎么处理是个问题。笔者是个黑窗~没有windows里面那么方便了,但是记住命令行也是蛮快的吧!熟悉还是需要时间的。
  2. 使用netstat(查询网络数据结构) -tln ; 具体的字段信息到底是什么意思 可以使用man netstat 或者info netstat
    netstat -tln
    这里写图片描述

  3. 这个只是查看到了当前的端口的占用的情况,并不知道是那个进程占用了,所以还需要加一个参数 -p
    netstat -tlnp
    这里写图片描述

  4. 晓得了哪个程序占用了,直接把这个进程干掉就行了。除了这个之外呢,有时候这个端口太多了,怎么办呢?过滤一下子处理。 netstat -tlnp |grep 8080
    这里写图片描述
  5. 上面已经解决了问题,但是,笔者在查找资料的时候又发现了一个比较6666的武器,也可以做类似的处理。
  6. lsof简介
    lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
  7. 就来试试这个命令,哗啦啦的一片文件打印出来。
    这里写图片描述
    上面是一些系统的编译后的文件
    这里写图片描述
    下面的这些jar包知道涩,哈哈!也是可以查看到的,真的把当前系统中被打开的文件全部都打印出来了,哈哈,好厉害。因为都是文件嘛,所以TCP,UDP等信息也是会被包括进来的。
  8. 要学会自己查找资料嘛 man lsof 这里面有很多的参数,我这里只是截图了一个 -i参数代表网络
    这里写图片描述
    这里笔者演示一下,和网络访问有关的文件的信息 lsof -i list open file 争取记住啊
    这里写图片描述
  9. 这里还有点需要注意的是,有的端口号没有显示出来啊,怎么过滤呢 ;最靠谱的方式就是
    lsof -i:8080(后面跟上端口号) 这个方式下面呢,看到没有,所有的信息里面没有显示出来端口号的信息。
    这里写图片描述

但是笔者依靠之前的经验呢,想使用管道进行过滤操作 在后面增加 lsof -i |grep 8080,安装笔者这个思路呢,如果显示的信息中有这个8080字段肯定会被查找到的,但是呢,看看就知道了
这里写图片描述
80过滤的情况就出来了,8080就没得,所以啊还是加个:这种靠谱点或者直接使用最上面这种方式处理。
10. lsof 还有很多的用法 http://blog.csdn.net/guoguo1980/article/details/2324454 感觉使用起来蛮好的啊,确实挺好用的,以后不晓得有机会没得哈哈,学习一下子这个还是没事的。

0 0