linux查看端口占用情况

转载 2018年04月15日 20:09:42

转:https://www.cnblogs.com/wangtao1993/p/6144183.html

今天要使用python写一个端口探测的小程序,以检测一些特定的服务端口有没有被占用,突然发现自己居然不知道在linux中如何查询端口被占用的情况,天呐,赶快学习一下。?

 

Linux如何查看端口

1、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

# lsof -i:8000
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
lwfs    22065 root    6u  IPv4 4395053      0t0  TCP *:irdmi (LISTEN)

可以看到8000端口已经被轻量级文件系统转发服务lwfs占用

 

2、netstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp |grep 8000

复制代码
# netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      4814/rpcbind        
tcp        0      0 0.0.0.0:5908                0.0.0.0:*                   LISTEN      25492/qemu-kvm      
tcp        0      0 0.0.0.0:6996                0.0.0.0:*                   LISTEN      22065/lwfs          
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      38296/dnsmasq       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5278/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      5013/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5962/master         
tcp        0      0 0.0.0.0:8666                0.0.0.0:*                   LISTEN      44868/lwfs          
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs        
复制代码
# netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs          

 

说明一下几个参数的含义:

                                

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

 

附加一个python端口占用监测的程序,该程序可以监测指定IP的端口是否被占用。

复制代码
1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 
  4 import socket, time, thread
  5 socket.setdefaulttimeout(3) #设置默认超时时间
  6 
  7 def socket_port(ip, port):
  8     """
  9     输入IP和端口号,扫描判断端口是否占用
 10     """
 11     try:
 12         if port >=65535:
 13             print u'端口扫描结束'
 14         s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 15         result=s.connect_ex((ip, port))
 16         if result==0:
 17             lock.acquire()
 18             print ip,u':',port,u'端口已占用'
 19             lock.release()
 20     except:
 21         print u'端口扫描异常'
 22 
 23 def ip_scan(ip):
 24     """
 25     输入IP,扫描IP的0-65534端口情况
 26     """
 27     try:
 28         print u'开始扫描 %s' % ip
 29         start_time=time.time()
 30         for i in range(0,65534):
 31             thread.start_new_thread(socket_port,(ip, int(i)))
 32         print u'扫描端口完成,总共用时:%.2f' %(time.time()-start_time)
 33 #       raw_input("Press Enter to Exit")
 34     except:
 35         print u'扫描ip出错'
 36 
 37 if __name__=='__main__':
 38     url=raw_input('Input the ip you want to scan: ')
 39     lock=thread.allocate_lock()
 40     ip_scan(url)
复制代码

该程序执行结果如下:

复制代码
# python scan_port.py
Input the ip you want to scan: 20.0.208.112
开始扫描 20.0.208.112
20.0.208.112 : 111 端口已占用
20.0.208.112 : 22 端口已占用
20.0.208.112 : 8000 端口已占用
20.0.208.112 : 15996 端口已占用
20.0.208.112 : 41734 端口已占用
扫描端口完成,总共用时:9.38
复制代码

关于linux系统端口查看和占用的解决方案

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 一直以来,在处理linux服务器的过程中,经常会遇到一个问题,有时候kill掉进程之后,端口被占用,新的进...
  • ycg514230
  • ycg514230
  • 2014-11-28 02:44:11
  • 4278

linux下常用命令查看端口占用

在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 netstat命令各个参数说明如下:   -t : 指明显示...
  • ws379374000
  • ws379374000
  • 2017-07-03 16:54:50
  • 10440

\windows查看端口占用情况方法

  • 2010年09月26日 15:52
  • 2KB
  • 下载

查看Linux系统端口占用情况

在使用Linux系统的过程中,有时候会遇到端口被占用而导致服务无法启动的情况。比如HTTP使用80端口,但当启动Apache时,却发现此端口正在使用。 这种情况大多数是由于软件冲突、或者默认端口设置不...
  • yangcs2009
  • yangcs2009
  • 2016-03-09 16:52:51
  • 1326

Linux下查看网络端口占用情况

命令: netstat -tupln 或者 netstat -pln 参数解释:-t : 指明显示TCP端口-u : 指明显示UDP端口-p : 显示进程ID(PID)和程序名称,每一个套接字/端口都...
  • YanJiangbo
  • YanJiangbo
  • 2011-06-10 15:03:00
  • 14255

查看linux中某个端口(port)是否被占用

1.使用lsof lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80 更多内容,可以点击这里:http://www.fin...
  • hsd2012
  • hsd2012
  • 2016-05-12 16:06:41
  • 231605

如何查看操作系统端口占用情况及知识点引申

原创作品,出自 “深蓝的blog” 博客,深蓝的blog: 查看操作系统端口占用情况 1、win操作系统下 开始-运行,输入CMD打开命令行界面,输入命令如下: 语法:netstat -ano | f...
  • huangyanlong
  • huangyanlong
  • 2015-07-25 12:57:03
  • 2260

linux使用nmap查看端口

在讨论这个问题前,我们先来了解一下物理端口、逻辑端口、端口号等计算机概念。   端口相关的概念:   在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理...
  • zflovecf
  • zflovecf
  • 2018-02-06 10:20:51
  • 108

TcpView

  • 2008年05月05日 12:48
  • 157KB
  • 下载

如何在CMD中查看端口占用情况?

C:\>netstat -aon|findstr "9050"   协议    本地地址                     外部地址               状态             ...
  • Zdltvxq
  • Zdltvxq
  • 2013-05-27 11:49:14
  • 2338
收藏助手
不良信息举报
您举报文章:linux查看端口占用情况
举报原因:
原因补充:

(最多只允许输入30个字)