关于 macos-networking
macos-networking 是用于自动配置和排查 macOS 网络的技能,借助系统命令行工具及 Tailscale 管理 WiFi、DNS、代理、VPN 和防火墙。
主要功能
- 01管理 WiFi 和以太网
- 02配置 DNS 服务器
- 03设置 HTTP 和 SOCKS 代理
- 04执行 Tailscale VPN 操作
- 05管理 pfctl 防火墙规则
适用场景
- 01扫描并连接 WiFi 网络
- 02配置 DNS 或代理设置
- 03设置 Tailscale VPN
- 04加载或修改防火墙规则
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill macos-networking安装后在 Claude Code 中输入/macos-networking确认已加载。
详细介绍
macos-networking
用途
此技能提供用于管理 macOS 网络组件的工具,包括 WiFi、以太网、DNS、代理、Tailscale VPN 和 pfctl 防火墙,可自动化或协助完成网络配置任务。
适用场景
在处理 macOS 特定的网络操作时使用此技能,例如排查连接问题、配置安全 VPN、管理应用的 DNS,或在脚本和用户交互中强制执行防火墙规则。
主要功能
- 通过
networksetup和airportCLI 管理 WiFi 和以太网,用于连接、扫描或切换网络。 - 使用
networksetup配置 DNS,例如设置 Google DNS(如 8.8.8.8)。 - 使用
networksetup设置 HTTP/SOCKS 代理,包括身份验证。 - 集成 Tailscale VPN 以实现点对点网络连接,需要 Tailscale CLI 和身份验证密钥。
- 通过
pfctl控制防火墙,用于加载规则集、启用/禁用防火墙以及监控流量。 - Airport CLI(macOS 的组成部分)用于无线网络诊断,例如扫描网络。
- 特定工具:大多数设置使用
networksetup,VPN 使用tailscale,数据包过滤使用pfctl。
使用模式
在需要时始终使用 sudo 提权运行命令。对于脚本,先检查是否已安装 tailscale 等工具。使用环境变量存储敏感数据,例如在运行 Tailscale 命令前执行 export TAILSCALE_AUTH_KEY=$SERVICE_API_KEY。通过生成用户可复制粘贴的 bash 片段与 AI 响应集成。
示例 1:切换到特定 WiFi 网络。
- 使用此模式:首先通过
airport en0 scan扫描网络,然后使用networksetup -setairportnetwork en0 SSID password连接。
示例 2:设置 Tailscale VPN。
- 进行身份验证并连接:将身份验证密钥导出为
export TAILSCALE_AUTH_KEY=$SERVICE_API_KEY,然后运行tailscale up --authkey=$TAILSCALE_AUTH_KEY。
常用命令/API
在脚本或响应中使用以下确切命令。所有命令都需要 macOS 环境。
- WiFi:使用
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 scan扫描网络。连接:sudo networksetup -setairportnetwork en0 "NetworkName" "Password"。 - 以太网:启用/禁用:
sudo networksetup -setnetworkserviceenabled Ethernet on/off。 - DNS:为 Wi-Fi 设置服务器:
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4。刷新缓存:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。 - 代理:设置 HTTP 代理:
sudo networksetup -setwebproxy Wi-Fi proxy.example.com 8080。使用身份验证启用代理:sudo networksetup -setwebproxyusername Wi-Fi username -setwebproxypassword Wi-Fi password。 - Tailscale VPN:如有需要,通过
brew install tailscale安装。进行身份验证:tailscale up --authkey=$TAILSCALE_AUTH_KEY。状态:tailscale status --json。 - pfctl 防火墙:加载规则:
sudo pfctl -f /etc/pf.conf。启用:sudo pfctl -e。阻止流量:在 /etc/pf.conf 中添加类似block in on en0 proto tcp from any to any port 80的规则,然后重新加载。
WiFi 连接代码片段:
#!/bin/bash
network=$(airport en0 scan | grep -o 'SSID: .\+' | cut -d' ' -f2-)
echo "Available networks: $network"
sudo networksetup -setairportnetwork en0 "$1" "$2"
Tailscale 设置代码片段:
#!/bin/bash
export TAILSCALE_AUTH_KEY=$SERVICE_API_KEY
tailscale up --authkey=$TAILSCALE_AUTH_KEY
tailscale status
集成说明
通过将命令封装在 AI 生成的脚本中进行集成。对于 Tailscale,请确保通过 $TAILSCALE_AUTH_KEY 传递身份验证密钥,以避免硬编码。检查依赖项:使用 command -v tailscale >/dev/null 2>&1 || brew install tailscale。对于 pfctl,直接或通过脚本编辑 /etc/pf.conf,然后重新加载。避免与系统服务冲突;使用 launchctl 管理相关守护进程,例如 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.pfctl.plist。请先在非生产环境中测试。
错误处理
对所有需要 root 权限的命令使用 sudo 处理权限;通过检查退出码捕获失败,例如,如果 $? -ne 0,则记录“命令失败,请检查 sudo 访问权限。”对于网络错误,使用 ping 验证连接后再继续。Tailscale 身份验证失败:检查是否已设置 $TAILSCALE_AUTH_KEY 且其有效;使用 tailscale logout && tailscale up 重试。pfctl 问题:如果出现“no ALTQ support”,请通过 kextstat | grep pf 确认已加载内核扩展。常见问题:未找到接口错误(例如,缺少 en0)——使用 ifconfig -l 列出可用接口并调整命令。
图关系
- 与集群“macos”相关(例如,与 macos-file-system、macos-security 技能共享依赖项)。
- 按标签关联:“networking”(关联到通用网络技能)、“vpn”(关联到远程访问技能)、“firewall”(关联到安全监控技能)、“dns”(集成域名解析技能)。