macOS 手动 PF 共享网络

macOS 手动 PF 共享网络
狂犬主子由于要将 MacBook 的 Wi-Fi 网络共享给一台没有网络的机器,使用网络共享功能发现无法灵活配置IP地址。由于机器不方便使用 DHCP、更改 IP,因此无法使用。
通过搜索得知,在 macOS 上配置网卡 NAT(网络地址转换)主要有两种方式:
- 系统内置的 Internet 共享功能(基于PF,自动配置)
- PF(Packet Filter)防火墙(手动配置)
由于 Internet 共享功能无法满足需求,因此选择了 PF 防火墙手动配置的方式来实现 Wi-Fi 网络共享。
要求
- USB 网卡(以太网适配器)连接到没有网络的机器。
- MacBook 连接到 Wi-Fi 网络。
- 网线
步骤
配置网络接口
- 使用网线将 Mac 连接的 USB 网卡连接到没有网络的机器。
- 设备网络配置:
- IP: 192.168.100.2/24
- Gateway: 192.168.100.1
- DNS: 223.5.5.5
- MacBook网络配置:
- IP: 192.168.100.1/24
配置 PF 防火墙 NAT 转发
-
确认内外网接口名称。在 macOS 终端执行
ifconfig,找到:- 外网接口(Wi-Fi):一般是
en0,inet是 Wi-Fi 的 IP(比如192.168.1.x) - 内网接口(USB 网卡):inet 是
192.168.100.1,名字一般是en5
- 外网接口(Wi-Fi):一般是
-
开启 IP 转发
1
2
3
4
5# 临时开启(重启失效) sudo sysctl -w net.inet.ip.forwarding=1 # 永久开启(重启不失效) # echo "net.inet.ip.forwarding=1" | sudo tee -a /etc/sysctl.conf
-
创建 PF NAT 规则
创建一个临时的 PF 配置文件
nat.conf,内容如下:1
2
3
4
5
6# NAT规则:将192.168.100.0/24网段的流量通过Wi-Fi转发 nat on en0 from 192.168.100.0/24 to any -> (en0) # 允许内网流量转发 pass in on en5 from 192.168.100.0/24 to any pass out on en0 from 192.168.100.0/24 to any
-
加载规则并验证
1
2
3
4
5
6
7
8
9
10
11# 停止PF(如果正在运行) sudo pfctl -d # 清空现有规则 sudo pfctl -F all # 启用PF并加载规则 sudo pfctl -e -f ./nat.conf # 验证规则(能看到NAT规则即正常) sudo pfctl -s nat
到这里,设备应该就可以访问互联网了。
鉴于这种方法并非最佳解决方案,不建议长期使用,因此我也不提供永久修改系统的方案。建议在有条件的情况下,给设备加一台 Wi-Fi 路由器做无线桥接会稳一些。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果


