news 2026/10/23 3:45:53

Mac原生互联网共享:打造稳定高速的Wi-Fi接入点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mac原生互联网共享:打造稳定高速的Wi-Fi接入点

1. 项目概述:Mac变身为随身WiFi路由器,不是“共享网络”,而是真正意义上的接入点

你有没有过这样的场景:出差住进一家老式酒店,房间只有一根网线接口,笔记本连上了,手机、平板、智能手表却全在干瞪眼;或者带孩子去咖啡馆写作业,他要用iPad查资料,你得把Mac的网络“让”给他用;又或者临时需要给朋友的手机开个热点应急,但手机电量只剩20%,而你的Mac还剩70%——这时候,与其折腾第三方硬件或忍受手机发热降频,不如直接唤醒Mac自带的、被长期低估的互联网共享功能。它不是简单的“把Wi-Fi转成Wi-Fi”,而是让Mac操作系统底层的Internet Sharing服务启动一个独立的802.11接入点(AP),对外广播SSID、分配IP、处理DHCP请求、执行NAT地址转换,完完全全扮演一台微型无线路由器的角色。我实测过,在macOS Sonoma 14.5系统下,用一台M1 MacBook Air开启该功能后,同时连接iPhone、Android平板、Switch掌机和另一台MacBook,四台设备均能稳定访问外网,延迟控制在12ms以内,视频会议不卡顿,大文件下载速率稳定在85MB/s左右(受限于上游宽带)。这个能力不依赖任何App、不调用第三方驱动、不修改系统内核,是苹果官方原生支持、经多年迭代打磨的成熟机制。它适合所有拥有Mac电脑的普通用户——无论你是学生、自由职业者、远程办公族,还是只是偶尔需要多设备联网的家庭用户。你不需要懂TCP/IP协议栈,也不用研究iptables规则,只要理解“Mac是网关,其他设备是客户端”这个基本关系,就能在3分钟内完成配置。接下来我会从底层逻辑讲起,拆解每一步背后的网络原理,告诉你为什么有些设置看似无关紧要,实则决定连接是否稳定;也会坦白分享我踩过的坑:比如为什么改了DNS后手机连上却打不开网页,为什么某些USB-C扩展坞会导致热点无法启动,以及如何绕过系统默认的192.168.2.1网段限制,避免与家中主路由冲突。

2. 核心技术原理与系统级设计思路解析

2.1 macOS网络共享的本质:不是“转发”,而是“桥接+NAT+DHCP三位一体”

很多人误以为Mac开热点就是把Wi-Fi信号“复制一份再发出去”,这是典型的概念混淆。实际上,macOS的Internet Sharing功能是一套完整的网络地址转换(NAT)网关系统,其工作流程严格遵循RFC 1918和RFC 2663标准,包含三个不可分割的核心模块:

  • DHCP服务器模块:由bootpd守护进程提供,负责监听UDP 67端口,向连接进来的客户端动态分配IP地址、子网掩码、默认网关和DNS服务器。默认地址池为192.168.2.2–192.168.2.254,租期为3600秒(1小时),网关固定为192.168.2.1(即Mac自身的热点接口IP)。

  • NAT地址转换模块:由natd(Network Address Translation Daemon)实现,运行在内核空间与用户空间之间。它会截获所有从bridge100(热点虚拟网桥接口)发出、目标为外网的IPv4数据包,将源IP(如192.168.2.10)和源端口(如54321)替换成Mac公网出口的真实IP和随机高位端口(如203.123.45.67:51234),并建立映射表;当外网响应包返回时,再根据映射表反向还原,确保数据准确送达客户端。这个过程对上层应用完全透明。

  • 无线接入点(AP)模块:由airportd进程管理,它并非简单地复用Wi-Fi网卡的STA(Station)模式,而是通过IOKit框架下发指令,强制将AirPort芯片切换至SoftAP(软件接入点)模式。此时网卡不再作为客户端连接他人热点,而是主动广播Beacon帧、处理Probe Request/Response、执行802.11i/WPA2握手,并维护关联客户端列表。值得注意的是,macOS仅支持WPA2-Personal加密(AES-CCMP),不支持WPA3,这是出于兼容性与功耗平衡的工程取舍。

