mcpField
L
linux-networking

linux-networking

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

关于 linux-networking

面向 Linux 网络管理任务的技能,涵盖 IP、DNS、防火墙、VPN 和实例间路由配置,并强调先验证配置、再应用和诊断。

主要功能

  1. 01使用 Netplan 配置 IP
  2. 02管理 UFW 和 Nftables 防火墙
  3. 03配置 DNS 解析
  4. 04设置 Wireguard 或 Tailscale VPN
  5. 05配置实例间路由

适用场景

  1. 01为 Ubuntu 或 Debian 服务器设置网络
  2. 02限制服务器端口并保留 SSH 访问
  3. 03为网络实例建立 VPN 连接
  4. 04排查容器环境中的 DNS 问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill linux-networking

安装后在 Claude Code 中输入/linux-networking确认已加载。

详细介绍

linux-networking

用途

此技能用于处理 Linux 网络任务,包括使用 Netplan 配置 IP、通过 UFW 或 Nftables 管理防火墙、设置 DNS、配置 Wireguard 或 Tailscale VPN,以及在 System76 等系统上进行实例间路由。

适用场景

在 Ubuntu/Debian 系统上设置服务器、使用防火墙保护应用、通过 VPN 建立安全的远程访问、解决容器化环境中的 DNS 问题,或优化数据中心或边缘设备中联网实例之间的路由时,可使用此技能。

主要功能

  • 使用 Netplan YAML 文件配置静态/动态 IP 地址(例如,将接口设置为 DHCP 或静态 IP)。
  • 使用 UFW 管理简单的防火墙规则(例如,允许/拒绝端口),或使用 Nftables 通过表和链进行高级数据包过滤。
  • 使用 systemd-resolved 等工具或编辑 /etc/resolv.conf 来处理 DNS 解析。
  • 设置 VPN:使用 Wireguard 和 wg-quick 建立点对点隧道,或使用 Tailscale 通过密钥认证自动组建网状网络。
  • 在 System76 硬件上实现实例间路由,例如设置 OSPF 或静态路由,以便多台设备互相通信。

使用模式

始终使用 sudo 运行命令以获取 root 权限。运行脚本前,检查 NetworkManager 或 systemd-networkd 等服务是否处于活动状态。使用环境变量保存敏感数据,例如在执行 Tailscale 操作前运行 export TAILSCALE_API_KEY=$SERVICE_API_KEY。在 AI 回复中,按顺序组织任务:先验证配置文件,然后应用更改,最后使用诊断工具进行验证。自动化时,将命令封装在带有错误检查的 bash 脚本中,例如使用 set -e 在失败时退出。

常用命令/API

  • Netplan 配置:编辑 /etc/netplan/01-netcfg.yaml,写入类似 network: version: 2 renderer: networkd ethernets: eno1: dhcp4: true 的内容,然后运行 sudo netplan apply。
  • UFW 防火墙:使用 sudo ufw enable 启用,使用 sudo ufw allow 22/tcp 等命令添加规则,并使用 sudo ufw status verbose 查看状态。
  • Nftables 防火墙:从 /etc/nftables.conf 加载规则(例如,table ip filter { chain input { type filter hook input priority 0; policy accept; } }),然后使用 sudo nft -f /etc/nftables.conf 应用。
  • DNS 管理:编辑 /etc/resolv.conf(例如,添加 nameserver 8.8.8.8),或使用 systemd-resolve --set-dns=8.8.8.8 eth0。
  • Wireguard VPN:使用 wg genkey | tee privatekey | wg pubkey > publickey 生成密钥,使用 [Interface] PrivateKey = <key> Address = 10.0.0.1/24 配置 /etc/wireguard/wg0.conf,然后使用 sudo wg-quick up wg0 启动。
  • Tailscale VPN:使用 tailscale up --authkey $TAILSCALE_API_KEY 进行身份验证,然后通过 Tailscale API 管理对等设备(例如,GET https://api.tailscale.com/api/v2/devices)。
  • 实例间路由:使用 sudo ip route add 192.168.1.0/24 via 10.0.0.1 添加静态路由,或在 System76 上使用 quagga 配置 OSPF,并在 vtysh 中运行 router ospf 等命令。

集成说明

通过使用 ansible.builtin.shell 等模块运行 Netplan 命令,或使用 community.general.ufw 管理防火墙规则,即可与 Ansible 等编排工具集成。对于 Tailscale,通过环境变量(例如,$TAILSCALE_API_KEY)传递 API 密钥,并使用其 HTTP API 管理设备。Wireguard 可与 systemd 集成,通过 sudo systemctl enable wg-quick@wg0 启用服务。为确保与 Netplan 兼容,请禁用 NetworkManager(例如,sudo systemctl stop NetworkManager)。在容器中配置 DNS 时,可通过挂载 /etc/resolv.conf 与 systemd-resolved 连接。应用更改前,始终使用 nmcli 或 ip a 等工具验证配置。

错误处理

在命令前加上 sudo 检查权限错误;如果 netplan apply 因“Invalid YAML”失败,请使用 yamllint /etc/netplan/01-netcfg.yaml 验证文件。对于 UFW/Nftables,使用 sudo ufw status 或 sudo nft list ruleset 调试规则;常见问题包括端口冲突,可使用 ss -tuln 检查并解决。VPN 错误:如果 Wireguard 无法启动,请使用 wg show 验证密钥,并使用 journalctl -u wg-quick@wg0 检查日志;对于 Tailscale,如果身份验证失败,请重新导出 $TAILSCALE_API_KEY 并重试。路由问题:使用 ip route show 进行诊断;如果路由无法传播,请使用 sudo systemctl restart networking 重启网络。始终在脚本中使用 >> error.log 2>&1 记录输出。

具体使用示例

  1. 在 Ubuntu 上设置基本防火墙:首先,使用 sudo ufw enable 启用 UFW。然后,允许 SSH:sudo ufw allow 22。验证:sudo ufw status。这样既能保护服务,又允许远程访问。
  2. 配置 Wireguard VPN 隧道:在 /etc/wireguard/wg0.conf 创建配置文件,内容为 [Interface] Address = 10.0.0.1/24 PrivateKey = <generated_key>。启动隧道:sudo wg-quick up wg0。测试连接:ping 10.0.0.2。这样即可在各实例之间建立安全连接。

图关系

  • 与集群相关:linux
  • 通过标签连接:networking(直接链接)、linux(集群父级)、firewall(子技能)、vpn(依赖项)、tailscale(特定工具)
  • 出向边:与 linux-security 集成以提供更全面的保护;链接到 linux-storage,以支持网络挂载卷
  • 入向边:依赖 linux-basics 提供核心操作系统命令;devops-tools 将其用于自动化工作流

评论

支持 Markdown