基础网络信息查看
这些命令用于快速了解当前网络连接状态。

ifconfig
显示或配置网络接口的参数,是了解网络接口最基础的命令。
-
查看所有网络接口信息:
ifconfig
输出会显示所有网络接口(如
en0是以太网/有线,en1是 Wi-Fi,lo0是回环接口)的 IP 地址、MAC 地址、子网掩码等。 -
查看特定接口信息(Wi-Fi):
(图片来源网络,侵删)ifconfig en1
-
启用/禁用接口(需要管理员权限):
sudo ifconfig en1 down sudo ifconfig en1 up
ipconfig
主要用于管理 macOS 的 DNS 缓存,也可以刷新网络配置。
- 刷新 DHCP 和 DNS 缓存(解决网络连接问题常用):
sudo ipconfig set en1 DHCP sudo dscacheutil -flushcache
en1可以替换为你的网络接口名称,这个组合命令在连接不上网时非常有用。
networksetup
一个功能强大的命令行工具,用于配置网络服务(如 Wi-Fi、以太网、VPN 等)。

-
列出所有网络服务:
networksetup -listallnetworkservices
-
查看 Wi-Fi 状态和信息:
networksetup -getinfo Wi-Fi
-
查看当前连接的 Wi-Fi 网络:
networksetup -getairportnetwork en0
-
启用/禁用网络服务:
networksetup -setnetworkserviceenabled Wi-Fi on networksetup -setnetworkserviceenabled Wi-Fi off
连接诊断与测试
这些命令用于测试网络连通性和排查问题。
ping
测试与另一台主机的网络连通性,它会发送 ICMP 数据包并等待响应。
-
测试与
www.google.com的连接:ping www.google.com
按
Ctrl + C停止。 -
指定发送数据包的数量(4 个):
ping -c 4 www.google.com
traceroute (或 tracert)
显示数据包到达目标主机所经过的路由路径,对于定位网络延迟或中断点非常有用。
-
追踪到
www.apple.com的路径:traceroute www.apple.com
在较新的 macOS 版本中,
traceroute命令可能不存在,但可以使用traceroute的替代品或ping的扩展功能。 -
使用
ping进行路径追踪(macOS 内置方法):ping -R www.apple.com
-R选项要求在 IP 包中记录路由路径,但并非所有路由器都支持,更可靠的方法是使用下面的traceroute替代品。 -
安装
traceroute(如果系统没有):brew install traceroute
需要先安装 Homebrew。
netstat
显示网络连接、路由表、接口统计等信息。
-
显示所有活动的 TCP 连接:
netstat -an
-a显示所有连接,-n以数字形式显示地址和端口(不进行 DNS 解析,速度更快)。 -
显示监听的端口:
netstat -an | grep LISTEN
nslookup
用于查询 DNS 记录,将域名解析为 IP 地址,或反向查询 IP 对应的域名。
-
查询
www.github.com的 IP 地址:nslookup www.github.com
-
使用特定的 DNS 服务器进行查询(Google DNS):
nslookup www.github.com 8.8.8.8
高级网络监控与分析
这些命令提供更底层的网络流量视图,适合高级用户和开发者。
lsof (List Open Files)
虽然不是纯网络命令,但可以用来查看哪些进程正在使用特定的网络端口。
- 查看哪个进程在使用 8080 端口:
sudo lsof -i :8080
tcpdump
一个强大的网络数据包分析器,可以捕获和分析经过网络接口的数据包。
-
捕获经过
en0接口的所有数据包(会输出大量信息):sudo tcpdump -i en0
-
只捕获与
www.google.com的 HTTP 流量(端口 80):sudo tcpdump -i en0 host www.google.com and port 80
-
将捕获的数据包保存到文件:
sudo tcpdump -i en0 -w capture.pcap
生成的
capture.pcap文件可以用 Wireshark 等软件进行详细分析。
nettop
一个实时、动态的网络监控工具,比 top 更专注于网络活动。
- 实时显示网络活动:
sudo nettop
按
q退出,它会显示每个进程的网络连接、数据传输速率等信息。
nstat
显示网络协议的统计信息,如 TCP、UDP、ICMP 的各种计数器。
- 显示内核网络统计信息:
nstat
系统网络服务管理
system_profiler
获取详细的系统信息,包括网络硬件配置。
- 显示网络接口的详细报告:
system_profiler SPNetworkDataType
这会提供非常详细的 Wi-Fi 和以太网信息,如 SSID、BSSID、信号强度、IP 配置等。
总结与使用建议
| 命令 | 主要用途 | 常用场景 |
|---|---|---|
ifconfig |
查看网络接口基本信息 | 快速检查 IP、MAC 地址 |
ipconfig |
刷新 DHCP/DNS 缓存 | 解决网络连接问题 |
networksetup |
配置网络服务 | 管理 Wi-Fi、代理、VPN 等 |
ping |
测试网络连通性 | 检查是否能访问某台主机 |
traceroute |
追踪数据包路径 | 定位网络延迟或中断点 |
netstat |
查看网络连接和端口 | 检查哪个程序在监听端口 |
nslookup |
DNS 查询 | 检查域名解析是否正常 |
lsof |
查看端口占用进程 | 找到占用端口的程序 |
tcpdump |
捕获网络数据包 | 深度分析网络流量 |
nettop |
实时网络监控 | 观看进程的网络活动 |
system_profiler |
获取系统详细信息 | 查看详细的网络硬件配置 |
排查网络问题的典型流程:
-
无法上网?
- 先用
ping 8.8.8.8测试是否能连接到公网,如果能,说明是 DNS 问题。 - 用
nslookup www.google.com检查 DNS 解析是否正常。 - 如果不通,检查网线或 Wi-Fi 连接,用
ifconfig看接口是否 UP 并有 IP。 - 尝试
sudo ipconfig set en1 DHCP刷新配置。
- 先用
-
某个网站打不开?
- 用
ping和nslookup检查该网站的 IP 和连通性。 - 用
traceroute看数据包在哪一步卡住了。
- 用
-
端口被占用?
- 用
netstat -an | grep LISTEN查看所有监听端口。 - 用
sudo lsof -i :端口号找到占用端口的进程,然后决定是否终止它。
- 用
希望这份详细的清单能帮助您更好地管理和调试 macOS 的网络!
