一、查看网络延迟和丢包情况——ping命令

1.1 查看ping的帮助信息——【ping /?】

执行命令【ping /?】,打印帮助信息。

java 检测网络丢包率 cmd测丢包率_cmd

1.2 最基本的用法——【ping ip/域名

查看本机到目标主机的延迟和丢包率。

其中字段target name只能是主机域名或IP地址。

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_02

 上面是Ping域名,可以得到目标主机的ip地址;下面试试ping通这个ip地址。

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_03

这个命令经常用来检查网络状态是否良好,从顶层来验证是否可以正常上网。 

1.3 指定次数地ping通——【ping -n x target】

设定ping的次数。默认的ping次数是4次,但如果你想修改次数,例如Ping百度搜索的服务器9次,可以用命令【ping baidu.com -n 9】。

java 检测网络丢包率 cmd测丢包率_windows_04

1.4 不限次数地ping通

如果你想要持续很多次地ping通某个主机,可以用-t参数来实现。

java 检测网络丢包率 cmd测丢包率_网络_05

在ping的过程中,如果按下快捷键ctrl+c,就会彻底停止,并进行统计。

而如果按下快捷键ctrl+break(或pause),经过短暂的停止并统计后,还会继续ping目标主机。 

1.5 指定流量地ping通——【ping -l xxxx target】

默认单次收发的流量是32个字节,如果你想要更改成更大的,可以用到参数【-l】。

但是,微软对ping的流量进行了软限制,最大只能是65500个字节。

究其原因,是因为流量太大容易导致目标主机宕机(dos攻击就是不间断地发送大数据包),或许我们用一台主机去ping目标它不会出问题,但是一旦我们用很多主机去持续不断地ping目标,它就很可能会拥塞、甚至瘫痪。

例如执行命令【ping -l 655 -t baidu.com】,不间断地对百度搜索服务器进行数据收发的网络通信。

java 检测网络丢包率 cmd测丢包率_windows_06

1.6 ping当前主机,检查TCP/IP协议

检查TCP/IP协议是否配置正常。

ping 127.0.0.1或ping localhost是用来检查TCP/IP协议的,如果正常说明网络层和传输层不存在问题。

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_07

还有一种“检查网关连接是否畅通”的场景。

先用ipconfig命令查看网关地址是多少,如下图所示我的默认网关是192.168.2.1。

java 检测网络丢包率 cmd测丢包率_dos_08

 ping网关地址,没发现任何问题。

java 检测网络丢包率 cmd测丢包率_网络_09

1.7 批量ping网段——for /l命令

例如下面的命令,就可以Ping一个网段的255个ip地址。

for /L %D in(1,1,255) do ping 10.168.1.%D

二、检测服务器的端口是否开放——telnet命令

对于windows10,如果你在执行cmd命令telnet时出现了【'telnet' 不是内部或外部命令,也不是可运行的程序】的错误,说明你没有打开这个windows功能。

搜索【启用或关闭Windows功能】,打开后,勾选Telnet客户端。

java 检测网络丢包率 cmd测丢包率_网络_10

java 检测网络丢包率 cmd测丢包率_cmd_11

再打印telnet的命令帮助信息。

java 检测网络丢包率 cmd测丢包率_网络_12

 开发人员经常用到80端口来辅助他们的工作,因此打开服务器后需要检测80端口是否正常启动。

我们没有申请过自己的服务器,那么就借助百度搜索的服务器完成测试。

执行命令【telnet baidu.com 80】。

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_13

如果进入类似下图这样全黑的界面,标题是Telnet xxx,那么说明端口就是正常的。 

 

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_14

 如果执行命令【telnet baidu.com 23】,就会发现一直处于连接或最终出现连接失败的状态,原因很明显,百度搜索服务器关闭了23端口,之所以这样是因为服务器端口越开放,开放地越多,越容易受到黑客的攻击。

java 检测网络丢包率 cmd测丢包率_windows_15

三、查询域名对应的IP地址——nslookup

例如查询baidu.com的IP地址有哪些?

C:\Users\Administrator>nslookup baidu.com
服务器:  pub1.sdns.360.cn
Address:  101.226.4.6

名称:    baidu.com
Addresses:  220.181.38.251
          220.181.38.148

四、路由查询命令——arp

4.1 打印arp命令的帮助信息

执行命令【arp /?】,打印帮助信息。

C:\Users\Administrator>arp /?

