macOS网络配置与排障
macOS 网络配置同时受图形设置、networksetup、系统服务、DNS 缓存、代理、VPN 和防火墙影响。排障时要兼顾用户体验和 Unix 工具。
# 1. 学习目标
- 掌握 macOS 网络接口、DNS、代理、VPN 和防火墙排查。
- 能使用 networksetup、scutil、lsof、tcpdump 等工具。
- 能定位本机代理、DNS 缓存和证书问题。
# 2. 知识框架
macOS网络配置与排障
├─ 入门:建立术语、对象和日常操作的直觉
├─ 进阶:理解机制、边界和跨平台差异
└─ 专家:能排障、能设计、能阅读实现和研究材料
macOS 网络排障建议从系统设置确认网络服务,再用命令行检查 DNS、路由、代理、监听端口和抓包。
# 3. 核心概念
| 主题 | 说明 | 工程关注 |
|---|---|---|
| Network Service | Wi-Fi、以太网、VPN 等网络服务配置 | 优先级、位置、代理 |
| DNS 缓存 | 系统解析结果缓存 | 域名变更延迟 |
| 代理 | 系统代理或应用代理影响请求路径 | 开发调试、抓包、访问失败 |
| pf 防火墙 | macOS 底层包过滤能力 | 企业策略、端口限制 |
# 4. 机制与实践
- 访问异常时先确认是否开启 VPN、代理或安全软件。
- DNS 变更后可刷新缓存并重新测试。
- 端口占用用 lsof 定位具体进程,不要盲目杀进程。
# 5. 常用命令与工具
| 命令或工具 | 作用 | 使用建议 |
|---|---|---|
networksetup -listallnetworkservices | 列出网络服务 | 确认 Wi-Fi、代理和 VPN 配置对象 |
scutil --dns | 查看 DNS 配置 | 排查解析来源 |
lsof -nP -iTCP:port | 查看端口占用 | 定位监听或连接进程 |
# 6. 常见误区
- 忽略系统代理:命令行、浏览器和应用可能走不同代理设置。
- DNS 缓存未刷新:域名记录变更后本机仍可能使用旧结果。
- 只看 Wi-Fi 图标:图标正常不代表 DNS、代理、路由和目标服务都正常。
# 7. 进阶研究方向
- 学习 macOS SystemConfiguration 框架和 networksetup。
- 研究 pfctl 规则和企业网络策略。
- 用 tcpdump 分析 DNS、TCP 和 TLS 握手。
# 8. Tips 快问快答
Q:macOS 怎么看 DNS?
A:使用 scutil --dns 可以看到系统当前解析配置。
Q:端口被占用怎么办?
A:用 lsof 查出进程和命令,再判断是否停止、改端口或调整配置。
Q:为什么浏览器能访问但 curl 不行?
A:可能是代理、证书、DNS 或应用自带网络栈差异。
# 9. 总结
macOS 网络问题常常藏在代理、DNS 和安全软件里。图形界面确认状态,命令行拿证据,两者结合最稳。
上次更新: 2026/06/25, 10:02:19