网络诊断相关命令

1. ifupifdown

ifupifdown传统的网络接口管理命令,主要用于启动或关闭网络接口。这些命令依赖于 /etc/network/interfaces 文件中定义的网络配置。在较新的 Ubuntu 版本(例如 18.04 及以上)中,Netplan 逐渐取代了传统的配置方式,但在某些情况下仍然可以使用 ifupifdown

用法

  • 启动网络接口

    1
    sudo ifup <接口名称>

    示例:

    1
    sudo ifup eth0

    这会根据 /etc/network/interfaces 中的配置启用 eth0 接口。

  • 关闭网络接口

    1
    sudo ifdown <接口名称>

    示例:

    1
    sudo ifdown eth0

    这会禁用 eth0 接口。

注意事项

  • 需要 root 权限(使用 sudo)。
  • 如果你的系统使用 netplanNetworkManager,这些命令可能不起作用,建议检查当前网络管理方式:
    • 查看是否使用 netplan:检查 /etc/netplan/ 目录下是否有配置文件。
    • 查看是否使用 NetworkManager:运行 nmcli

检查接口状态

可以用 ip linkifconfig 查看接口是否成功启用或禁用:

1
ip link show

2. ethtool 用法

ethtool 是一个强大的工具,用于查看和配置网络接口的硬件设置,例如速度、双工模式、自动协商等。

安装

Ubuntu 默认可能未安装 ethtool,可以用以下命令安装:

1
2
sudo apt update
sudo apt install ethtool

常用命令

  • 查看接口状态

    1
    ethtool <接口名称>

    示例:

    1
    ethtool eth0

    输出示例:
    Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    Auto-negotiation: on

  • 查看驱动信息

    1
    ethtool -i <接口名称>

    示例:

    1
    ethtool -i eth0

    输出示例:
    driver: e1000e
    version: 3.2.6-k
    firmware-version: 0.13-4
    bus-info: 0000:00:19.0

  • 设置网卡速度和双工模式

    1
    sudo ethtool -s <接口名称> speed <速度> duplex <模式> autoneg off

    示例(设置为 100Mb/s 全双工):

    1
    sudo ethtool -s eth0 speed 100 duplex full autoneg off
    • speed:可选值如 10、100、1000(单位 Mb/s)。
    • duplexhalf(半双工)或 full(全双工)。
    • autoneg off:关闭自动协商。
  • 启用/禁用自动协商

    1
    sudo ethtool -s <接口名称> autoneg on

    示例:

    1
    sudo ethtool -s eth0 autoneg on
  • 显示统计信息

    1
    ethtool -S <接口名称>

    示例:

    1
    ethtool -S eth0

    输出网络接口的流量统计,如数据包数量、错误数等。

注意事项

  • 需要 root 权限来修改设置。
  • 更改设置(如速度、双工模式)是临时的,重启后会恢复默认值。要永久保存,需编辑网络配置文件(例如 /etc/network/interfaces 或 Netplan 配置)。
  • 使用前确保知道接口名称,可以通过 ip link 查看。

3. dig 用法

dig(Domain Information Groper)是一个用于查询 DNS 的命令行工具,广泛用于解析域名、检查 DNS 记录等。它比 nslookup 更强大且输出更详细。

安装

Ubuntu 默认可能未包含 dig,它属于 dnsutils 包,可以通过以下命令安装:

1
2
sudo apt update
sudo apt install dnsutils

基本用法

  • 查询 A 记录(IP 地址)

    1
    dig <域名>

    示例:

    1
    dig google.com

    输出中关注 ANSWER SECTION,显示域名对应的 IP 地址:
    ;; ANSWER SECTION:
    google.com. 300 IN A 142.250.190.78

  • 指定记录类型

    1
    dig <域名> <记录类型>

    示例(查询 MX 记录):

    1
    dig google.com MX

    输出示例:
    ;; ANSWER SECTION:
    google.com. 600 IN MX 10 smtp.google.com.
    常见记录类型:A(IPv4)、AAAA(IPv6)、MX(邮件交换)、NS(名称服务器)、TXT(文本记录)等。

  • 指定 DNS 服务器

    1
    dig @<DNS服务器> <域名>

    示例(使用 Google 的 DNS 服务器 8.8.8.8):

    1
    dig @8.8.8.8 google.com
  • 简洁输出
    添加 +short 参数只显示结果:

    1
    dig google.com +short

    输出:
    142.250.190.78

  • 查看详细过程
    默认输出包含查询过程,若要更详细信息,可加参数:

    1
    dig google.com +trace

    这会显示从根服务器到最终解析的完整路径。

常用参数

  • +short:简洁输出。
  • +trace:跟踪解析过程。
  • +noall +answer:仅显示答案部分。
  • -4:强制使用 IPv4。
  • -6:强制使用 IPv6。

应用场景

  • 检查域名是否正确解析。
  • 排查 DNS 配置问题。
  • 测试特定 DNS 服务器的响应。

4. arping 用法

arping 是一个用于发送 ARP(地址解析协议)请求的工具,可以用来发现局域网内的设备或检查 IP 是否被占用。它通过发送 ARP 数据包来查询目标 IP 对应的 MAC 地址

安装

Ubuntu 默认可能未安装 arping,可以通过以下命令安装:

1
2
sudo apt update
sudo apt install arping

基本用法

  • 发送 ARP 请求到指定 IP

    1
    arping <目标IP>

    示例:

    1
    arping 192.168.1.1

    输出示例:
    ARPING 192.168.1.1 from 192.168.1.100 eth0
    Unicast reply from 192.168.1.1 [00:11:22:33:44:55] 0.723ms
    显示目标 IP 的 MAC 地址和响应时间。

  • 指定网络接口

    1
    arping -I <接口名称> <目标IP>

    示例:

    1
    arping -I eth0 192.168.1.1
  • 限制发送次数

    1
    arping -c <次数> <目标IP>

    示例(发送 10 次后停止):

    1
    arping -c 10 192.168.1.1
  • 设置超时

    1
    arping -w <超时秒数> <目标IP>

    示例(超时 5 秒):

    1
    arping -w 5 192.168.1.1
  • 以太网广播模式
    默认情况下,arping 使用单播 ARP 请求。若要使用广播模式:

    1
    arping -b <目标IP>

注意事项

  • 需要 root 权限(使用 sudo),因为发送 ARP 请求涉及底层网络操作。
  • 仅适用于同一局域网内的 IP 地址,无法跨网段工作。
  • 如果目标 IP 未响应,可能表示设备不在线或防火墙阻止了 ARP 请求。

应用场景

  • 检查局域网内 IP 是否被占用。
  • 获取设备的 MAC 地址。
  • 排查网络连接问题(例如 ARP 表错误)。