菜鸟科技网

网管命令大全,哪些命令最常用?

基础网络连通性测试

这些是网络管理员最常用、最先使用的命令,用于判断网络是否可达、是否存在延迟或丢包。

网管命令大全,哪些命令最常用?-图1
(图片来源网络,侵删)

ping - 测试网络连通性

作用:通过发送 ICMP 回显请求包来测试与另一台主机的连接性,并计算往返时间。

  • Windows (CMD):

    # 基本用法,测试与 baidu.com 的连通性
    ping baidu.com
    # 发送指定数量的数据包(4 个)
    ping -n 4 baidu.com
    # 持续 ping,直到手动停止 (Ctrl+C)
    ping -t baidu.com
    # 设置数据包大小(字节)
    ping -l 1472 baidu.com
  • Linux/macOS:

    # 基本用法
    ping baidu.com
    # 发送指定数量的数据包(4 个)
    ping -c 4 baidu.com
    # 持续 ping
    ping baidu.com
    # 设置间隔时间(秒)
    ping -i 2 baidu.com

解读Reply from... 表示成功。Request timed out. 表示目标主机不响应或网络不通。Destination host unreachable. 表示本地路由表中没有到达目标主机的路径。

网管命令大全,哪些命令最常用?-图2
(图片来源网络,侵删)

traceroute / tracert - 跟踪网络路径

作用:显示数据包从源主机到目标主机所经过的路由器(网关)列表,并显示每一步的延迟。

  • Windows (CMD):

    # 跟踪到 baidu.com 的路径
    tracert baidu.com
    # 不尝试解析主机名,只显示 IP 地址
    tracert -d baidu.com
    # 使用指定的数据包大小
    tracert -f 1 baidu.com
  • Linux/macOS:

    # 基本用法
    traceroute baidu.com
    # 使用 ICMP 代替 UDP(通常更可靠)
    traceroute -I baidu.com
    # 显示每个路由器的往返时间(RTT)三次
    traceroute -q 3 baidu.com

解读:每一行代表一个路由器, 表示该路由器不响应(可能被防火墙屏蔽),通过分析延迟的变化,可以定位网络瓶颈。

网管命令大全,哪些命令最常用?-图3
(图片来源网络,侵删)

mtr - 更强大的路径诊断工具

作用tracerouteping 的结合体,能持续跟踪路径,并实时显示每个节点的丢包率和延迟,比 traceroute 更直观。

  • Linux/macOS (通常需要安装):

    # Ubuntu/Debian 安装
    sudo apt-get install mtr
    # CentOS/RHEL 安装
    sudo yum install mtr
    # 基本用法
    mtr baidu.com
    # 以报告模式输出,适合脚本
    mtr --report baidu.com

解读Loss% 列显示丢包率,Snt (Sent), Recv (Received), Best/Avg/Worst 显示延迟统计,丢包率高且延迟大的节点就是问题所在。


网络接口与配置管理

用于查看和管理本机网络接口的 IP 地址、MAC 地址等配置信息。

ipconfig / ifconfig - 查看和配置网络接口

  • Windows (CMD):

    # 显示所有网络接口的详细 IP 配置信息
    ipconfig /all
    # 仅显示每个接口的基本信息
    ipconfig
    # 刷新 DNS 解析器缓存
    ipconfig /flushdns
    # 释放当前 DHCP 获取的 IP 地址
    ipconfig /release
    # 重新从 DHCP 服务器获取 IP 地址
    ipconfig /renew
  • Linux/macOS (ifconfig 已被 ip 命令取代,但很多系统仍保留):

    # 显示所有网络接口的详细信息
    ifconfig -a
    # 启用或禁用指定网卡 (eth0)
    sudo ifconfig eth0 up
    sudo ifconfig eth0 down
    # 为网卡配置 IP 地址
    sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0

ip - Linux/macOS 现代网络配置工具

作用ifconfig 的现代替代品,功能更强大。

  • Linux/macOS:

    # 显示所有网络接口的摘要信息
    ip addr show
    # 显示指定接口的详细信息 (eth0)
    ip addr show eth0
    # 显示路由表
    ip route show
    # 显示 ARP 缓存
    ip neigh show
    # 为网卡添加一个 IP 地址 (别名)
    sudo ip addr add 192.168.1.101/24 dev eth0
    # 删除一个 IP 地址
    sudo ip addr del 192.168.1.101/24 dev eth0

DNS 域名解析查询

用于检查域名是否能正确解析到 IP 地址。

nslookup - 交互式 DNS 查询工具

作用:查询域名对应的 IP 地址,或反向查询 IP 对应的域名。

  • Windows & Linux/macOS:

    # 查询 baidu.com 的 A 记录
    nslookup baidu.com
    # 查询指定 DNS 服务器上的记录
    nslookup baidu.com 8.8.8.8
    # 进入交互模式,可以连续查询
    nslookup
    > set type=mx
    > qq.com
    > exit

dig - 更专业的 DNS 查询工具

作用:提供比 nslookup 更详细、更专业的 DNS 信息输出。

  • Linux/macOS (通常需要安装):

    # 查询 baidu.com 的 A 记录
    dig baidu.com
    # 查询 MX (邮件交换) 记录
    dig baidu.com MX
    # 只返回简短答案
    dig +short baidu.com
    # 查询指定 DNS 服务器
    dig @8.8.8.8 baidu.com

网络连接与端口状态

用于查看当前的网络连接状态、开放的端口以及进程信息。

netstat - 查看网络连接、路由表、接口统计

