netcfg 是一个在 Android 系统中用于管理网络配置的命令行工具,它非常强大,尤其是在需要手动调试、备份或恢复网络设置时,虽然在新版本的 Android 中,很多功能被更现代的 netd 和 ConnectivityService 所取代,但 netcfg 仍然是开发者、高级用户和系统工程师的利器。

基本信息与适用环境
- 命令名称:
netcfg - 主要平台: Android (Linux 内核)
- 功能: 显示和配置网络接口的状态、IP 地址、路由和 DNS 信息。
- 权限: 通常需要
root权限 才能执行修改操作(如添加、删除路由等),但查看信息(netcfg或netcfg list)通常不需要。 - 替代品/演变: 在较新的 Android 版本中,
netcfg的部分功能已被ip命令和settings get global等命令所补充或替代,但netcfg在查看网络接口的详细状态(特别是 UP/DOWN 状态)方面仍然非常直观。
常用语法和选项
netcfg 命令的基本结构如下:
netcfg [选项] [接口名称]
常用选项
| 选项 | 全称 | 描述 | 示例 |
|---|---|---|---|
a |
all |
显示所有网络接口的详细信息。 | netcfg a |
s |
showroutes |
显示路由表信息。 | netcfg s |
d |
dns |
显示当前使用的 DNS 服务器。 | netcfg d |
h |
help |
显示帮助信息。 | netcfg h |
l |
list |
列出所有可用的网络接口。 | netcfg l |
| 无选项 | - | 显示所有已启用的网络接口信息。 | netcfg |
常用使用场景与示例
示例 1: 查看所有网络接口
这是最常用的功能,可以快速了解设备上有哪些网络连接。
# 显示所有已启用的接口(最常用) $ netcfg # 显示所有接口(包括未启用的) $ netcfg a
输出解读:
输出通常包含以下几列:

- INTERFACE: 接口名称,如
wlan0(Wi-Fi),rmnet0(移动数据),lo(回环地址),tun0(VPN) 等。 - IFACE: 接口类型。
- STATE: 接口状态,这是最关键的一列。
UP: 接口已启用,可以收发数据。DOWN: 接口已禁用。UNKNOWN: 未知状态。
- MAC: 硬件地址 (MAC 地址)。
- IP: 当前分配的 IP 地址。
- FLAGS: 标志位,如
UP,RUNNING,BROADCAST等。
示例输出:
INTERFACE IFACE STATE MAC IP
--------------- ------- --------- --------------- --------------
lo loopback UP 00:00:00:00:00:00 127.0.0.1/8
wlan0 wifi UP AA:BB:CC:DD:EE:FF 192.168.1.100/24
rmnet_data0 rmnet UP <MAC not available> 100.64.0.1/24
tun0 tun UP <MAC not available> 10.8.0.2/24
从上面的输出可以看出:
lo(回环) 和wlan0(Wi-Fi) 处于UP状态。rmnet_data0(移动数据) 也处于UP状态。tun0(VPN) 也处于UP状态。
示例 2: 查看特定接口信息
如果你想只关注 Wi-Fi 的状态,可以指定接口名称。
$ netcfg wlan0 wlan0 wifi UP AA:BB:CC:DD:EE:FF 192.168.1.100/24
示例 3: 查看路由表
使用 -s 或 showroutes 选项可以查看系统的路由表,这对于理解网络数据包的走向非常有用。

$ netcfg -s
输出解读:
路由表条目通常包含:
- Destination: 目标网络或主机。
- Gateway: 下一跳网关地址,如果是
0.0.0,表示直接连接。 - Genmask: 子网掩码。
- Flags: 标志,如
UG(Gateway, Up) 表示需要通过网关,U(Up) 表示路由可用。 - Iface: 出接口。
示例输出:
Kernel IP routing table
Destination Gateway Genmask Flags Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U wlan0
解读:
- 第一条规则:所有目标为
0.0.0(即所有未知地址) 的数据包,都通过网关168.1.1从wlan0接口发出,这是默认网关。 - 第二条规则:所有目标为
168.1.0/24网段内的数据包,都直接从wlan0接口发出,无需经过网关。
示例 4: 查看 DNS 服务器
使用 -d 或 dns 选项可以查看当前网络配置中使用的 DNS 服务器。
$ netcfg -d Current DNS servers: 192.168.1.1
示例 5: 启用或禁用网络接口 (需要 Root)
这是一个高级操作,通常用于调试。请谨慎使用,错误的操作可能导致网络中断。
# 启用 wlan0 接口 (需要 root) $ su # ifconfig wlan0 up # 禁用 wlan0 接口 (需要 root) # ifconfig wlan0 down
注意: 在现代 Android 系统中,直接使用
ifconfig来控制接口可能不稳定,系统有更复杂的网络状态管理机制,更推荐使用svc命令来控制 Wi-Fi 和移动数据。
与其他网络命令的对比
| 命令 | 主要用途 | 特点 |
|---|---|---|
netcfg |
查看/配置网络接口状态、路由、DNS | Android 原生,信息直观,特别是 STATE 列。 |
ip (Linux 标准) |
强大的网络配置工具 (路由、地址、隧道等) | 功能更全面、更现代,是 ifconfig 和 route 的替代品。 |
ifconfig (已过时) |
显示/配置网络接口地址 | 在 Linux 中已被 ip addr 替代,但在 Android 中有时仍可工作。 |
route (已过时) |
显示/操作 IP 路由表 | 在 Linux 中已被 ip route 替代。 |
settings get global |
查看 Android 系统设置中的网络参数 | 可以获取 Wi-Fi SSID、IP、网关、DNS 等信息,但格式是文本。 |
svc |
控制 Android 系统的网络服务 | 用于启用/禁用 Wi-Fi (svc wifi enable) 和移动数据 (svc data enable),是更“官方”的控制方式。 |
netcfg 是一个经典的、非常实用的 Android 网络诊断工具。
- 如果你需要快速了解哪个网络接口是活动的(UP/DOWN),
netcfg是最佳选择。 - 如果你想查看路由表或 DNS 配置,
netcfg提供了简洁的命令。 - 在进行网络调试时,
netcfg是你工具箱里必不可少的一员。
尽管系统在不断演进,但 netcfg 的简洁和直观性使其在很长一段时间内仍将在 Android 开发和调试领域占有一席之地。
