
查看端口的方法
1、命令方式
下面以windows xp为例看看新安装的系统都开了那些端口,也就是说都预留了那些门,不借助任何工具来查看端口的命令是netstat,方法如下:
a、在“开始”的“运行”处键入cmd,回车
b、在dos命令界面,键入netstat -na,显示的就是打开的服务端口,其中proto
代表协议,可以看出有tcp和udp两种协议。local address代表本机地址,该地址冒号后的数字就是开放的端口号。foreign address代表远程地址,如果和其它机器正在通信,显示的就是对方的地址,state代表状态,显示的listening表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开了,但此时还没有人进来。以第一行为例看看它的意思。
tcp 0000:135 0000:0 listening
这一行的意思是本机的135端口正在等待连接。注意:只有tcp协议的服务端口才能处于listening状态。
用netstat命令查看端口状态
2、用tcpview工具
为了更好的分析端口,最好用tcpview这个软件,该软件很小只有93kb,而且是个绿色软件,不用安装。
第一次运行显示时字体有些小,在“options”->“font”中将字号调大即可。tcpview显示的数据是动态的。图3中local address显示的就是本机开放的哪个端口(:号后面的数字),tcpview可以看出哪个端口是由哪个程序发起的。从图3可以看出445、139、1025、135、5000等端口是开放的,445、139等端口都是system发起的,135等都是svchost发起的。
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或者 baidu一下吧。
执行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个字段的模式是为了避免误判。
(更新)您要看到PID对应的是哪个程序的端口,只需要在任务管理器中,选择查看\列,在”列”选项卡中,把PID号勾上,就可以在任务管理器中看到进程的PID号了希望对您有用
在CMD里面输入netstat -ano
可以找到端口和应用程序对应的PID号
再打开任务管理器,选到进程,选择查看\列,把PID号钩选,就可以看到响应进程的PID号了 ``再去对比就行了
希望对你有帮助
可能是命令没有输入正确哦~~`
注意netstat 跟-ano之间有一个空格哦~`
是netstat -ano
另外:不知道您是什么系统,怎么会出现英文的解释
(!!参数分开打也可以,比如netstat -o就会显示出进程ID)
对应的中文解释是:
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-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 停止重新
显示统计信息。如果>>
以上就是关于如何查看计算机的端口全部的内容,包括:如何查看计算机的端口、linux 查看端口被哪个程序占用、如何查看某应用程序端口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)