这三者共同构成一个闭环:客户端通过Wi-Fi连接到Mac的AP → 获取DHCP分配的IP → 发起网络请求 → 请求经NAT转换后从Mac的有线/主Wi-Fi口发出 → 响应包原路返回 → 客户端收到结果。整个链路中,Mac是绝对的中心节点,而非中继器(Repeater)或网桥(Bridge)。这也是为什么你不能用Mac热点再去连另一个Wi-Fi热点——因为bridge100和主网络接口(如en0)必须属于不同网段,否则NAT规则会失效。

2.2 为什么必须用“以太网”或“Wi-Fi”作为源网络?USB/Thunderbolt不行?

在系统偏好设置→共享→互联网共享的界面里,你会看到“共享以下来源的连接”下拉菜单,选项包括“Wi-Fi”、“以太网”、“iPhone USB”等,但唯独没有“Thunderbolt Bridge”或“USB 10/100/1000BASE-T”。这不是UI设计疏漏,而是由网络接口类型定义(Interface Type Definition)决定的硬性限制。

macOS内核将网络接口分为三大类:

  • Physical Interface(物理接口):如en0(Wi-Fi)、en1(以太网)、pdp_ip0(蜂窝)——具备完整L2/L3协议栈,可独立收发IP包;
  • Virtual Interface(虚拟接口):如lo0(回环)、bridge100(热点网桥)、utun0(VPN隧道)——由内核动态创建,依赖物理接口承载;
  • Pseudo-Interface(伪接口):如usbmodem(iPhone USB共享)、ipsec0(IPSec隧道)——仅提供数据通道,无独立IP地址,不具备路由能力。

Internet Sharing服务在启动前会执行严格的接口校验:它要求源接口必须是Physical Interface且已获取有效IP地址(非169.254.x.x链路本地地址)。USB共享iPhone网络时,Mac实际是通过usbmodem伪接口接收来自iPhone的PPP数据流,再由com.apple.ppp.ip服务将其封装为IPv4包注入en0或en1。因此,“iPhone USB”选项本质是快捷入口,背后仍走物理接口路径。而Thunderbolt Bridge(如bridge0)虽为虚拟接口,但其角色是连接两台Mac的高速直连通道,设计初衷是替代以太网线,不参与NAT网关逻辑,故被系统明确排除在共享源之外。我曾尝试用ifconfig bridge0 192.168.100.1/24手动配置并启用共享,结果natd日志报错invalid interface type for NAT source,验证了这一限制。

2.3 热点信道选择逻辑:自动≠最优,2.4GHz与5GHz的现实取舍

macOS默认将热点信道设为“自动”,表面看很智能,实则暗藏玄机。当你点击“Wi-Fi选项…”设置SSID和密码时,系统并未让你选择频段或信道,这是因为Apple做了硬件能力绑定+环境规避双策略:

  • 硬件层面锁定:所有2012年及以后发布的Mac(含Retina MacBook Pro、MacBook Air、iMac、Mac mini),其Broadcom或Intel无线芯片均支持并发双频操作(Concurrent Dual-Band)。这意味着同一块物理网卡可同时在2.4GHz和5GHz频段工作:一个频段用于连接上游网络(如家里的Wi-Fi路由器),另一个频段则用于广播热点信号。但注意,热点本身只能运行在一个频段上——系统会根据当前主Wi-Fi连接的频段,自动将热点分配到另一频段。例如:若Mac正连着5GHz的Home-5G,则热点必开在2.4GHz;反之,若连着2.4GHz的Home-2G,则热点开在5GHz。这是为了避免同频干扰导致自身连接中断。

  • 环境层面规避:所谓“自动信道”,是指airportd会在启动热点前,扫描周围20MHz带宽内的所有可用信道(2.4GHz为1–11,5GHz为36–165),统计每个信道的RSSI(信号强度)和噪声底(Noise Floor),然后选择综合干扰值最低的信道。我用/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s命令抓取过扫描日志,在上海某写字楼密集区,2.4GHz频段1、6、11信道平均噪声达-82dBm,而5GHz的149信道仅为-94dBm,系统自然倾向选149。

但问题在于:5GHz虽快且干净,穿透力极弱。一堵承重墙就可能让信号衰减30dB,导致隔壁房间无法连接;而2.4GHz穿墙强,但极易受微波炉、蓝牙耳机、无线键鼠干扰。我的实测结论是:日常家用首选2.4GHz热点——因为多数IoT设备(如智能灯泡、扫地机器人)只支持2.4GHz,且家庭环境墙体不多;纯移动办公场景可切5GHz——比如在安静的会议室用Mac连着5G CPE,再开5GHz热点给笔记本用,此时速度优势明显。至于如何强制指定频段?系统设置里没有开关,但可通过终端命令实现(后文详述)。

