linux中如何查询端口被占用的情况
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                linux中如何查询端口被占用的情况
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                今日要運用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?python2?#?-*-?coding:utf-8?-*-3?4?import?socket,?time,?thread5?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'?%?ip29?????????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原文鏈接:http://www.magedu.com/71838.html
轉載于:https://blog.51cto.com/mageedu/1929081
總結
以上是生活随笔為你收集整理的linux中如何查询端口被占用的情况的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Linux 中 7 个判断文件系统类型的
- 下一篇: 微信支付报错:统一下单和拉起支付的app
