菜鸟科技网

网络经典命令

连通性与诊断类

这类命令主要用于检查网络连接是否通畅,以及定位网络问题的根源。

网络经典命令-图1
(图片来源网络,侵删)

ping - 网络连通性“瑞士军刀”

ping 是最基础、最常用的网络命令,用于测试本地主机与另一台主机之间的网络连通性。

  • 用途:检查目标主机是否在线,并测量数据包往返的时间(延迟)。
  • 常用参数
    • -t (Linux/macOS) 或 -t (Windows): 持续不断地发送数据包,直到手动按下 Ctrl+C 中止。
    • -c <count> (Linux/macOS): 指定发送数据包的数量,ping -c 4 baidu.com
    • -n <count> (Windows): 指定发送数据包的数量,ping -n 4 baidu.com
    • -l <size> (Windows): 指定发送数据包的大小(字节)。
    • -i <ttl> (Linux/macOS): 设置数据包的生存时间。
  • 示例
    # 测试是否能访问百度,并发送4个数据包
    ping -c 4 baidu.com
  • 解读结果
    • 64 bytes from 182.61.200.7: 成功收到数据包。
    • time=15.2 ms: 往返延迟,数值越小越好。
    • Request timed out: 请求超时,可能是目标主机不在线、网络阻塞或防火墙阻止。
    • Destination Host Unreachable: 目标主机不可达,通常是路由问题。

traceroute (Linux/macOS) / tracert (Windows) - 网络路径“侦探”

traceroute/tracert 用于显示数据包从本地主机到目标主机所经过的路由节点(网关)。

  • 用途:定位网络延迟或丢包发生在哪个环节,诊断网络路径问题。
  • 工作原理:通过发送不同 TTL(生存时间)的数据包,逐跳发现路径上的路由器。
  • 常用参数
    • -n (Linux/macOS): 直接显示IP地址,不进行域名解析,速度更快。
    • -d (Windows): 不将IP地址解析为主机名。
    • -h <max_hops> (Linux/macOS): 设置最大跳数。
  • 示例
    # 查看访问谷歌的路径,不进行域名解析
    traceroute -n google.com
    # Windows
    tracert -d google.com
  • 解读结果
    • 每一行代表一个路由跳(hop)。
    • 1 192.168.1.1: 第一跳是家里的网关。
    • 2 10.0.0.1: 第二跳是运营商的某个路由器。
    • 如果某跳显示三个星号,表示该路由器响应超时或配置了不响应ICMP请求(这是很常见的情况)。
    • 如果在某一跳之后所有请求都超时,说明问题可能出在该路由器或其后的网络。

telnet - 端口“探针”

telnet 是一个古老的协议,但现在它更多地被用作一个测试工具,用于检查指定IP和端口是否开放。

  • 用途:测试远程主机的某个TCP端口是否可以访问。
  • 示例
    # 测试百度服务器的80端口(HTTP服务)是否开放
    telnet baidu.com 80
  • 解读结果
    • 如果连接成功,会进入一个黑屏界面,表示端口开放。
    • 如果提示 Connecting To baidu.com...Could not open connection to the host, on port 80: Connect failed,则表示端口关闭或被防火墙阻止。

信息查询类

这类命令用于获取网络、主机和服务的相关信息。

网络经典命令-图2
(图片来源网络,侵删)

nslookup / dig - 域名系统“查询器”

这两个命令用于查询DNS(域名系统)信息,将域名解析为IP地址,或反向查询IP对应的域名。

  • 用途:DNS故障排查、域名解析、查询域名记录。
  • nslookup (更通用):
    # 查询baidu.com的A记录(IPv4地址)
    nslookup baidu.com
    # 进入交互模式,查询其他域名
    nslookup
    > www.github.com
  • dig (更强大、信息更详细):
    # 查询baidu.com的A记录
    dig baidu.com
    # 查询MX(邮件交换)记录
    dig baidu.com MX
  • 解读结果
    • SERVER: 使用的DNS服务器地址。
    • ANSWER SECTION: DNS查询的答案,如域名对应的IP地址。

netstat / ss - 网络连接“快照”