作用:经典网络状态查看工具。

  • Windows & Linux/macOS:

    # 显示所有活动的 TCP 和 UDP 连接,包含 PID 和进程名 (Windows)
    netstat -ano
    # 只显示监听端口
    netstat -anb | findstr "LISTENING" (Windows)
    netstat -luntp (Linux)
    # 以数字形式显示地址和端口号,不进行域名解析
    netstat -n
    # 显示 TCP 连接状态统计
    netstat -s

ss - Linux/macOS 中 netstat 的现代替代品

作用ss 命令功能与 netstat 类似,但速度更快,信息更全。

  • Linux/macOS:

    # 显示所有 TCP 和 UDP 连接
    ss -tunap
    # -t: TCP, -u: UDP, -n: 数字, -a: 所有, -p: 进程ID
    # 只显示监听的 TCP 端口
    ss -tlnp
    # 显示所有 sockets
    ss -a

Get-NetTCPConnection - PowerShell 版本

作用:在 Windows 上使用 PowerShell 获取网络连接信息,比 netstat 更易于脚本化。

  • Windows (PowerShell):

    # 获取所有 TCP 连接
    Get-NetTCPConnection
    # 获取所有处于 `Listen` 状态的连接
    Get-NetTCPConnection | Where-Object { $_.State -eq 'Listen' }
    # 按本地地址和端口排序
    Get-NetTCPConnection | Sort-Object LocalAddress, LocalPort

高级路由与网络诊断

route - 查看和操作本地路由表

作用:手动添加、删除或修改路由条目。

  • Windows & Linux/macOS:

    # 查看本地路由表
    route print (Windows)
    route -n (Linux)
    # 添加一条路由 (Windows)
    # route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
    # 添加一条路由 (Linux)
    # sudo ip route add 192.168.2.0/24 via 192.168.1.1

arp - 查看 ARP 缓存

作用:查看 IP 地址与 MAC 地址的映射关系。

  • Windows & Linux/macOS:

    # 查看本地 ARP 缓存表
    arp -a
    # 添加一个静态 ARP 条目
    # arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff

防火墙与安全组管理

netsh - Windows 网络配置和防火墙管理

作用:一个功能强大的命令行工具,可以配置网络接口、IPsec、防火墙等。

  • Windows (CMD):

    # 查看防火墙规则
    netsh advfirewall firewall show rule name=all
    # 添加一个入站规则,允许特定端口的 TCP 流量
    netsh advfirewall firewall add rule name="Allow Port 8080" dir=in action=allow protocol=TCP localport=8080
    # 删除一个规则
    # netsh advfirewall firewall delete rule name="Allow Port 8080"

iptables / nftables - Linux 防火墙管理

作用:Linux 内核内置的防火墙工具,功能极其强大和灵活。

  • Linux (以 iptables 为例):

    # 查看当前所有规则 (链)
    sudo iptables -L -n -v
    # 允许来自特定 IP 的所有流量
    sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
    # 允许访问本地 80 端口
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    # 拒绝所有其他入站流量 (默认策略)
    sudo iptables -P INPUT DROP

系统与服务管理

systemctl - Linux 系统和服务管理器

作用:控制 systemd 系统和服务,启动、停止、启用、禁用服务等。

  • Linux:

    # 查看所有服务的状态
    systemctl list-units --type=service --state=running
    # 查看某个服务的详细状态和日志 (nginx)
    systemctl status nginx.service
    # 启动一个服务
    sudo systemctl start nginx.service
    # 停止一个服务
    sudo systemctl stop nginx.service
    # 设置服务开机自启
    sudo systemctl enable nginx.service
    # 禁止服务开机自启
    sudo systemctl disable nginx.service

sc - Windows 服务管理器

作用:在 Windows 上管理服务。

  • Windows (CMD):

    # 查看所有服务的状态
    sc query state= all
    # 查看特定服务 (Spooler) 的状态
    sc query Spooler
    # 启动一个服务
    sc start Spooler
    # 停止一个服务
    sc stop Spooler
    # 修改服务的启动类型 (例如自动启动)
    sc config Spooler start= auto

总结与建议

命令 主要用途 Windows (CMD) Linux/macOS
连通性测试
ping 测试主机是否可达 ping ping
tracert 跟踪网络路径 tracert traceroute
mtr 持续路径诊断 (需安装) mtr
接口配置
ipconfig 查看/刷新 IP/DNS ipconfig ifconfig / ip
ip 现代 IP 配置 (PowerShell) ip
DNS 查询
nslookup 交互式 DNS 查询 nslookup nslookup
dig 专业 DNS 查询 (需安装) dig
连接状态
netstat 查看网络连接 netstat -ano netstat / ss
ss 快速连接状态查看 (无) ss -tunap
高级诊断
route 管理 IP 路由 route print route -n / ip route
arp 查看 ARP 缓存 arp -a arp -a
防火墙
netsh 管理 Windows 防火墙 netsh advfirewall (无)
iptables 管理 Linux 防火墙 (无) iptables
服务管理
sc 管理 Windows 服务 sc (无)
systemctl 管理 Linux 服务 (无) systemctl

给网管员的建议:

  1. 熟练掌握基础ping, tracert, ipconfig/ifconfig, nslookup 是你的瑞士军刀,必须烂熟于心。
  2. 拥抱现代工具:在 Linux 上,优先使用 ip, ss, systemctl,在 Windows 上,PowerShell (Get-NetTCPConnection) 比传统的 netstat 更强大。
  3. 善用组合命令:在 Linux 中,grepawk 是网管的左膀右臂,可以快速从大量输出中过滤出关键信息。netstat -anp | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr 可以统计出当前每个 IP 的连接数。
  4. 理解原理:命令只是工具,理解 TCP/IP 协议、路由、DNS、ARP 等底层工作原理,才能真正做到“运筹帷幄,决胜千里”。

这份大全涵盖了日常网管工作的绝大部分场景,希望对你有所帮助!

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