❶ 如何查看端口被哪个程序使用 linux
1)使用lsof命令
lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
lsof -i :port_number |grep "(LISTEN)"
-i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否 有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep "(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。
如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
2)使用netstat 命令
大家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an 的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者 一下吧。
执行man netstat命令,你会发现netstat 提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然 是进程id了,process_name是进程的命令,中间以'/'号分隔。
和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。
下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'
在这里使用awk来匹配第4个字段的模式是为了避免误判。
❷ 如何在windows中查看,端口被什么应用程序占用
运行CMD输入netstat -an ,查看系统开放的端口,记下相应的PID,启动任务管理器,点服务,通过PID查看是什么程序占用了相关端口
❸ windows下查看端口是哪个程序使用
C:\netstat -aon|findstr 8080
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
端口被进程号为2448的进程占用,继续执行下面命令:
C:\tasklist|findstr 2448
thread.exe 2016 Console 0 16,064 K
很清楚,thread占用了你的端口,Kill it
命令:taskkill -F -PID 2448
如果第二步查不到,那就开任务管理器,进程---查看---选择列---pid(进程位标识符)打个勾就可以了
看哪个进程是2448,然后杀之即可。
❹ windows下查看某个端口被哪个程序占用的方法
假如我们需要确定谁占用了我们的9050端口
1、Windows平台 在windows命令行窗口下执行:
1.查看所有的端口占用情况
C:\>netstat -ano
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 3236
TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:7438 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:8015 0.0.0.0:0 LISTENING 1456
TCP 192.168.3.230:139 0.0.0.0:0 LISTENING 4
TCP 192.168.3.230:1957 220.181.31.225:443 ESTABLISHED 3068
TCP 192.168.3.230:2020 183.62.96.189:1522 ESTABLISHED 1456
TCP 192.168.3.230:2927 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2929 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2930 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2931 117.79.91.18:80 ESTABLISHED 4732
2.查看指定端口的占用情况 C:\>netstat -aon|findstr "9050"
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016
P: 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)3.查看PID对应的进程 C:\>tasklist|findstr "2016"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================
tor.exe 2016 Console 0 16,064 K
P:很清楚吧,tor占用了你的端口。
❺ 如何查看本机打开的端口是被哪个程序使用的
文本Tag: 产品 在上网的过程中,我们的计算机难免会受到木马的入侵,一般的木马杀毒软件可以查出来,但比较新型或少见的就有可能被漏掉,因为一般的木马都会在计算机上打开某一个端口等待别人控制,所以通常的做发都是去分析端口来看是否有异常的程序,一般windows提供的netstat命令只能列出被打开的端口,所以如果要看是哪个程序占用了端口,有时候还不得不借助于第三方软件,如ActivePort或Fport等,但这些软件均需要安装才可以使用,较为麻烦。
其实在XP与Windows2003下,netstat 已经新增了一个-b的开关,用来指定同时列出端口所对应的程序。对我们分析是否中了木马或有异常的程序非常有用。只需要输入
netstat -anb
就可以实现fport或ActivePort的功能了,马上试试吧
❻ 怎么查电脑端口由那个程序使用
1.Windows本身自带的netstat命令
关于netstat命令,我们先来看看windows帮助文件中的介绍:
Netstat
显示协议统计和当前的 TCP/IP 网络连接。该命令只有在安装了 TCP/IP 协议后才可以使用。
netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
参数
-a -显示所有连接和侦听端口。服务器连接通常不显示。
-e -显示以太网统计。该参数可以与 -s 选项结合使用。
-n -以数字格式显示地址和端口号(而不是尝试查找名称)。
-s -显示每个协议的统计。默认情况下,显示 TCP、UDP、ICMP 和 IP 的统计。-p 选项可以用来指定默认的子集。
-p protocol -显示由 protocol 指定的协议的连接;protocol 可以是 tcp 或 udp。如果与 -s 选项一同使用显示每个协议的统计,protocol 可以是 tcp、udp、icmp 或 ip。
-r -显示路由表的内容。
interval
重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。
好了,看完这些帮助文件,我们应该明白netstat命令的使用方法了。现在就让我们现学现用,用这个命令看一下自己的机器开放的端口。进入到命令行下,使用netstat命令的a和n两个参数:
C:\>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7626 0.0.0.0:0 LISTENING
UDP 0.0.0.0:445 0.0.0.0:0
UDP 0.0.0.0:1046 0.0.0.0:0
UDP 0.0.0.0:1047 0.0.0.0:0
解释一下,Active Connections是指当前本机活动连接,Proto是指连接使用的协议名称,Local Address是本地计算机的 IP 地址和连接正在使用的端口号,Foreign Address是连接该端口的远程计算机的 IP 地址和端口号,State则是表明TCP 连接的状态,你可以看到后面三行的监听端口是UDP协议的,所以没有State表示的状态。看!我的机器的7626端口已经开放,正在监听等待连接,像这样的情况极有可能是已经感染了冰河!急忙断开网络,用杀毒软件查杀病毒是正确的做法。
2.工作在windows2000下的命令行工具fport
使用windows2000的朋友要比使用windows9X的幸运一些,因为可以使用fport这个程序来显示本机开放端口与进程的对应关系。
Fport是FoundStone出品的一个用来列出系统中所有打开的TCP/IP和UDP端口,以及它们对应应用程序的完整路径、PID标识、进程名称等信息的软件。在命令行下使用,请看例子:
D:\>fport.exe
FPort v1.33 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone, Inc.
http://www.foundstone.com
Pid Process Port Proto Path
748 tcpsvcs -> 7 TCP C:\WINNT\System32\ tcpsvcs.exe
748 tcpsvcs -> 9 TCP C:\WINNT\System32\tcpsvcs.exe
748 tcpsvcs -> 19 TCP C:\WINNT\System32\tcpsvcs.exe
416 svchost -> 135 TCP C:\WINNT\system32\svchost.exe
是不是一目了然了。这下,各个端口究竟是什么程序打开的就都在你眼皮底下了。如果发现有某个可疑程序打开了某个可疑端口,可千万不要大意哦,也许那就是一只狡猾的木马!
Fport的最新版本是2.0。在很多网站都提供下载,但是为了安全起见,当然最好还是到它的老家去下:点击下载
3.与Fport功能类似的图形化界面工具Active Ports
Active Ports为SmartLine出品,你可以用来监视电脑所有打开的TCP/IP/UDP端口,不但可以将你所有的端口显示出来,还显示所有端口所对应的程序所在的路径,本地IP和远端IP(试图连接你的电脑IP)是否正在活动。
更棒的是,它还提供了一个关闭端口的功能,在你用它发现木马开放的端口时,可以立即将端口关闭。这个软件工作在Windows NT/2000/XP平台下。你可以在http://www.smartline.ru/software/aports.zip得到它。
❼ 如何查看哪个程序在使用80端口
开始---->运行---->cmd,或者是window+R组合键,调出命令窗口
如何查看某个端口被谁占用
输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。
如何查看某个端口被谁占用
查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720
如何查看某个端口被谁占用
继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe
如何查看某个端口被谁占用
或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:
如何查看某个端口被谁占用
则我们点击查看--->选择列,将PID(进程标示符)前面的勾打上,点击确定。
如何查看某个端口被谁占用
这样我们就看到了PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchost.exe,描述是,Windows的主进程,与上面命令查看的完全一致。
如何查看某个端口被谁占用
结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe。
如何查看某个端口被谁占用
❽ 用系统自带的端口查找,怎样看哪个端口对应哪个程序
对应:你机子的端口号
对方机子IP且是80端口(你打开的IE)
处于等待状态(以找到,等待对方的回应)
没有程序对应哪个端口,这些都是根据服务,系统默认的1024以下的都是系统的,还不明白,直接找我跟你说
❾ 如何通过dos命令查找某个端口正在被哪个的程序使用啊
还有一个最好的办法,是我看别人用的 给你个批处理,你把下面保存为 1.bat 然后运行 1.bat@echo offcolor 1fTitle XP端口-进程查询 setlocal enabledelayedexpansion echo ╔- -╗ echo 本机开放的端口及使用该端口的进程 echo ╚- -╝echo ---echo 端口号 进程名称 ECHO TCP协议: ::利用netstat命令找出使用TCP协议通信的端口,并将结果分割; ::将第二个参数(IP加端口)传给%%i,第五个参数(PID号)传给%%j; for /F "usebackq skip=4 tokens=2,5" %%i in (`"netstat -ano -p TCP"`) do ( call :Assoc %%i TCP %%j echo !TCP_Port! !TCP_Proc_Name!)ECHO UDP协议: for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p UDP"`) do ( call :Assoc %%i UDP %%j echo !UDP_Port! !UDP_Proc_Name!)echo 按任意键退出pause>nul:Assoc::对%1(第一个参数)进行分割,将第二个参数传给%%e。在本程序中,%1即为上面的%%i(形式为:IP:端口号) for /F "tokens=2 delims=:" %%e in ("%1") do ( set %2_Port=%%e):: 查询PID等于%3(第三个参数)的进程,并将结果传给变量?_Proc_Name,?代表UDP或者TCP; for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do (
❿ 查看端口被哪个程序占用
2010-08-31 14:41
如何查看端口是否被占用,及被哪个程序占用
开始--运行--cmd 进入命令提示符 输入netstat -ano
,但我是一年前就这知道这个命令是用来查看端口的占用情况,但不知道大家是不是真正的能用好它,直到今天才认真的学习一下用来好好地给自己服务。
可以先查看后面的netstat的帮助内容。主要是几个参数的解释。
例子,比如现在启动apache启动不起来,或者启动了也访问不了页面,这是假的启动,于是需要查看80端口的占用情况,当然有时候我们是不这做的,因为我们知道一些常用的程序,如迅雷,QQ的音乐,SKYPE这些软件都喜欢干这种好事。至于他们为什么要干这样的好事我就不得而知了。直接关闭掉就能启动apache了。
但如果遇到不知道哪个程序占用时,我们有如下方式。
netstat -ano
这样就显示类似出了如下的一个结果:
Proto Local Address Foreign Address State
PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
2920
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
1356
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
1928
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
4
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
1496
TCP 0.0.0.0:1027 0.0.0.0:0 LISTENING
776
从上面的参数中a是表示所有的连接,n是以数字的形式显示端口,pid是进程标志,三者都缺一不可。一般来说我们用这个命令就可以清淅看到上面的80端口是被pid2920的占用了。
但也可以用如下的命令进一步查找80端口。
netstat -ano|findstr “80″,这样就不会显示这么多结果,利于快速查找。
但不管什么方式有了pid后,我们就进任务管理器看谁的pid是2920,
可以继续执行下面的这个命令:
tasklist|findstr “2920″ 2920为PID.
当时也可以直接打开任务管理器查看。
上面写有些啰嗦,就是希望写清楚一点,不要像我一样只知道个netstat一年多了,还不知道具体如何用。
-a
显示所有连接和监听端口。
-b 显示包含于创建每个连接或监听端口的
可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下
包含于创建连接或监听端口的组件序列
被显示。这种情况下,可执行组件名
在底部的 []
中,顶部是其调用的组件,
等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限
可能失败。
-e 显示以太网统计信息。此选项可以与
-s
选项组合使用。
-n 以数字形式显示地址和端口号。
-o
显示与每个连接相关的所属进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是
下列协议之一: TCP、UDP、TCPv6 或 UDPv6。
如果与 -s
选项一起使用以显示按协议统计信息,proto 可以是下列协议
之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r
显示路由表。
-s 显示按协议统计信息。默认地,显示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p
选项用于指定默认情况的子集。
-v 与 -b 选项一起使用时将显示包含于
为所有可执行组件创建连接或监听端口的
组件。
interval
重新显示选定统计信息,每次显示之间
暂停时间间隔(以秒计)。按 CTRL+C
停止重新
显示统计信息。如果省略,netstat 显示当前
配置信息(只显示一次)