macos网络适配器共享基于内核级nat而非直连,通过pfctl和bootpd实现三层转发;支持以太网↔wi-fi互转、蓝牙pan及usb(限ios反向),但不支持二层桥接或代理继承。

macOS 的网络适配器共享不是“把网卡直接分给别的设备用”,而是通过系统级 NAT(网络地址转换)机制,将一个已联网的接口作为源,另一个接口作为出口,构建一个独立子网供其他设备接入。整个过程由内核级 pfctl 和 bootpd 服务协同完成,不依赖第三方软件。
以太网转 Wi-Fi 共享是最典型场景
当你用网线连上网、想让 iPhone 或 iPad 通过 Wi-Fi 连上 Mac 上网时:
- macOS 把以太网设为“来源”,Wi-Fi 设为“目标”
- 系统自动启用
bridge100虚拟桥接接口,并分配192.168.2.1/24这类私有网段地址 - 内置 DHCP 服务(
bootpd)开始响应请求,为手机分配192.168.2.x地址,网关指向 Mac 的192.168.2.1 - 所有客户端流量经 PF 规则做 SNAT(源地址转换),再转发到以太网出口,返回流量也自动回包
Wi-Fi 转以太网共享同样有效,但逻辑相反
比如 Mac 用 Wi-Fi 上网,再插 USB-C 以太网口给台式机用:
- 来源选当前连接的 Wi-Fi 名称(如 “Home-WiFi”)
- 出口选“以太网”(需确认系统识别该接口,如显示为 “USB 10/100/1000 LAN”)
- Mac 自动配置
192.168.2.1给以太网口,客户端需设静态 IP 或开启 DHCP(默认已启用) - 此时台式机获得的是独立局域网,和 Mac 的 Wi-Fi 不在同一个广播域,不能直连路由器,但可正常上网
蓝牙 PAN 和 USB 共享属于小众路径
- 蓝牙 PAN 需提前配对,共享带宽低、延迟高,适合临时应急
- USB 共享仅限 iOS 设备反向连接 Mac(如 iPhone 用蜂窝网络共享给 Mac),Mac 本身不支持把 USB 接口当作出口对外共享
所有共享模式都不支持二层桥接
macOS 没有传统交换机式的“透传”能力。无论 Wi-Fi→以太网,还是以太网→Wi-Fi,都是三层 NAT 转发,客户端获取不到上游路由器的 IP 段,也无法被同一局域网其他设备直接发现或访问。这是设计使然,不是配置错误。
代理、防火墙、DNS 等设置默认不继承
共享出去的设备走的是原始路由表,完全绕过 macOS 的系统代理、HTTP 代理设置、甚至某些防火墙规则。若需统一管控流量(如强制走本地透明代理),必须手动修改 /etc/pf.anchors/ 下的 PF 规则,重定向 80/443 流量到本地监听端口。