显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]

  -a            通过询问当前协议数据,显示当前 ARP 项。
                如果指定 inet_addr,则只显示指定计算机
                的 IP 地址和物理地址。如果不止一个网络
                接口使用 ARP,则显示每个 ARP 表的项。
  -g            与 -a 相同。
  -v            在详细模式下显示当前 ARP 项。所有无效项
                和环回接口上的项都将显示。
  inet_addr     指定 Internet 地址。
  -N if_addr    显示 if_addr 指定的网络接口的 ARP 项。
  -d            删除 inet_addr 指定的主机。inet_addr 可
                以是通配符 *,以删除所有主机。
  -s            添加主机并且将 Internet 地址 inet_addr
                与物理地址 eth_addr 相关联。物理地址是用
                连字符分隔的 6 个十六进制字节。该项是永久的。
  eth_addr      指定物理地址。
  if_addr       如果存在,此项指定地址转换表应修改的接口
                的 Internet 地址。如果不存在,则使用第一
                个适用的接口。
示例:
  > arp -s 157.55.85.212   00-aa-00-62-c6-09.... 添加静态项。
  > arp -a                                  .... 显示 ARP 表。

C:\Users\Administrator>

4.2  查询所有arp记录——arp -a

什么是arp记录? 

arp是地址解析协议,其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。

最基本的查询命令【arp -a】,执行后如下 

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_16

如果想要更详细的信息,包括所有无效项和环回接口上的项,可以使用命令【arp -a -v】。

C:\Users\Administrator>arp -a -v

接口: 127.0.0.1 --- 0x1
  Internet 地址         物理地址              类型
  224.0.0.22                                  静态
  224.0.0.100                                 静态
  224.0.0.251                                 静态
  238.238.238.238                             静态
  239.255.255.250                             静态

接口: 0.0.0.0 --- 0xffffffff
  Internet 地址         物理地址              类型
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.100           01-00-5e-00-00-64     静态
  238.238.238.238       01-00-5e-6e-ee-ee     静态

接口: 0.0.0.0 --- 0xffffffff
  Internet 地址         物理地址              类型
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.100           01-00-5e-00-00-64     静态
  238.238.238.238       01-00-5e-6e-ee-ee     静态

接口: 0.0.0.0 --- 0xffffffff
  Internet 地址         物理地址              类型
  192.168.2.1           00-00-00-00-00-00     无效
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.100           01-00-5e-00-00-64     静态
  238.238.238.238       01-00-5e-6e-ee-ee     静态
  255.255.255.255       ff-ff-ff-ff-ff-ff     静态

接口: 0.0.0.0 --- 0xffffffff
  Internet 地址         物理地址              类型
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.100           01-00-5e-00-00-64     静态
  238.238.238.238       01-00-5e-6e-ee-ee     静态

接口: 192.168.2.199 --- 0x11
  Internet 地址         物理地址              类型
  192.168.2.1           74-7d-24-a5-d5-07     动态
  192.168.2.129         50-eb-71-15-30-d8     动态
  192.168.2.235         a4-b1-c1-ae-18-d4     动态
  192.168.2.255         ff-ff-ff-ff-ff-ff     静态
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.100           01-00-5e-00-00-64     静态
  224.0.0.251           01-00-5e-00-00-fb     静态
  224.0.0.252           01-00-5e-00-00-fc     静态
  238.238.238.238       01-00-5e-6e-ee-ee     静态
  239.255.255.250       01-00-5e-7f-ff-fa     静态
  255.255.255.255       ff-ff-ff-ff-ff-ff     静态

接口: 0.0.0.0 --- 0xffffffff
  Internet 地址         物理地址              类型
  224.0.0.22            01-00-5e-00-00-16     静态
  224.0.0.100           01-00-5e-00-00-64     静态
  238.238.238.238       01-00-5e-6e-ee-ee     静态

4.3 添加arp记录——arp -s

添加arp记录的命令语句语法为【arp -s inet_addr eth_addr】,其中inet_addr是IP地址,而eth_addr是MAC地址。

也就是说这个命令就是用来绑定IP地址和MAC地址的,可以用来避免用户乱改IP地址时不方便管理(而如果绑定了,即便改了IP地址,也可通过MAC地址找到用户),或者IP地址冲突。

4.4 删除arp记录——arp -d

如果执行命令【arp -d】,就会删除全部记录。

但若你没有禁止网络连接,网络数据交互过程中仍然会产生新的ARP列表。

如果执行命令【arp -d inet_addr】,就会删除指定IP地址的记录。

当你网络中出了问题,可能是IP地址冲突,mac地址和ip地址映射关系混乱。

那么你可以删除arp记录,然后重新添加新的记录,网络问题就会得到解决。

五、路由追踪命令——tracert

5.1 查看tracert命令的帮助信息

