在学习tcp/ip的时候,经常遇到一些关于跟端口有关的东西,在写网络上的一些东西,有时用的一些端口被提示:端口已被占用,啊啊啊,挺郁闷的
然后就想着将它搞明白,
1.它到底是被那些程序占用的啊??
2.到底如何查看那些有关端口的东西呢??
一:
window下的基本上都是一样的,不管win8,win10,win7,vsta等等,都有dos
1.首先进入自己的dos界面,并输入netstat -n
我们可以看到:
proto是表示协议,协议有两种(tcp,udp),我们上图用到的主要是tcp
Local Address:表示的是本机的IP地址(可以通过命令ipconfig来查看),冒号后面跟的是所使用的端口号
Foreign Address:表示的是连接到外面所用服务器的IP地址,以及服务器的端口
State:表示一些具体的状态,如:LAST_ACK等待所用的分组死掉
2.确认所要查询的端口号,输入命令:netstat -aon | findstr 1044
最后面的数字就是就是当前程序或者服务的pid
3.输入命令:tasklist|findstr 2612 (查看pid所对应的进程或服务)
由上面可以看出当前正在运行的程序为:TsService.exe
4.通过任务管理器查看进程号为2612的程序
可以知道确实有pid为2612,且程序为TsService.exe的程序占用着1044的端口号
5.如果我们想用到这个端口,
1.可以点击结束进程,杀死进程之后就可以使用这个端口号了。
2.继续在dos界面输入命令:taskkill /f /pid 2612
也就是说TsService.exe程序已经被杀死了
二:
比较简单的一种:用Telnet远程登录,查看相应的端口有没有被占用
Telnet IP地址(本机) 端口号
只有是本机地址,才能查看本机中的端口
比如我们在dos下输入:telnet 192.168.1.102 80
我们可以看到上面显示端口连接失败,所以这个端口是占用着的。
我们要清楚的是如果端口没有被占用,那么会弹出另外一个窗口,表明这个端口没有被占用,可以用
当然,如果开始显示telnet不是内部或外部命令,那么这时候我们需要简单更改一下配置:
进入控制面板---程序与功能---打开或关闭window功能---添加telnet组件---确认