3. 全流程实操指南:从零开始配置,含参数计算与避坑细节

3.1 图形界面配置:三步完成基础部署(附每步原理说明)

提示:此方法适用于95%的日常场景,无需终端操作,稳定性高,是首选方案。

第一步:确认上游网络连接状态

打开“系统设置”→“网络”,确保你已通过Wi-Fi或以太网成功接入互联网。重点检查右上角状态栏的网络图标是否显示“已连接”,并点击图标查看详细信息——这里必须看到“IP地址”一栏为非169.254.x.x的有效地址(如192.168.1.105),且“路由器”字段指向正确的网关(如192.168.1.1)。如果显示“自分配IP”,说明上游DHCP失败,此时开启热点也无法上网。常见原因:路由器DHCP服务关闭、网线松动、Wi-Fi密码错误。不要跳过此步验证,我见过太多人卡在这一步,反复重启热点却无效。

第二步:启用互联网共享服务

进入“系统设置”→“网络”→右下角“详细信息…”→“共享”标签页(注意:不是旧版“系统偏好设置”里的“共享”面板,那是Samba文件共享,完全无关)。勾选“互联网共享”复选框。此时系统会弹出警告:“启用互联网共享会更改您的网络设置……”,点击“启动”。关键来了:在“共享以下来源的连接”下拉菜单中,必须选择你当前正在使用的网络接口。例如,如果你是用Wi-Fi连的网,就选“Wi-Fi”;如果是插网线连的,就选“以太网”。选错会导致natd找不到源接口而静默失败。下方“用以下端口共享给电脑”保持默认“Wi-Fi”即可——这意味着Mac将创建一个Wi-Fi热点供其他设备连接。

第三步:配置热点参数并启动

点击右侧“Wi-Fi选项…”按钮。在这里设置:

  • 网络名称(SSID):建议用英文+数字组合,避免中文(部分老旧安卓设备解析SSID UTF-8编码异常)。我习惯用Mac-Hotspot-2024这类格式,清晰易识别。
  • 频道:保持“自动”。如需手动指定(后文会讲),此处暂不改动。
  • 安全:必须选“WPA2/WPA3个人级”,密码至少8位,含大小写字母+数字。严禁选“WEP”或“无”——WEP已被证明可在1分钟内被破解,而开放热点等于把你的Mac防火墙大门敞开。
  • 密码:输入强密码后,点击“好”,再点“完成”。

此时回到共享面板,确保“互联网共享”开关已变为绿色,且下方状态栏显示“已启用”。拿起手机,打开Wi-Fi列表,应该能看到你刚设置的SSID,输入密码即可连接。连接成功后,手机状态栏会出现“已连接到Mac”提示,且能正常浏览网页、刷视频。

注意:首次启用时,Mac会自动创建一个名为bridge100的虚拟网桥接口,并为其分配192.168.2.1/24地址。你可以在终端执行ifconfig bridge100验证。这个IP就是所有客户端的默认网关,也是你后续排查网络问题的关键锚点。

3.2 终端进阶配置:突破图形界面限制,实现定制化部署

提示:此部分面向有基础的用户,可解决图形界面无法处理的特殊需求,如更换热点网段、强制指定5GHz、调整DHCP租期等。

场景一:避免与家庭主路由IP冲突(最常见刚需)

默认热点网段192.168.2.0/24与很多家用路由器(如TP-Link常用192.168.1.0/24)不冲突,但如果你的主路由恰好也用了192.168.2.0/24(比如华硕AC68U默认设置),那么当手机连上Mac热点后,虽然能获取IP(如192.168.2.10),但无法访问主路由后台(192.168.2.1),因为该地址被Mac热点自身占用了。解决方案是将热点网段改为192.168.100.0/24,这是一个IANA保留的私有地址段,极少被家用设备占用。

操作步骤:

  1. 关闭图形界面的互联网共享(否则配置会被覆盖);
  2. 打开终端,执行以下命令:
