macOS 路由设置怎么配置?
简答:如果要改的是 Mac 本机路由,先用系统设置或 networksetup 确认网络服务名,再用 route 添加临时路由;需要重启后保留时,用 networksetup -setadditionalroutes 写入 IPv4 附加路由,最后用 route get 和 netstat -rn 验证。
定义:macOS 路由设置,是为 Mac 本机指定某个目标主机或目标网段应通过哪个网关、网络服务或接口发送,而不是修改家用或企业路由器本身的转发规则。
先试这一步:确认你要改的是 Mac 还是路由器
本文是 macOS 本机路由配置指南。若你要让家中或企业网络中的多台设备都使用某条路径,应登录路由器厂商提供的管理页面配置;Apple 也说明,路由器设置应通过生产企业提供的配置网页或 App 修改,详见Wi-Fi 路由器和接入点的推荐设置。
| 目标 | 应该修改的位置 | 典型用途 |
|---|---|---|
| 只影响当前这台 Mac | macOS 网络服务或本机路由表 | 多网卡分流、访问某个内网网段、测试 VPN 路径 |
| 影响同一网络中的多台设备 | 家用或企业路由器 | 统一配置局域网到其他网段的转发 |
最快的安全流程是:先查看现状,再添加一条临时路由测试;确认目标地址可达后,再写入永久配置。不要直接照抄 en0、en1 等接口名,应以本机命令输出为准。
先收集网络服务名、接口、IP 和网关
打开终端,列出 macOS 已识别的网络服务:
networksetup -listallnetworkservicesApple 文档说明,
networksetup用于配置客户端网络设置,-listallnetworkservices可显示硬件端口上的网络服务;可参考Apple 关于 networksetup 的说明。查看接口、地址和链路状态:
ifconfig重点记录正在使用的 Wi-Fi、以太网或 USB 网卡接口,不要假设接口一定叫某个固定名称。
查看当前 IPv4 路由表:
netstat -rn -f inet在图形界面确认当前服务的 IP 和路由器地址:打开“系统设置”>“网络”>选择 Wi-Fi 或以太网>“详细信息”>“TCP/IP”。Apple 当前 macOS 文档给出的入口和 TCP/IP 配置说明见在 Mac 上更改 TCP/IP 设置。
配置时至少要明确四个字段:目标网络是要访问的网段,子网掩码决定网段范围,网关是下一跳地址,网络服务名用于永久配置。若目标是单台设备,可使用主机路由;若目标是一组地址,使用网络路由。
用 route 添加临时静态路由
临时路由适合先测试路径。它通常在网络服务重启、地址变化或系统重启后失效,因此不要把它当作永久配置。
下面是示例格式,地址仅为示例,非实测;请替换为网络管理员提供的真实值:
添加一条主机路由,让
192.168.50.20通过网关192.168.1.1:sudo route -n add -host 192.168.50.20 192.168.1.1添加一条网络路由,让
192.168.50.0/24通过同一网关:sudo route -n add -net 192.168.50.0/24 192.168.1.1如果下一跳不适合作为网关,也可以按已确认的接口测试,但接口必须先通过
ifconfig确认,不要直接照抄示例接口名。
执行后,用以下命令查询某个目标实际会走哪里:
route -n get 192.168.50.20
重点查看输出中的接口、网关和路由类型。再运行 ping -c 4 192.168.50.20 检查目标是否响应;若目标不响应,不能仅凭路由表判断应用层服务一定正常。
需要重启后保留:配置 IPv4 附加路由
macOS 的永久附加路由应绑定到具体网络服务。先用 networksetup -listallnetworkservices 确认服务名称,再按当前系统的帮助信息确认参数:
networksetup -help
常见写法是把目标地址、子网掩码和网关作为一组写入:
sudo networksetup -setadditionalroutes "Wi-Fi" 192.168.50.0 255.255.255.0 192.168.1.1
这里的 Wi-Fi 只是示例服务名;如果你的服务叫“USB 10/100/1000 LAN”或其他名称,应替换为命令实际列出的名称。Apple 文档确认了 networksetup 的网络服务配置方式和 -help 查询入口,具体参数以当前 macOS 终端返回的帮助为准。
如果要写入多条附加路由,应在同一条命令中连续提供多组“目标地址、掩码、网关”参数,不要先写一条、再写一条后误以为两条一定会自动合并。修改后可用:
networksetup -getadditionalroutes "Wi-Fi"
查看该服务保存的附加路由。需要清除该服务的附加路由时,先阅读当前系统的 networksetup -help,再使用不带路由组的 -setadditionalroutes 清空,并重新检查输出。
图形界面能配置什么,不能配置什么
系统设置适合配置网络服务本身,例如 DHCP、手动 IPv4 地址、子网掩码、路由器地址和 DNS。打开“系统设置”>“网络”,选择 Wi-Fi 或以太网,再点“详细信息”,即可进入 TCP/IP、DNS、代理等项目。Apple 的Mac 上的“网络”设置还说明,网络服务列表可包含 Wi-Fi、以太网、雷雳和 VPN,并可调整网络服务顺序。
如果多条链路同时连接,先在网络服务列表中确认当前服务状态和顺序。服务顺序影响系统选择网络服务,但它不等同于为某个目标网段创建静态路由。需要精确指定目标网段时,仍应使用路由表或附加路由配置。
对于 VPN,系统可能出现 utun 等虚拟接口。不要把它当作固定接口名写进配置;VPN 连接、断开或自动重连后,接口可能变化。先用 ifconfig 和 route -n get 目标地址确认当前实际路径,再判断是否需要由 VPN 客户端提供分流规则。
验证、删除与常见报错排查
- Network is unreachable:先运行
route -n get 目标地址,确认本机是否存在可用路由;再检查网关是否与当前接口处于可达的本地网段。 - 网关不可达:确认网关地址、Mac 当前 IP、子网掩码和网络服务是否匹配。图形界面中的 TCP/IP 信息可在TCP/IP 设置页面查看。
- 路由似乎没有生效:不要只看
netstat -rn,使用route -n get 目标地址查询单个目标的实际出接口和网关。 - 重启后失效:说明你可能只使用了
route add临时添加,或网络服务名称、地址发生变化;重新检查networksetup -getadditionalroutes "服务名"。 - 删除临时主机路由:
sudo route -n delete -host 192.168.50.20。 - 删除临时网络路由:
sudo route -n delete -net 192.168.50.0/24。
如果只是 Wi-Fi 无法联网,先检查服务是否显示“已连接”、重新获取 DHCP 地址,并确认 VPN 或其他会交互网络连接的软件没有改变路径。Apple 的Mac 无法通过 Wi-Fi 接入互联网排查说明也建议检查连接、VPN、安全软件和路由器。
一张速查表:按需求选择配置方式
| 需求 | 建议方式 | 验证命令 | 注意事项 |
|---|---|---|---|
| 只想临时测试一条路径 | route -n add | route -n get 目标地址 | 通常不会作为永久配置保存 |
| 访问一个具体内网设备 | 主机路由 | ping -c 4 目标地址 | 确认网关可达,目标服务也要正常 |
| 访问整个内网网段 | 网络路由 | netstat -rn -f inet | 目标地址、掩码、网关必须成套填写 |
| 重启后仍需保留 | networksetup -setadditionalroutes | networksetup -getadditionalroutes "服务名" | 多条路由一次性写入,并绑定正确服务 |
| 影响整个局域网 | 登录路由器配置 | 由路由器管理界面验证 | 不要把 Mac 本机路由误当成全网路由 |
常见问题
常见问题
macOS 路由设置必须使用管理员权限吗?
查看路由表通常不需要管理员权限;使用 route 修改本机路由表时通常需要在命令前加 sudo。执行后按终端提示输入当前账户密码,并确认命令中的目标网段和网关来自可信的网络配置。
为什么 route add 成功,但访问目标地址仍然失败?
先用 route -n get 目标地址确认实际网关和接口,再检查网关是否可达、目标设备是否在线,以及目标服务端口是否开放。路由存在只代表转发路径已写入,不代表应用服务一定可用。
永久路由和临时路由有什么区别?
route -n add 适合临时测试,网络服务重启或系统重启后可能失效;networksetup -setadditionalroutes 将 IPv4 附加路由绑定到网络服务,适合需要持久保存的场景,但服务名或网络环境变化后仍应重新验证。
macOS 多网卡同时连接时,应该先改网络服务顺序还是加静态路由?
如果问题是默认出口选错,先检查网络服务状态和顺序;如果只有某个目标网段需要走指定网关,则使用针对该目标的静态路由。两者解决的问题不同,不能只靠调整顺序替代精确路由。
如何判断自己改的是 Mac 路由,而不是路由器路由?
如果命令和检查对象是本机的 route、netstat、networksetup,影响范围通常是当前 Mac;如果登录路由器管理页面修改转发表,才是在配置路由器。需要让多台设备同时生效时,应在路由器侧配置。