netstat 是一个经典的查看网络连接状态的命令,而 ssnetstat 的现代替代品,功能更强、速度更快。

  • 用途:查看当前系统的网络连接、路由表、接口统计信息等。
  • 常用参数
    • -t: 显示TCP连接。
    • -u: 显示UDP连接。
    • -n: 以数字形式显示地址和端口,不进行域名解析。
    • -l: 只显示监听(Listen)状态的端口。
    • -p: 显示进程ID和进程名(需要root权限)。
    • -a: 显示所有连接。
  • 示例
    # 查看所有监听的TCP端口
    netstat -tlnp
    # 查看所有建立的TCP连接
    netstat -ant
    # 使用更快的ss命令
    ss -tlnp
  • 解读结果
    • Proto: 协议类型 (TCP/UDP)。
    • Local Address: 本地地址和端口。
    • Foreign Address: 远程地址和端口。
    • State: 连接状态 (如 LISTEN, ESTABLISHED, TIME_WAIT)。
    • PID/Program name: 进程ID和程序名。

网络配置与监控类

这类命令用于配置网络接口和监控实时网络流量。

ip / ifconfig - 网络接口“配置器”

ifconfig 是传统的网络配置工具,而 ip 是现代Linux系统中的推荐工具,功能更全面。

网络经典命令-图3
(图片来源网络,侵删)
  • 用途:查看、启用、禁用网络接口,配置IP地址、子网掩码、网关等。
  • ifconfig (已逐渐被淘汰,但仍常见):
    # 查看所有网络接口信息
    ifconfig
    # 启用或禁用eth0接口
    ifconfig eth0 up
    ifconfig eth0 down
  • ip (现代Linux):
    # 查看所有网络接口信息
    ip addr show
    # 查看路由表
    ip route show
    # 临时为eth0配置IP地址
    ip addr add 192.168.1.100/24 dev eth0
  • 解读结果
    • inet: IPv4地址。
    • netmask: 子网掩码。
    • broadcast: 广播地址。

nettop (macOS) / nethogs (Linux) / Resource Monitor (Windows) - 实时流量“监控器”

这些工具可以实时显示哪个进程正在消耗网络带宽。

  • 用途:排查哪个程序在后台“偷跑”流量,导致网速变慢。
  • 示例
    # Linux上安装nethogs后使用
    sudo nethogs
    # macOS上使用
    sudo nettop
    # Windows上打开任务管理器 -> 性能 -> 网络
  • 解读结果:会列出每个进程及其当前的上传/下载速度。

高级与安全类

curl / wget - 网络数据“传输器”

这两个是强大的命令行工具,用于从Web服务器下载文件或与Web服务交互。

  • 用途:下载文件、测试API接口、获取网页内容、模拟HTTP请求。
  • curl (功能极其丰富):
    # 下载网页内容并显示在终端
    curl http://example.com
    # 下载文件并保存为output.html
    curl -o output.html http://example.com
    # 发送一个带有自定义Header的POST请求
    curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://api.example.com/data
  • wget (专注于下载):
    # 下载单个文件
    wget http://example.com/file.zip
    # 递归下载整个网站(谨慎使用)
    wget -r http://example.com

arp - 地址解析“查看器”

arp 用于查看和操作本地ARP(地址解析协议)缓存表。

  • 用途:排查IP地址与MAC地址(物理地址)的映射问题,检测ARP欺骗(网络嗅探)。
  • 示例
    # 查看本机的ARP缓存表
    arp -a
  • 解读结果
    • Interface: 网络接口。
    • Internet Address: IP地址。
    • Physical Address: 对应的MAC地址。
    • Type: 动态(Dynamic)或静态(Static)。

总结表格

命令 主要用途 平台 常用场景
ping 测试网络连通性、延迟 All 确认网站是否能访问,检查网络是否通。
traceroute/tracert 跟踪数据包路径,定位问题节点 All 网络卡顿、丢包时,看问题出在哪一跳。
nslookup/dig DNS域名解析查询 All 域名无法访问时,检查DNS解析是否正常。
netstat/ss 查看网络连接、端口状态 All 查看哪个端口在监听,哪个程序在联网。
ip/ifconfig 配置和查看网络接口 Linux/Unix 查看本机IP地址,临时修改IP。
curl/wget 下载文件、与Web交互 All 下载软件、测试API接口。
telnet 测试TCP端口是否开放 All 检查服务(如HTTP, SSH)是否正常运行。
nethogs/nettop 按进程监控实时流量 Linux/macOS 找出哪个程序占用了大量网速。
arp 查看和管理ARP缓存 All 排查局域网内IP与MAC地址的映射问题。

掌握这些经典命令,并能将它们组合使用(先用 ping,再用 traceroute,最后用 netstat 查看本地端口),就能高效地解决绝大多数常见的网络问题。

分享:
扫描分享到社交APP
上一篇
下一篇