大概整理了下 macOS、Linux 和 Windows 三个平台用于测试网络连通性的几个命令,不过并未深入。

网络连接

ping

ping 是最常用的网络连通性测试命令,主要原理是通过 ICMP 协议向目标主机发送一个请求回显的数据包,得到响应时会按时间和成功响应的次数计算丢包率和时延。

# 不间断 ping(仅 Windows,Linux 默认)
ping 10.1.1.1 -t
# 指定次数
ping 192.168.1.1 -c 42 # Linux
ping 192.168.1.1 -n 42 # Windows
# 将地址解析为计算机名(不一定有用)
ping 10.1.1.1 -a

端口开放

telnet

tlenet 是基于 TELNEt 协议的一种远程登陆工具,同时也是 TCP/IP 协议中的一员,虽然现在很少使用 telnet 命令进行连接(明文发送,安全性欠佳),但在 Windows 上用于检查端口开发仍是一把好手。

# 测试指定端口是否正常
telnet 10.1.1.1 80
# Linux 支持测试完后直接退出
echo "" | telnet 10.1.1.1 80

nc

nc 全称 netcat,号称网络网络工具中的“瑞士军刀”,可以用于文件、文本传输,远程 Shell等等,不过这里仅用于端口扫描。

# v 详细信息,z 表示仅进行端口扫描;
nc -vz 10.1.1.1 80

路由追踪

路由追踪命令在 Windows 称为为 tracert,Linux 称为为 tracepath,而在 macOS 中是 traceroute

tracert

# Windows
tracert www.google.com

tracepath

# Linux
tracepath www.google.com

taceroute

# macOS
taceroute www.google.com