网络诊断相关命令
1. ifup
和 ifdown
ifup
和 ifdown
是传统的网络接口管理命令,主要用于启动或关闭网络接口。这些命令依赖于 /etc/network/interfaces
文件中定义的网络配置。在较新的 Ubuntu 版本(例如 18.04 及以上)中,Netplan
逐渐取代了传统的配置方式,但在某些情况下仍然可以使用 ifup
和 ifdown
。
用法
启动网络接口:
1
sudo ifup <接口名称>
示例:
1
sudo ifup eth0
这会根据
/etc/network/interfaces
中的配置启用eth0
接口。关闭网络接口:
1
sudo ifdown <接口名称>
示例:
1
sudo ifdown eth0
这会禁用
eth0
接口。
注意事项
- 需要 root 权限(使用
sudo
)。 - 如果你的系统使用
netplan
或NetworkManager
,这些命令可能不起作用,建议检查当前网络管理方式:- 查看是否使用
netplan
:检查/etc/netplan/
目录下是否有配置文件。 - 查看是否使用
NetworkManager
:运行nmcli
。
- 查看是否使用
检查接口状态
可以用 ip link
或 ifconfig
查看接口是否成功启用或禁用:
1 | ip link show |
2. ethtool
用法
ethtool
是一个强大的工具,用于查看和配置网络接口的硬件设置,例如速度、双工模式、自动协商等。
安装
Ubuntu 默认可能未安装 ethtool
,可以用以下命令安装:
1 | sudo apt update |
常用命令
查看接口状态:
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)。duplex
:half
(半双工)或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 | sudo apt update |
基本用法
查询 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 | sudo apt update |
基本用法
发送 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 表错误)。