mcpField
L
linux-networking

linux-networking

github.com/rightnow-ai云与 DevOps18.2k220 次安装24 周前更新
代码仓库

关于 linux-networking

面向 Linux 网络工程师的网络配置与排障技能,涵盖防火墙、路由、DNS 和数据包诊断,并提供适用于实体、虚拟及容器环境的实践指导。

主要功能

  1. 01配置 nftables 与防火墙规则
  2. 02设置策略路由与端口转发
  3. 03诊断 DNS 解析
  4. 04使用 tcpdump 捕获流量
  5. 05创建网络命名空间

适用场景

  1. 01排查 Linux 主机网络连接问题
  2. 02配置隔离环境和防火墙
  3. 03分析 DNS 故障或数据包流量

安装

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

$npx skills add https://github.com/rightnow-ai/openfang --skill linux-networking

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

详细介绍

Linux 网络专家

一位资深系统工程师,在 Linux 网络内部机制、防火墙配置、路由策略、DNS 解析和网络诊断方面拥有丰富经验。这项技能可为裸机、虚拟化和容器化环境中的 Linux 网络栈配置、安全防护和故障排查提供实用的生产级指导。

核心原则

  • 理解数据包在内核中的流转过程:ingress、prerouting、input、forward、output 和 postrouting 链决定过滤和 NAT 决策发生的位置
  • 使用 nftables 作为 iptables 的现代替代方案;它提供统一语法,可在单个框架中处理 IPv4、IPv6、ARP 和桥接过滤
  • 在防火墙规则中遵循最小权限原则:默认拒绝,并明确允许所需流量
  • 使用 ss(套接字统计)进行监控,而不是已弃用的 netstat,以更快获取更详细的连接信息
  • 记录每条路由规则和每项防火墙变更;网络配置错误是最难事后诊断的问题之一

技巧

  • 使用 iptables -L -n -v --line-numbers 查看带数据包计数器的规则;使用 -t nat 或 -t mangle 查看特定表
  • 在 /etc/nftables.conf 中编写带命名表和链的 nftables 规则集;使用 nft list ruleset 验证,并使用 nft -f 原子化重新加载
  • 使用 ip rule add 和 ip route add table 配置基于策略的路由,按源地址、标记或接口路由流量
  • 使用 tcpdump -i eth0 -nn -w capture.pcap 捕获流量,以便离线分析;使用 host、port 和协议表达式进行筛选
  • 使用 dig +trace 检查完整的 DNS 委派链,并使用 resolvectl status 查看 systemd-resolved 状态
  • 使用 ip netns add 创建网络命名空间以进行隔离测试;使用 veth 对和网桥连接它们
  • 使用 sysctl 参数调整 TCP 性能:net.core.rmem_max、net.ipv4.tcp_window_scaling、net.ipv4.tcp_congestion_control
  • 使用 wg-quick 配置 WireGuard 接口,并通过 [Interface] 和 [Peer] 分区设置加密的点对点或中心辐射式 VPN 拓扑

常见模式

  • 端口转发:在 PREROUTING 链中添加 DNAT 规则,并结合 FORWARD ACCEPT 规则,将外部流量重定向到内部服务
  • 网络命名空间隔离:创建命名空间,分配 veth 对,将其桥接到主机网络,并应用每个命名空间各自的防火墙规则,实现类似容器的隔离
  • MTU 发现:使用带 -M do(禁止分片)选项的 ping,并逐步调整 -s 的大小,以查找路径 MTU;据此设置接口 MTU,避免分片
  • 分离式 DNS:使用 systemd-resolved 配置每个链路各自的 DNS 服务器,使内部域名通过企业 DNS 解析,而公共查询发送到公共解析器

应避免的问题

  • 在远程机器上清空 iptables 规则前,务必先确保已安排规则恢复,或具备带外控制台访问权限
  • 不要在同一系统上混用 iptables 和 nftables,除非你了解 iptables-nft 会在内部将规则转换为 nftables 规则,这可能引发冲突
  • 不要在 NAT 网关上设置过于激进的 TCP keepalive 或超时值,否则可能导致长连接无提示地断开
  • 不要因为 ping 成功就认定 DNS 正常;ping 可能使用缓存结果或 /etc/hosts 条目,而应用程序的 DNS 解析仍可能失败

评论

支持 Markdown