执行命令【tracert /?】,查看帮助信息。

C:\Users\Administrator>tracert /?

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
               [-R] [-S srcaddr] [-4] [-6] target_name

选项:
    -d                 不将地址解析成主机名。
    -h maximum_hops    搜索目标的最大跃点数。
    -j host-list       与主机列表一起的松散源路由(仅适用于 IPv4)。
    -w timeout         等待每个回复的超时时间(以毫秒为单位)。
    -R                 跟踪往返行程路径(仅适用于 IPv6)。
    -S srcaddr         要使用的源地址(仅适用于 IPv6)。
    -4                 强制使用 IPv4。
    -6                 强制使用 IPv6。

5.2 最基本的路由跟踪命令——tracert ip/域名

例如追踪百度服务器的IP地址,需要经过哪些网关IP呢?就需要用到tracert命令。注意如果不加参数-d,则会将地址解析为主机名,所以会很慢,加上后则不转化,速度就好快很多了。

在linux系统中,对应的命令是traceroute。

C:\Users\Administrator>tracert -d 220.181.38.251

通过最多 30 个跃点跟踪到 220.181.38.251 的路由

  1     1 ms     1 ms     4 ms  172.17.64.1
  2     2 ms     4 ms     *     192.168.255.217
  3     3 ms     3 ms     3 ms  119.39.176.173
  4     3 ms     2 ms     5 ms  119.39.176.137
  5    22 ms    21 ms    22 ms  119.39.176.229
  6     *        *        *     请求超时。
  7    29 ms    33 ms    28 ms  219.158.4.158
  8     *        *        *     请求超时。
  9     *        *       31 ms  202.97.18.173
 10     *        *        *     请求超时。
 11     *        *        *     请求超时。
 12     *        *        *     请求超时。
 13     *        *        *     请求超时。
 14     *        *        *     请求超时。
 15     *        *        *     请求超时。
 16     *        *        *     请求超时。
 17    34 ms    40 ms    32 ms  220.181.38.251

跟踪完成。

5.3 设置最大跳点——tracert -h xxx target_name

如果你仅仅想要检测近端设备有没有问题,可以设置最大跳点,例如6。

5.4 设置最大等待时间——tracert -w xxx target_name

对于超过一定等待时间的路由项予以不显示,例如*号的项是没有意义的,所以完全没必要显示。

那么可以执行命令【tracert -w 5000 target_name】,就可以过滤掉那些无效项了。

六、ip地址配置命令——ipconfig

6.1 查看ipconfig的帮助信息——ipconfig /?

d:\BaiduNetdiskDownload>ipconfig /?

用法:
    ipconfig [/allcompartments] [/? | /all |
                                 /renew [adapter] | /release [adapter] |
                                 /renew6 [adapter] | /release6 [adapter] |
                                 /flushdns | /displaydns | /registerdns |
                                 /showclassid adapter |
                                 /setclassid adapter [classid] |
                                 /showclassid6 adapter |
                                 /setclassid6 adapter [classid] ]

其中
    adapter             连接名称
                       (允许使用通配符 * 和 ?,参见示例)

    选项:
       /?               显示此帮助消息
       /all             显示完整配置信息。
       /release         释放指定适配器的 IPv4 地址。
       /release6        释放指定适配器的 IPv6 地址。
       /renew           更新指定适配器的 IPv4 地址。
       /renew6          更新指定适配器的 IPv6 地址。
       /flushdns        清除 DNS 解析程序缓存。
       /registerdns     刷新所有 DHCP 租用并重新注册 DNS 名称
       /displaydns      显示 DNS 解析程序缓存的内容。
       /showclassid     显示适配器允许的所有 DHCP 类 ID。
       /setclassid      修改 DHCP 类 ID。
       /showclassid6    显示适配器允许的所有 IPv6 DHCP 类 ID。
       /setclassid6     修改 IPv6 DHCP 类 ID。


默认情况下,仅显示绑定到 TCP/IP 的每个适配器的 IP 地址、子网掩码和
默认网关。

对于 Release 和 Renew,如果未指定适配器名称,则会释放或更新所有绑定
到 TCP/IP 的适配器的 IP 地址租用。

对于 Setclassid 和 Setclassid6,如果未指定 ClassId,则会删除 ClassId。

示例:
    > ipconfig                       ... 显示信息
    > ipconfig /all                  ... 显示详细信息
    > ipconfig /renew                ... 更新所有适配器
    > ipconfig /renew EL*            ... 更新所有名称以 EL 开头
                                         的连接
    > ipconfig /release *Con*        ... 释放所有匹配的连接,
                                         例如“有线以太网连接 1”或
                                             “有线以太网连接 2”
    > ipconfig /allcompartments      ... 显示有关所有隔离舱的
                                         信息
    > ipconfig /allcompartments /all ... 显示有关所有隔离舱的
                                         详细信息

