我的博客

a

Linux 网络学习笔记(软路由 / 转发 / NAT / 抓包)

原则:动手实操 > 书 > 视频课。手头 Ubuntu + OpenWrt 就是实验台。

一、一、资源清单(按阅读顺序)

  1. LARTC HOWTO(当前最需要:策略路由、ip rule、路由表、rp_filter、NAT、多网卡转发、tc)
  2. Wireshark 抓包(看懂 ICMP、NAT 前后包变化,验证 MASQUERADE 是否改写 IP)
  3. 《TCP/IP详解 卷1:协议》:当字典查,遇不懂的协议翻对应章节,不通读。无免费正版在线版,建议买实体书(网上的 PDF 多为盗版,勿搜)。
  4. Netfilter 官方 HOWTO(iptables/nftables、NAT、POSTROUTING、MASQUERADE):https://netfilter.org/documentation/HOWTO/packet-filtering-HOWTO.html
  5. tcpdump 官方手册:https://www.tcpdump.org/manpages/tcpdump.1.html

二、二、工具

工具用途
tcpdumpUbuntu 命令行抓包,最重要
iproute2ip route / ip rule / ip addr(替代 ifconfig)
iptables / nftables防火墙、NAT、MASQUERADE
Wireshark图形化抓包分析(Ubuntu 安装,或 Windows 打开抓包文件)

常用命令:

sudo tcpdump -i eno1 icmp    # 抓 eno1 上的 ping 包

方法:每改一次配置就同时抓包,对比数据包变化(例:开关 MASQUERADE,看源 IP 是否被改写)。

三、三、实操练习(基于现有 Ubuntu + OpenWrt)

  • ip route / ip rule:观察路由匹配
  • tcpdump 分别抓不同网卡,对比包
  • 开 / 关 MASQUERADE、rp_filter,抓包看 IP 变化和丢包现象

排错固定流程:

  1. ip route 看路由
  2. ip route get x.x.x.x from 源IP 看匹配结果
  3. tcpdump 看包有没有收到、有没有发出
  4. 检查 iptables

阶段目标:

  1. 看懂路由,会写静态路由、策略路由
  2. 会 tcpdump,看懂 ICMP、IP 头部
  3. 吃透 iptables NAT,理解 POSTROUTING
  4. OpenWrt 桥接、软路由多网卡(当前场景)

四、四、课程(可选)

  • B站搜 Linux网络 路由 iptables(「Linux 网络底层实战」类):IP路由、策略路由、NAT 原理、防火墙链
  • B站搜 Wireshark抓包实战:短课即可,重点学过滤表达式

五、五、避坑

  • 不要先啃厚理论书,先动手,遇到不懂再翻资料
  • 不要在生产环境练,测试机随便改,改崩了清路由表重来
  • 不要搜盗版 PDF(尤其”tcpip详解pdf”)