关于 linux-networking
面向 Linux 网络工程师的网络配置与排障技能,涵盖防火墙、路由、DNS 和数据包诊断,并提供适用于实体、虚拟及容器环境的实践指导。
主要功能
- 01配置 nftables 与防火墙规则
- 02设置策略路由与端口转发
- 03诊断 DNS 解析
- 04使用 tcpdump 捕获流量
- 05创建网络命名空间
适用场景
- 01排查 Linux 主机网络连接问题
- 02配置隔离环境和防火墙
- 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