下面我将这些命令分为几大类,并详细解释它们在 Windows 和 Linux/macOS 下的使用方法。

核心诊断命令(最常用)
这类命令是排查网络问题的“瑞士军刀”。
ping - 测试网络连通性
ping 命令通过发送 ICMP 回显请求包到目标主机,并接收回显应答,来测试两台主机之间的网络是否可达,以及延迟(响应时间)。
-
Windows 语法:
ping [目标IP地址或域名] # ping www.baidu.com # ping 8.8.8.8 # 持续 ping,直到按 Ctrl+C 停止 ping -t [目标] # 发指定次数的包后停止 (发4个包) ping -n 4 [目标]
-
Linux/macOS 语法:
(图片来源网络,侵删)ping [目标IP地址或域名] # ping www.baidu.com # ping 8.8.8.8 # 持续 ping ping [目标] # 发指定次数的包后停止 (发4个包) ping -c 4 [目标]
解读结果:
Reply from ...: 成功收到响应,网络连通。Request timed out: 请求超时,可能是目标主机未开启 ICMP 协议、网络拥堵或中间有设备阻止了 ICMP 包。Destination host unreachable: 目标主机不可达,通常是本地网关配置错误或目标网络不存在。
traceroute (Linux/macOS) / tracert (Windows) - 追踪网络路径
这两个命令的功能完全相同,用于显示数据包从源主机到目标主机所经过的每一跳路由器的 IP 地址,这对于定位网络延迟或中断发生在哪一跳非常有用。
-
Windows 语法 (
tracert):tracert [目标IP地址或域名] # tracert www.google.com
-
Linux/macOS 语法 (
traceroute):
(图片来源网络,侵删)traceroute [目标IP地址或域名] # traceroute www.google.com
注意:在现代 Linux 系统上,
traceroute命令可能需要单独安装(例如在 Ubuntu 上使用sudo apt install traceroute)。traceroute默认使用 UDP 包,而 Windows 的tracert使用 ICMP 包。
解读结果: 你会看到一个列表,每一行代表一跳路由器,如果某一显示为 ,则意味着该路由器没有响应(可能配置了安全策略阻止了探测包)。
网络信息查看命令
这类命令用于查看本机或远程主机的网络配置信息。
ipconfig (Windows) / ifconfig / ip (Linux/macOS) - 查看网络接口信息
-
Windows 语法 (
ipconfig):# 显示所有网络接口的简要信息 ipconfig # 显示所有网络接口的详细信息,包括 IP、子网掩码、默认网关、DNS ipconfig /all # 刷新并重新获取 DHCP 分配的 IP 地址 ipconfig /renew
-
Linux/macOS 语法:
-
ifconfig(较传统):# 显示所有网络接口信息 ifconfig # 显示特定接口信息 (eth0) ifconfig eth0
-
ip(现代推荐):# 显示所有网络接口的详细信息 ip addr show # 显示路由表 ip route show
-
nslookup / dig - DNS 查询
这两个命令用于查询域名对应的 IP 地址(正向解析)或 IP 地址对应的域名(反向解析),是排查 DNS 问题的重要工具。
-
nslookup(通用):# 进入交互模式 nslookup # 在交互模式下查询域名 > www.baidu.com # 直接查询域名 nslookup www.baidu.com # 查询特定 DNS 服务器上的记录 nslookup www.baidu.com 8.8.8.8
-
dig(Linux/macOS,功能更强大):# 查询域名信息 dig www.baidu.com # 只查询 A 记录 dig www.baidu.com A # 从特定 DNS 服务器查询 dig @8.8.8.8 www.baidu.com
网络连接与状态查看命令
这类命令用于查看和管理本机的网络连接。
netstat (通用) / ss (Linux 推荐)
-
Windows / Linux/macOS 语法 (
netstat):# 显示所有活动的 TCP 连接 netstat -an # 显示所有连接,包括 TCP, UDP, UNIX 域套接字 netstat -a # 显示进程 ID (PID) 和名称 (需要管理员/root 权限) netstat -ano # 在 Windows 中,可以用任务管理器找到 PID 对应的进程名。 # 在 Linux 中,可以用 `ps -p <PID>` 查看。
-
Linux/macOS 推荐语法 (
ss- 更快、信息更全):# 显示所有 TCP 和 UDP 连接 ss -tuln # 显示所有 TCP 连接,并显示进程 ID ss -tp
常用参数解释:
-t: TCP-u: UDP-l: 只显示监听端口-n: 以数字形式显示地址和端口,不进行 DNS 解析(速度更快)-p: 显示 PID 和程序名-a: 显示所有连接(包括监听和非监听)
远程连接与文件传输命令
这类命令用于“跳转”到其他主机或在其间传输文件。
ssh - 安全远程登录
这是在 Linux/Unix 系统之间进行远程登录和管理的标准工具,所有现代 Linux/macOS 系统都内置。
-
语法:
# 登录到远程主机 ssh [用户名]@[远程主机IP或域名] # ssh john@192.168.1.100 # 指定登录端口 (默认是 22) ssh -p 2222 [用户名]@[远程主机IP或域名]
telnet - 远程终端 (不安全,已过时)
telnet 是一个非常古老的协议,所有数据(包括密码)都是明文传输,极不安全,现在主要用于测试指定端口是否开放,而不是用于登录。
- 语法:
# 测试远程主机的某个端口是否可以连接 telnet [远程主机IP或域名] [端口号] # telnet 192.168.1.1 80 (测试 Web 服务端口) # telnet 8.8.8.8 53 (测试 DNS 服务端口)
如果能成功连接,会看到一个黑屏或光标闪烁;如果失败,则会提示 "Connection failed" 或 "Could not open connection"。
scp / sftp - 安全文件传输
-
scp(Secure Copy - 安全拷贝): 用于在本地主机和远程主机之间进行加密的文件复制。# 从远程主机复制文件到本地 scp [用户名]@[远程主机]:[远程文件路径] [本地路径] # scp john@192.168.1.100:/home/john/file.txt ./ # 从本地复制文件到远程主机 scp [本地文件路径] [用户名]@[远程主机]:[远程路径] # scp ./file.txt john@192.168.1.100:/home/john/
-
sftp(SSH File Transfer Protocol): 提供了一个交互式的命令行界面,用于上传和下载文件,功能比scp更丰富。sftp [用户名]@[远程主机IP或域名] # 连接后,会进入 sftp 提示符 sftp> get [远程文件] # 下载文件 sftp> put [本地文件] # 上传文件 sftp> ls # 列出远程目录 sftp> lcd # 切换本地目录 sftp> exit # 退出
总结表格
| 命令 | 主要用途 | Windows | Linux/macOS | 备注 |
|---|---|---|---|---|
ping |
测试网络连通性 | ping |
ping |
最基础的诊断工具。 |
tracert / traceroute |
追踪数据包路径 | tracert |
traceroute |
定位网络瓶颈或中断点。 |
ipconfig / ifconfig / ip |
查看网络接口信息 | ipconfig /all |
ip addr show / ifconfig |
查看 IP、网关、DNS 等配置。 |
nslookup / dig |
DNS 域名解析 | nslookup |
nslookup / dig |
排查 DNS 解析失败问题。 |
netstat / ss |
查看网络连接状态 | netstat -ano |
ss -tuln |
查看端口占用和连接情况。 |
ssh |
安全远程登录 | (需安装 OpenSSH) | ssh |
现代、安全的远程管理标准。 |
telnet |
测试端口连通性 | telnet |
telnet |
不安全,仅用于端口测试。 |
scp / sftp |
安全文件传输 | (需安装 OpenSSH) | scp / sftp |
加密的文件拷贝和交互式传输。 |
掌握这些命令,你就可以在命令行中自如地进行各种网络操作和故障排查了。