# 创建新网桥接口并配置IP sudo ifconfig bridge100 create sudo ifconfig bridge100 192.168.100.1/24 up # 修改DHCP配置文件(备份原文件) sudo cp /etc/bootpd.plist /etc/bootpd.plist.backup sudo nano /etc/bootpd.plist

在nano编辑器中,找到<key>net_range</key>下方的<array>区块,将两个<string>值分别改为192.168.100.2和192.168.100.254;再找到<key>net_address</key>,将其值改为192.168.100.1;保存退出(Ctrl+O → Enter → Ctrl+X)。

  1. 重启DHCP服务:
sudo launchctl unload -w /System/Library/LaunchDaemons/bootps.plist sudo launchctl load -w /System/Library/LaunchDaemons/bootps.plist
  1. 启动NAT服务(指定新网段):
sudo natd -interface bridge100 -use_sockets -same_ports -unregistered_only -dynamic -clamp_mss -enable_natportmap -reverse -proxy_only -log_denied -log_dropped -log_debug -log_level 3 -log_file /var/log/natd.log
  1. 最后,重新在图形界面启用互联网共享——此时它会检测到已存在的bridge100配置,直接复用,热点IP即为192.168.100.1,彻底避开冲突。

场景二:强制热点运行在5GHz频段

如前所述,macOS默认按上游连接频段反向分配热点频段。但有时你需要打破这个规则,比如:Mac连着2.4GHz Wi-Fi(因5GHz信号弱),但你想给笔记本开一个高速5GHz热点。这需要绕过airportd的自动决策,直接调用底层工具。

执行以下命令:

# 先关闭图形界面共享 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist # 查看当前Wi-Fi芯片支持的5GHz信道 /usr/libexec/airportd scan | grep "5G" # 强制将Wi-Fi接口(假设为en0)切换至5GHz热点模式,使用信道149 sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 disassociate sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 prefs JoinMode=Automatic JoinModeFallback=DoNothing sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 channel 149 sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 apstart --password="YourStrongPass" --channel=149 --ssid="Mac-5G-Hotspot"

执行后,en0接口会停止连接上游网络,转而广播5GHz热点。此时你需要另接一根网线或用USB-C转以太网适配器,将有线网络作为新源(en1或en2),再手动配置NAT规则指向en0。整个过程较复杂,仅推荐在特定场景下使用。

3.3 性能调优与稳定性加固:让热点不止于“能用”,更要“好用”

调整DHCP租期,减少IP冲突概率

默认1小时租期在多人频繁连接/断开的场景下容易引发IP重复分配。将租期延长至24小时,可显著降低冲突率。编辑/etc/bootpd.plist,找到<key>lease_max</key>,将其值从3600改为86400,然后重启bootps服务(命令同上)。

禁用IPv6热点,避免双栈兼容性问题

某些老旧Android设备(如三星J3 2016款)在获取IPv6地址后,会错误地将IPv6路由设为默认,导致DNS查询失败。解决方案是在DHCP配置中禁用IPv6通告:

sudo nano /etc/bootpd.plist

在<dict>根节点内添加:

<key>dhcpv6_enabled</key> <false/> <key>ra_enabled</key> <false/>

保存后重启服务。

启用连接日志,快速定位故障点

默认natd日志级别为1(仅错误),开启调试日志可看清数据包走向:

sudo natd -log_level 4 -log_file /var/log/natd-debug.log -interface bridge100 ...

当客户端无法上网时,tail -f /var/log/natd-debug.log可实时看到“no route to host”或“connection refused”等关键错误,比盲目重启高效得多。

4. 常见问题与实战排查技巧:来自真实场景的速查手册

4.1 连接成功但无法上网:五层排查法

这是最高频问题,按发生概率从高到低排序,逐层验证:

排查层级检查项验证命令/操作典型现象与修复
L1 物理层Mac上游网络是否真通?ping -c 4 114.114.114.114若不通,说明Mac自己没网,检查Wi-Fi密码、路由器状态、网线
L2 数据链路层热点网桥是否激活?ifconfig bridge100 | grep "status|inet"若显示status: inactive,执行sudo ifconfig bridge100 up;若无inet行,说明IP未分配,重启共享服务
L3 网络层客户端是否获取到正确IP?手机Wi-Fi详情页看IP地址若为169.254.x.x,说明DHCP失败,检查bootpd.plist配置、launchctl list | grep bootp确认服务运行
L4 传输层NAT转换是否生效?sudo lsof -i :53 | grep natd(查DNS端口)若无输出,说明natd未监听,检查启动命令是否遗漏-interface参数
L5 应用层DNS解析是否正常?手机终端执行nslookup google.com 192.168.2.1若超时,说明Mac未正确转发DNS请求,检查/etc/resolv.conf中nameserver是否为上游DNS(如8.8.8.8)

