mcpField
M
macos-networking

macos-networking

github.com/alphaonedev云与 DevOps45 次安装
代码仓库

关于 macos-networking

macos-networking 是用于自动配置和排查 macOS 网络的技能,借助系统命令行工具及 Tailscale 管理 WiFi、DNS、代理、VPN 和防火墙。

主要功能

  1. 01管理 WiFi 和以太网
  2. 02配置 DNS 服务器
  3. 03设置 HTTP 和 SOCKS 代理
  4. 04执行 Tailscale VPN 操作
  5. 05管理 pfctl 防火墙规则

适用场景

  1. 01扫描并连接 WiFi 网络
  2. 02配置 DNS 或代理设置
  3. 03设置 Tailscale VPN
  4. 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 和 airport CLI 管理 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”(集成域名解析技能)。

评论

支持 Markdown