在Windows系统下,很多时候都需要确认某一个端口是否被侦听或被打开(服务占用),就需要验证手段进行证明,因此本文主要讲述Windows系统下常用的一下端口验证手段;

1、telnet


大部分人员都了解telnet功能,telnet使用TCP 23端口进行连接某个端口,在Windows系统下需要打开服务才能使用;

C:\Users\Administrator>telnet
'telnet' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

1.1 telnet服务开启方法

打开路径:[控制面板]-[程序和功能]-[启动或关闭Windows功能]-[telnet客户端]
在这里插入图片描述

1.2 端口连通性验证

打开telnet功能后,就可以使用CMD或powershell进行端口连通性测试;

# 端口不可达
C:\Users\Administrator>telnet 127.0.0.1 80
正在连接127.0.0.1...无法打开到主机的连接。 在端口 80: 连接失败

# 端口可达,会进入空白窗口,使用q可以退出窗口,退出后自动回显http请求内容
C:\Users\Administrator>telnet 127.0.0.1 80
HTTP/1.1 400 Bad Request
Date: Tue, 10 May 2022 13:38:36 GMT
Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02
Last-Modified: Tue, 03 Sep 2019 07:13:40 GMT
ETag: "8ac-591a0d3eef100"
Accept-Ranges: bytes
Content-Length: 2220
Connection: close
Content-Type: text/html

2、tcping


tcping类似于ping操作,使用方法基本同ping命令一样,默认的Windows系统不支持此命令,需要在外网进行程序下载,将配置文件存放到对应路径下方可使用;

2.1 tcping下载与安装

下面为程序下载链接:

文件下载完成后,将其存放在C:\WINDOWS\System32\目录下面即可;tcping详细下载说明(点击跳转)
在这里插入图片描述

2.2 端口连通性验证

Windows下默认的PATH路径包含system32,因此在tcping文件存放后可以直接通过CMD进行使用;

# 查看系统环境变量
C:\Users\Administrator>PATH
PATH=... ...C:\Windows\system32;... ...

# 端口不可达
C:\Users\Administrator>tcping 127.0.0.1 81

Probing 127.0.0.1:81/tcp - No response - time=2015.188ms
Probing 127.0.0.1:81/tcp - No response - time=2006.437ms
Probing 127.0.0.1:81/tcp - No response - time=2006.205ms
Probing 127.0.0.1:81/tcp - No response - time=2008.949ms

Ping statistics for 127.0.0.1:81
     4 probes sent.
     0 successful, 4 failed.  (100.00% fail)
Was unable to connect, cannot provide trip statistics.

# 端口可达
C:\Users\Administrator>tcping 127.0.0.1 80

Probing 127.0.0.1:80/tcp - Port is open - time=1.737ms
Probing 127.0.0.1:80/tcp - Port is open - time=0.416ms
Probing 127.0.0.1:80/tcp - Port is open - time=0.570ms
Probing 127.0.0.1:80/tcp - Port is open - time=0.308ms

Ping statistics for 127.0.0.1:80
     4 probes sent.
     4 successful, 0 failed.  (0.00% fail)
Approximate trip times in milli-seconds:
     Minimum = 0.308ms, Maximum = 1.737ms, Average = 0.758ms

3、netstat -ano | findstr


findstr是Window系统自带的一个命令,用于查找某路径下指定的一个或多个文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名称。其用途和用法类似Linux系统下的grep命令;

3.1 findstr使用语法

C:\Users\Administrator>findstr /?
在文件中寻找字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         在一行的开始配对模式。
  /E         在一行的结尾配对模式。
  /L         按字使用搜索字符串。
  /R         将搜索字符串作为一般表达式使用。
  /S         在当前目录和所有子目录中搜索匹配文件。
  /I         指定搜索不分大小写。
  /X         打印完全匹配的行。
  /V         只打印不包含匹配的行。
  /N         在匹配的每行前打印行数。
  /M         如果文件含有匹配项,只打印其文件名。
  /O         在每个匹配行前打印字符偏移量。
  /P         忽略有不可打印字符的文件。
  /OFF[LINE] 不跳过带有脱机属性集的文件。
  /A:attr    指定有十六进位数字的颜色属性。请见 "color /?"
  /F:file    从指定文件读文件列表 (/ 代表控制台)/C:string  使用指定字符串作为文字搜索字符串。
  /G:file    从指定的文件获得搜索字符串。 (/ 代表控制台)/D:dir     查找以分号为分隔符的目录列表
  strings    要查找的文字。
  [drive:][path]filename
             指定要查找的文件。

除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello""there"'FINDSTR /C:"hello there" x.y' 文件 x.y  寻找
"hello there"。

一般表达式的快速参考:
  .        通配符: 任何字符
  *        重复: 以前字符或类出现零或零以上次数
  ^        行位置: 行的开始
  $        行位置: 行的终点
  [class]  字符类: 任何在字符集中的字符
  [^class] 补字符类: 任何不在字符集中的字符
  [x-y]    范围: 在指定范围内的任何字符
  \x       Escape: 元字符 x 的文字用法
  \<xyz    字位置: 字的开始
  xyz\>    字位置: 字的结束

有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。

3.2 端口连通性验证

# 端口不可达
C:\Users\Administrator>netstat -ano | findstr 81

# 端口可达
C:\Users\Administrator>netstat -ano | findstr 80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       18268
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