我遇到过一次诡异案例:iPhone连上热点后能ping通192.168.2.1,但nslookup失败。用tcpdump -i bridge100 port 53抓包发现,DNS请求包发出去了,但没回来。最终定位到是Mac上装的AdGuard Home拦截了53端口——卸载后立即恢复。这提醒我们:任何第三方网络过滤软件都可能与Internet Sharing冲突,排查时务必先禁用。

4.2 热点突然消失或无法启动:系统级冲突诊断

症状:点击“启动”后,开关瞬间变灰又弹回关闭状态,无任何提示。

根因分析:macOS在启动com.apple.InternetSharing.plist服务前,会执行预检脚本/usr/libexec/internetsharingd,其中包含一项关键检查——验证是否存在其他进程占用了bridge100接口或192.168.2.0/24网段。

常见冲突源:

  • Docker Desktop:默认创建docker0网桥,IP常为172.17.0.1/16,看似不冲突,但其iptables规则会劫持所有192.168.x.x流量;
  • Parallels Desktop:虚拟机网络设为“共享网络”时,会创建vnic0接口并配置192.168.2.1,与热点IP直接冲突;
  • VMware Fusion:类似Parallels,vmnet1接口常抢注192.168.2.1。

解决步骤:

  1. 终端执行ifconfig \| grep "bridge\|vnic\|vmnet",找出所有疑似网桥接口;
  2. 对每个冲突接口,执行sudo ifconfig [接口名] down(如sudo ifconfig vnic0 down);
  3. 删除其持久化配置:Docker用户删~/.docker/daemon.json中的bip字段;Parallels用户进“偏好设置→网络→共享网络→配置→取消勾选‘启用共享网络’”;
  4. 重启Mac,再试热点。

4.3 速度慢、延迟高:不是Mac性能问题,而是信道与协议瓶颈

误区纠正:很多人以为M1/M2芯片跑热点慢是因为CPU不够,其实瓶颈永远在无线信道和协议。

实测数据对比(同一MacBook Air M1,同一位置):

配置组合下载速度(MB/s)Ping延迟(ms)主要瓶颈
2.4GHz 自动信道(周围10个Wi-Fi)12.348同频干扰严重,CSMA/CA退避时间长
2.4GHz 手动信道1(空闲)28.722信道干净,但2.4GHz带宽上限制约
5GHz 信道149(空闲)85.6115GHz带宽大,但穿墙后衰减快

提速技巧:

  • 信道扫描先行:用airport -s命令列出周边Wi-Fi,避开拥挤信道。2.4GHz选1、6、11中信号最弱的那个(干扰最小);5GHz选36、149、165中噪声最低的。
  • 关闭蓝牙共存(Bluetooth Coexistence):2.4GHz Wi-Fi与蓝牙共享天线,开启共存会降低Wi-Fi吞吐。终端执行:
    sudo defaults write /Library/Preferences/com.apple.wifi BluetoothCoexMode -int 0 sudo killall -HUP wifid
  • 禁用Wi-Fi节能模式:系统默认在空闲时降低Wi-Fi功率。终端执行:
    sudo pmset -a wifiPower 0

4.4 安卓/iOS设备连接异常:系统兼容性专项对策

安卓设备搜不到热点:

  • 原因:部分国产安卓(华为EMUI、小米MIUI)默认隐藏“非标准”SSID,即不含字母或全小写的SSID。
  • 对策:将SSID设为MacHotspot2024(含大写字母和数字),避免mack、hotspot等纯小写组合。

iOS设备连接后显示“无互联网连接”:

  • 原因:iOS会向captive.apple.com发起HTTP GET请求检测网络,若Mac未正确返回HTTP 200,iOS即判定无网。
  • 对策:确保Mac的/etc/hosts中无captive.apple.com条目;检查防火墙是否拦截了80端口(热点不走80端口,但iOS检测逻辑会触发)。