d:\BaiduNetdiskDownload>

6.2 查看所有网络适配器的IP地址

6.2.1 查看简要版本的网卡信息——ipconfig

执行命令【ipconfig】后,发现只有一个网卡被打开(实际我电脑上有两个物理网卡),IP地址为192.168.2.177。

C:\Users\Administrator>ipconfig

Windows IP 配置


以太网适配器 以太网:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 11:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 14:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 WLAN:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . : lan

无线局域网适配器 WLAN 2:

   连接特定的 DNS 后缀 . . . . . . . : lan
   本地链接 IPv6 地址. . . . . . . . : fe80::11e8:3fa6:964c:2e4%17
   IPv4 地址 . . . . . . . . . . . . : 192.168.2.199
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.2.1

以太网适配器 蓝牙网络连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

6.2.2 查看详细版本的网卡信息——ipconfig /all 

而如果我执行的是【ipconfig /all】,就会显示更加详细的信息(比如描述信息、物理地址、DHCP是否启用等)。

C:\Users\Administrator>ipconfig /all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : DESKTOP-PQ3T9SJ
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否
   DNS 后缀搜索列表  . . . . . . . . : lan

以太网适配器 以太网:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller
   物理地址. . . . . . . . . . . . . : A8-5E-45-BF-62-4D
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 本地连接* 11:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #3
   物理地址. . . . . . . . . . . . . : 92-76-9F-D9-38-1E
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 本地连接* 14:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #6
   物理地址. . . . . . . . . . . . . : 90-76-9F-D9-38-1E
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 WLAN:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . : lan
   描述. . . . . . . . . . . . . . . : Intel(R) Wireless-AC 9462
   物理地址. . . . . . . . . . . . . : 24-41-8C-3E-D0-82
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 WLAN 2:

   连接特定的 DNS 后缀 . . . . . . . : lan
   描述. . . . . . . . . . . . . . . : Realtek 8188GU Wireless LAN 802.11n USB NIC
   物理地址. . . . . . . . . . . . . : 90-76-9F-D9-38-1E
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::11e8:3fa6:964c:2e4%17(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.2.199(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2022年7月9日 22:24:14
   租约过期的时间  . . . . . . . . . : 2022年7月10日 22:24:14
   默认网关. . . . . . . . . . . . . : 192.168.2.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.2.1
   DHCPv6 IAID . . . . . . . . . . . : 227571359
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-28-15-1E-64-A8-5E-45-BF-62-4D
   DNS 服务器  . . . . . . . . . . . : 101.226.4.6
                                       114.114.114.114
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 蓝牙网络连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
   物理地址. . . . . . . . . . . . . : 24-41-8C-3E-D0-86
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

6.3 查看本地DNS缓存——ipconfig/displaydns

java 检测网络丢包率 cmd测丢包率_cmd_17

6.4 清除本地DNS缓存——ipconfig/flushdns

有时候电脑突然上不了网,或者存在某些网站打不开的情况,但别的网站又可以打开,解决办法需要清除DNS缓存,那么如何清除DNS缓存呢,最常用的方法就是使用清除DNS缓存命令来完成。

DNS缓存的意义就是给电脑一个域名到IP地址的短期记忆,这个短期记忆是有约定时间的,过了这个时间必须忘掉。那么如果服务器不按常理出牌,没过约定时间,就把自己的IP地址给换了。我们用自己缓存中的域名-IP映射关系就难以真正地访问到服务器,因此需要忘掉再重建DNS。

清理本地DNS的缓存命令是【ipconfig/flushdns】。

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_18

再执行命令【ipconfig/displaydns】 ,看看缓存还有不?竟然还有??

java 检测网络丢包率 cmd测丢包率_java 检测网络丢包率_19

 虽然减少了,但还是有缓存,我也不知道为啥,但是常规的一些http/ssl域名都已经被清除了,对于邮箱协议imap的域名还是没被清除(可能是我的网易邮箱助手还挂在后台,顽强地重建了DNS)。

6.5 释放和重新获取IP

6.5.1 释放IP地址——ipconfig /release

参数/release适用于IP地址是非静态分配的网卡。

参数/release通常和下文的renew参数结合使用。

执行命令【ipconfig /release】,就会释放网卡的当前IP地址。

6.5.2 重新获取IP地址——ipconfig /renew