系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

ifconfig

查看和临时配置 macOS 网络接口的地址、状态、MTU 与收发统计。

补充说明

ifconfig 是 macOS 查看网卡的首选命令:ifconfig -l 列出接口名,ifconfig en0 看地址、状态和计数器。macOS 没有 Linux 的 ip 命令,地址、链路状态、MTU、alias 都由 ifconfig 管理,路由则交给 route 和 netstat -rn。排查“有没有拿到 IP、网卡是否 up、是不是 DHCP 地址”时先跑它。

接口编号不固定:Apple Silicon 笔记本的 Wi-Fi 通常是 en0,Intel 台式机可能 en0 是以太网、en1 才是 Wi-Fi,USB 网卡常见 en5 以后。用 networksetup -listallhardwareports 把接口名和硬件端口对应起来,不要凭经验写死。utun* 是 VPN/隧道,bridge* 是虚拟网桥,awdl0/llw0 用于 AirDrop 与 Handoff,不是故障接口。

ifconfig 的修改只作用于当前运行状态:手工设置的 inet 会被 DHCP 续租覆盖,重启后消失;持久化要用 networksetup -setmanual、-setdhcp 或系统设置。ifconfig en0 down 会立即断开该接口,远程操作前先确认它不是当前 SSH 链路。

常用示例

# 列出所有接口名,先确认 Wi-Fi 对应哪个 en*
% ifconfig -l

# 查看单个接口的地址、状态、MTU 和收发计数
% ifconfig en0

# 只取 IPv4 地址,脚本里常用
% ifconfig en0 | awk '/inet /{print $2}'

# 查看 MAC 地址
% ifconfig en0 ether

# 临时改 IP,重启或 DHCP 续租后会失效(示例网段)
% sudo ifconfig en0 inet 192.0.2.10 netmask 255.255.255.0

# 追加别名地址,保留原地址;不用时再删掉
% sudo ifconfig en0 alias 192.0.2.11 netmask 255.255.255.0
% sudo ifconfig en0 -alias 192.0.2.11

# 重启接口,处理“网卡卡死、DHCP 不刷新”
% sudo ifconfig en0 down
% sudo ifconfig en0 up

# 把接口名和硬件端口对应起来
% networksetup -listallhardwareports

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 怎样确认 en0 到底是 Wi-Fi 还是以太网?
  2. 为什么 sudo ifconfig en0 inet ... 设置的地址重启后就没了?
  3. 接口显示 status: inactive,应该先查什么?
答案
  1. 运行 networksetup -listallhardwareports,用 Hardware Port 和 Device 的对应关系确认;不要假设所有 Mac 的 en0 都是 Wi-Fi。
  2. ifconfig 只改内核运行时状态,不写系统配置;持久化要用 networksetup -setmanual 或系统设置,DHCP 环境下则用 -setdhcp。
  3. 先查链路是否关联(Wi-Fi 是否连上、网线是否插好),再看 ifconfig en0 的状态和 netstat -rn 是否有路由,而不是直接改 IP。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令