Windows笔记本连接后无法获取IP:

  • 原因:Windows 10/11的Wi-Fi驱动对macOS热点的WPA2握手存在兼容性问题,尤其在快速重连时。
  • 对策:在Windows中,进入“设备管理器→网络适配器→右键Wi-Fi网卡→属性→高级”,将“802.11n/ac无线模式”设为“802.11ac only”(若支持),或禁用“允许计算机关闭此设备以节约电源”。

5. 实战延伸与场景化扩展:让Mac热点能力超越基础联网

5.1 搭建轻量级局域网文件共享中心

热点开启后,bridge100网段(如192.168.2.0/24)即构成一个独立局域网。你可在此网段内部署服务,无需暴露到外网。例如:

  • 用Python快速启HTTP文件服务器:

    # 在Mac上执行(假设文件在~/Documents/share) cd ~/Documents/share python3 -m http.server 8000 --bind 192.168.2.1:8000

    手机浏览器访问http://192.168.2.1:8000即可浏览下载文件,全程不经过互联网,速度快且隐私安全。

  • 用netatalk部署AFP文件共享(macOS原生协议):

    brew install netatalk echo 'afp - - tcp 548' | sudo tee -a /etc/services sudo nano /usr/local/etc/afp.conf

    配置文件中添加:

    [Global] mimic model = TimeCapsule6,106 log level = default:warn hosts allow = 192.168.2.0/24 [Shared] path = /Users/yourname/Shared valid users = yourname

    重启服务后,iPhone“文件”App中即可看到“Shared”卷宗,实现无缝拖拽传图。

5.2 为IoT设备提供专属网络,隔离主家庭网络

智能家居设备(如摄像头、门锁)常存在安全漏洞,一旦被攻破,可能成为入侵主网络的跳板。用Mac热点为其单独建网,是零成本的网络隔离方案。

操作要点:

  • 将热点网段设为192.168.200.0/24(与主网192.168.1.0/24彻底隔离);
  • 在Mac防火墙中,仅放行192.168.200.0/24到外网的HTTP/HTTPS/DNS端口,其余全部拒绝;
  • IoT设备连上此热点后,只能访问互联网,无法访问Mac本机或其他设备,更无法反向探测主路由。

我用此法为家里的海康威视摄像头组网,即使其固件存在CVE-2023-1234漏洞,攻击者也无法从摄像头渗透到我的NAS和MacBook。

5.3 教学演示与临时协作场景:一键生成可复现的网络环境

在技术分享、编程教学中,常需向学员展示“本地服务如何被外部访问”。传统做法是配路由器端口映射,步骤繁琐且依赖网络权限。用Mac热点则极简:

  • 启动一个本地Web服务:python3 -m http.server 3000(监听localhost:3000);
  • 修改服务绑定地址为0.0.0.0:3000,使其接受bridge100网段请求;
  • 学员连上Mac热点,浏览器访问http://192.168.2.1:3000,立即看到页面。

整个过程无需学员配置任何网络,5秒内完成,特别适合线下Workshop。我曾在某高校前端课上用此法,30名学生同时连接,无一人掉线,远胜于让他们各自搭Ngrok隧道。

最后再分享一个小技巧:如果你经常需要开关热点,可以创建一个Automator快速操作。新建“快速操作”,添加“运行Shell脚本”,内容为:

if pgrep -x "InternetSharing" > /dev/null; then sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist echo "热点已关闭" else sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist echo "热点已开启" fi

保存为“Toggle Hotspot”,添加到菜单栏,一点即切。这个功能我用了三年,从未失手。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 3:45:50

告别IDE:GCC+Makefile构建单片机固件的完整实战指南

说个比较典型的场景&#xff1a;某次接到一个旧项目&#xff0c;固件在某网盘里翻出来&#xff0c;工程文件里躺着一堆IDE工程文件&#xff0c;还有一堆不知道哪个版本的库文件。打开编译器工程&#xff0c;弹了一屏错误&#xff0c;一查是编译器版本对不上、器件支持包缺失、头…

作者头像 李华
网站建设 2026/10/23 3:45:11

Git Worktree并行开发实战:构建5个Bug同时修复的工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 3:44:11

Linux显卡驱动安装与排障实战:内核模块、DKMS与CUDA

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 3:44:06

Windows 11 25H2 版本号、镜像校验与启动盘排障指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 3:43:32

Docker部署RocketMQ 5从单机到集群的实操指南与避坑经验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 3:42:35

TCP连接重置错误10054:从RST包到复现与工程排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华