Linux 路由器:从基础到高级配置指南

在网络世界中,路由器是连接不同网络的核心设备,负责数据包转发、网络地址转换(NAT)、DHCP 服务等关键功能。传统商用路由器虽然易用,但往往受限于厂商固件,功能固化且扩展性差。而 Linux 路由器 凭借开源生态、高度自定义能力和低成本优势,成为极客、企业和开发者的理想选择——无论是搭建家庭实验室、小型办公网络,还是构建复杂的边缘计算节点,Linux 都能胜任。

本文将从底层原理到实战配置,全面解析 Linux 路由器的搭建过程,涵盖基础功能、高级特性、最佳实践及故障排查,帮助你从零开始打造一台功能强大的自定义路由器。

目录#

  1. Linux 路由器基础

    • 1.1 什么是路由器?核心功能解析
    • 1.2 为什么选择 Linux 作为路由器?优势对比
    • 1.3 必备知识:网络分层与 Linux 网络栈
  2. 搭建前准备

    • 2.1 硬件要求:CPU、内存、网卡与接口
    • 2.2 软件选择:Linux 发行版与工具链
    • 2.3 网络拓扑规划:WAN、LAN 与网段设计
  3. Linux 路由器基础配置

    • 3.1 安装与初始化 Linux 系统
    • 3.2 网络接口配置:WAN 与 LAN 区分
    • 3.3 启用 IP 转发:内核参数与持久化
    • 3.4 NAT 配置:让 LAN 设备访问互联网(iptables 实战)
    • 3.5 DHCP 服务:自动分配 IP 地址(dnsmasq 配置)
    • 3.6 DNS 转发:解析域名与广告过滤
  4. 高级功能配置

    • 4.1 防火墙:基于 iptables/ufw 的访问控制
    • 4.2 QoS 流量管理:优先级与带宽限制(tc 工具)
    • 4.3 VPN 服务:WireGuard/OpenVPN 搭建与路由
    • 4.4 VLAN 隔离:通过 802.1Q 实现网络分段
    • 4.5 监控与日志:流量统计、异常告警
  5. 最佳实践

    • 5.1 安全性:防火墙加固、服务最小化与 SSH 安全
    • 5.2 性能优化:硬件加速、内核调优与连接数控制
    • 5.3 可靠性:配置备份、冗余设计与故障恢复
  6. 常见问题与故障排查

    • 6.1 LAN 设备无网络:从 IP 转发到 NAT 规则检查
    • 6.2 速度瓶颈:MTU、QoS 与驱动问题定位
    • 6.3 防火墙误拦截:规则调试与日志分析
    • 6.4 DHCP 冲突:租约管理与静态分配修复
  7. 实战场景案例

    • 7.1 家庭实验室路由器:VLAN 隔离 + VPN 网关
    • 7.2 小型办公网络:QoS 优先级 + 广告过滤
    • 7.3 IoT 边缘路由:低功耗优化与设备监控
  8. 参考资料

1. Linux 路由器基础#

1.1 什么是路由器?核心功能解析#

路由器是工作在 OSI 七层模型第三层(网络层) 的设备,核心功能包括:

  • 数据包转发:根据目标 IP 地址和路由表,将数据包从一个网络(如 WAN)转发到另一个网络(如 LAN)。
  • NAT(网络地址转换):将 LAN 私有 IP(如 192.168.1.0/24)转换为 WAN 公网 IP,实现多设备共享单个公网地址上网。
  • DHCP 服务:自动为 LAN 设备分配 IP 地址、子网掩码、网关和 DNS 服务器。
  • DNS 转发:将 LAN 设备的 DNS 请求转发到上游 DNS 服务器(如 8.8.8.8),并缓存结果提升效率。
  • 防火墙:控制网络流量进出,阻止恶意访问(如端口扫描、DDoS 攻击)。

1.2 为什么选择 Linux 作为路由器?优势对比#

特性商用路由器Linux 路由器
功能扩展性厂商固件锁定,功能有限支持任意开源工具(如 VPN、QoS、VLAN)
成本高端型号价格昂贵(千元起)旧电脑/单板机(如树莓派)即可搭建,成本 < 500 元
性能调优无法自定义内核参数可优化 TCP 缓冲区、连接跟踪表等底层配置
安全更新厂商停止支持后无更新持续接收 Linux 内核与工具链安全补丁
监控与日志日志功能简陋支持 iftop、vnstat、Prometheus 等深度监控

典型场景:家庭用户可用树莓派 + 双网卡搭建支持 VPN 和广告过滤的路由器;企业可基于 x86 服务器构建带 VLAN 隔离和 QoS 的边缘路由。

1.3 必备知识:网络分层与 Linux 网络栈#

Linux 路由器的核心依赖 Linux 网络栈,需理解以下概念:

  • 网络接口(Network Interface):物理网卡(如 eth0、enp0s3)或虚拟接口(如 vlan10、wg0),是数据包进出的通道。
  • 路由表(Routing Table):内核维护的转发规则,决定数据包从哪个接口发送(通过 route -n 或 ip route 查看)。
  • Netfilter/iptables:Linux 内核防火墙框架,负责 NAT、数据包过滤和修改(如端口转发)。
  • Socket 层:用户态程序(如 DHCP 服务、VPN 客户端)通过 socket 与网络栈交互。

2. 搭建前准备#

2.1 硬件要求#

Linux 路由器对硬件的需求取决于网络规模和功能复杂度:

  • CPU:单核足够基础功能(如家庭网络),多核心(如 4 核)可提升 VPN/QoS 性能。
  • 内存:512MB 起步(树莓派 4B 2GB 足够),若启用 VPN 或大量连接跟踪,建议 2GB+。
  • 存储:仅需 4GB+ 空间(用于系统和配置文件),推荐 SSD 以提升可靠性。
  • 网卡(关键!):至少 2 个物理网卡(区分 WAN/LAN),支持千兆/万兆根据带宽需求(如 Intel I210 千兆网卡兼容性佳)。
    • 若需 VLAN 或多网段,可选 多端口网卡(如 4 口 Intel I350-T4)或 SFP 光口(用于光纤上行)。
  • 其他:可选支持硬件加速(如 Intel QuickAssist 用于加密卸载)、PoE 供电(为 AP 或摄像头供电)。

2.2 软件选择#

2.2.1 操作系统#

  • 通用发行版:Ubuntu Server、Debian(适合自定义程度高的场景,需手动配置服务)。
  • 专用路由系统:OpenWrt(嵌入式优化,适合低配置硬件如路由器主板)、pfSense(基于 FreeBSD,图形化界面,适合新手)。
  • 轻量选择:Alpine Linux(内存占用 < 100MB,适合嵌入式设备)。

2.2.2 核心工具链#

  • 网络配置:iproute2(ip addr/ip route 命令)、netplan(Ubuntu 网络配置工具)。
  • NAT/防火墙:iptables(基础)、ufw(简化版防火墙)、nftables(新一代内核防火墙,替代 iptables)。
  • DHCP/DNS:dnsmasq(轻量一体化服务)、isc-dhcp-server(企业级 DHCP)、unbound(递归 DNS 服务器)。
  • 高级功能:tc(流量控制)、wireguard(VPN)、vlan(802.1Q 配置)。

2.3 网络拓扑规划#

提前规划网络结构可避免后期重构:

  • WAN 接口:连接上游网络(如光猫),通常配置为 DHCP 动态获取 IP(或 ISP 提供的静态 IP)。
  • LAN 接口:连接内部网络(交换机/AP),需分配私有网段(如 192.168.1.0/24、10.0.0.0/24)。
  • 网段划分:若需隔离 IoT、办公设备,可规划多网段(如 192.168.1.0/24 办公,192.168.2.0/24 IoT)。
  • 网关与 DNS:LAN 设备的默认网关指向 Linux 路由器的 LAN 接口 IP(如 192.168.1.1),DNS 可指向路由器自身(由 dnsmasq 提供服务)。

3. Linux 路由器基础配置#

3.1 安装与初始化 Linux 系统#

以 Ubuntu Server 22.04 为例(通用发行版,适合自定义):

  1. 下载 ISO 并通过 USB 启动盘安装,选择 "最小安装"(仅保留核心组件)。
  2. 安装时配置 SSH 服务(便于远程管理),并创建管理员账户(如 router-admin)。
  3. 安装后更新系统:sudo apt update && sudo apt upgrade -y。
  4. 安装必备工具:sudo apt install -y iproute2 iptables dnsmasq net-tools。

3.2 网络接口配置:WAN 与 LAN 区分#

假设硬件有两个网卡:eth0(连接光猫,作为 WAN)和 eth1(连接交换机,作为 LAN)。

3.2.1 配置 WAN 接口(动态 IP 示例)#

Ubuntu 22.04 默认使用 netplan 管理网络,配置文件路径 /etc/netplan/*.yaml。
创建 /etc/netplan/01-wan.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:  # WAN 接口
      dhcp4: true  # 从光猫动态获取 IP
      dhcp4-overrides:
        use-dns: false  # 禁用 ISP DNS(避免劫持)
        use-routes: true

3.2.2 配置 LAN 接口(静态 IP 示例)#

创建 /etc/netplan/02-lan.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:  # LAN 接口
      addresses: [192.168.1.1/24]  # LAN 网关 IP
      dhcp4: false

应用配置:sudo netplan apply,验证接口状态:ip addr show eth0(WAN)和 ip addr show eth1(LAN)。

3.3 启用 IP 转发#

Linux 默认禁用 IP 转发(出于安全),需手动开启:

临时启用(立即生效,重启失效)#

sudo sysctl -w net.ipv4.ip_forward=1  # IPv4 转发
sudo sysctl -w net.ipv6.conf.all.forwarding=1  # 如需 IPv6,启用 IPv6 转发

永久启用(重启后生效)#

编辑 /etc/sysctl.conf,添加或取消注释:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1  # 可选

生效配置:sudo sysctl -p。

3.4 NAT 配置:让 LAN 设备访问互联网#

NAT 是 LAN 设备通过 WAN 公网 IP 上网的核心,通过 iptables 实现:

基础 NAT 规则(MASQUERADE 动态映射)#

# 允许 LAN(eth1)流量通过 WAN(eth0)出站,并做 NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 
# 允许已建立的连接和相关流量入站(避免拦截 LAN 设备的响应包)
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
 
# 允许 LAN 接口(eth1)的流量转发到 WAN(eth0)
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

保存规则(避免重启丢失)#

安装 iptables-persistent 工具:

sudo apt install -y iptables-persistent
# 保存当前规则(会提示保存 IPv4/IPv6 规则)
sudo netfilter-persistent save

规则将保存在 /etc/iptables/rules.v4 和 /etc/iptables/rules.v6。

3.5 DHCP 服务:自动分配 IP 地址#

使用 dnsmasq 提供 DHCP 服务(轻量且集成 DNS 转发):

配置 dnsmasq#

编辑 /etc/dnsmasq.conf:

# 仅在 LAN 接口(eth1)提供服务
interface=eth1
bind-interfaces  # 避免监听 WAN 接口
 
# DHCP 地址池:192.168.1.100-200,租期 24 小时
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h
 
# 网关(路由器 LAN IP)和 DNS 服务器(指向路由器自身)
dhcp-option=option:router,192.168.1.1
dhcp-option=option:dns-server,192.168.1.1
 
# 静态 IP 分配(可选,为服务器/打印机固定 IP)
dhcp-host=aa:bb:cc:dd:ee:ff,192.168.1.10  # MAC 地址对应固定 IP

启动并设置开机自启#

sudo systemctl enable --now dnsmasq
# 验证状态
sudo systemctl status dnsmasq

此时 LAN 设备接入后,会自动获取 IP 并通过路由器上网。

3.6 DNS 转发:解析域名与广告过滤#

dnsmasq 同时提供 DNS 转发功能,可配置上游 DNS 服务器(如 Cloudflare 1.1.1.1),并支持广告过滤:

配置上游 DNS#

编辑 /etc/dnsmasq.conf,添加:

# 上游 DNS 服务器(按优先级排序)
server=1.1.1.1  # Cloudflare
server=8.8.8.8  # Google DNS
server=223.5.5.5  # 阿里云 DNS

广告过滤(通过屏蔽域名实现)#

创建广告域名列表 /etc/dnsmasq.adblock,添加需屏蔽的域名(可从 StevenBlack/hosts 下载):

address=/ad.example.com/0.0.0.0  # 将广告域名解析到无效 IP
address=/tracking.example.com/0.0.0.0

在 /etc/dnsmasq.conf 中引用:

addn-hosts=/etc/dnsmasq.adblock

重启 dnsmasq:sudo systemctl restart dnsmasq。

4. 高级功能配置#

4.1 防火墙:基于 iptables/ufw 的访问控制#

基础防火墙规则需限制外部访问并保护 LAN 安全:

核心规则(通过 iptables 配置)#

# 默认拒绝所有入站和转发流量
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
 
# 允许本地回环(lo)流量
sudo iptables -A INPUT -i lo -j ACCEPT
 
# 允许 LAN 接口(eth1)的入站流量(如 SSH 管理、DHCP 请求)
sudo iptables -A INPUT -i eth1 -j ACCEPT
 
# 允许 WAN 接口的 SSH 访问(仅信任固定 IP,如办公网络)
sudo iptables -A INPUT -i eth0 -s 103.xx.xx.xx/32 -p tcp --dport 22 -j ACCEPT
 
# 禁止 WAN 接口的 ICMP(ping)请求(避免被探测)
sudo iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j DROP

简化方案:使用 ufw#

若对 iptables 不熟悉,可使用 ufw(Uncomplicated Firewall):

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow in on eth1  # 允许 LAN 入站
sudo ufw allow from 103.xx.xx.xx to any port 22  # 允许指定 IP SSH 访问
sudo ufw enable  # 启用防火墙

4.2 QoS 流量管理:优先级与带宽限制#

当网络带宽有限时(如家庭 100Mbps 宽带),可用 tc(Traffic Control)工具分配带宽优先级(如保障视频会议,限制 P2P 下载)。

示例:为 LAN 接口配置 QoS#

假设 LAN 接口 eth1 总带宽 100Mbps,需:

  • 保障 VoIP(UDP 5060-5090 端口)最高优先级,预留 10Mbps。
  • 限制 P2P 下载(TCP 6881-6889 端口)最大 20Mbps。
# 1. 创建根队列(HTB 调度器)
sudo tc qdisc add dev eth1 root handle 1: htb default 10
 
# 2. 创建总带宽类(100Mbps)
sudo tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit
 
# 3. 创建 VoIP 优先级类(最高优先级,10Mbps 保障)
sudo tc class add dev eth1 parent 1:1 classid 1:2 htb rate 10mbit ceil 10mbit prio 0
# 绑定 UDP 端口到该类
sudo tc filter add dev eth1 parent 1: protocol ip prio 0 u32 match ip dport 5060 0xffff flowid 1:2
sudo tc filter add dev eth1 parent 1: protocol ip prio 0 u32 match ip dport 5090 0xffff flowid 1:2
 
# 4. 创建 P2P 限制类(低优先级,20Mbps 上限)
sudo tc class add dev eth1 parent 1:1 classid 1:3 htb rate 5mbit ceil 20mbit prio 3
# 绑定 TCP 端口到该类
sudo tc filter add dev eth1 parent 1: protocol ip prio 3 u32 match ip dport 6881 0xffff flowid 1:3
sudo tc filter add dev eth1 parent 1: protocol ip prio 3 u32 match ip dport 6889 0xffff flowid 1:3
 
# 5. 默认类(剩余带宽,优先级 1)
sudo tc class add dev eth1 parent 1:1 classid 1:10 htb rate 50mbit ceil 100mbit prio 1

注:tc 配置较复杂,推荐使用 wondershaper 等工具简化操作:sudo wondershaper eth1 100000 100000(限制上下行 100Mbps)。

4.3 VPN 服务:WireGuard/OpenVPN 搭建与路由#

通过 VPN 服务可实现远程访问 LAN 或加密上网(如规避区域限制)。以 WireGuard 为例(轻量、高性能):

安装与配置 WireGuard#

  1. 安装依赖:sudo apt install -y wireguard-dkms wireguard-tools。
  2. 生成密钥对:
    wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
    chmod 600 /etc/wireguard/private.key
  3. 创建配置文件 /etc/wireguard/wg0.conf:
    [Interface]
    PrivateKey = <路由器私钥>  # 来自 /etc/wireguard/private.key
    Address = 10.8.0.1/24  # VPN 网段(与 LAN 不冲突)
    ListenPort = 51820  # VPN 端口
    PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
     
    [Peer]  # 客户端配置(每台设备一个 Peer)
    PublicKey = <客户端公钥>
    AllowedIPs = 10.8.0.2/32  # 客户端 VPN IP
  4. 启动 VPN 接口:sudo wg-quick up wg0,设置开机自启:sudo systemctl enable wg-quick@wg0。
  5. 客户端配置:在手机/电脑安装 WireGuard,导入公钥和 VPN 网段,即可远程访问 LAN。

4.4 VLAN 隔离:通过 802.1Q 实现网络分段#

VLAN(虚拟局域网)可将物理网络划分为多个逻辑网段(如办公网、IoT 网),提升安全性。需交换机支持 802.1Q。

配置 VLAN 接口#

假设 LAN 主接口为 eth1,创建 VLAN 10(办公网,192.168.10.0/24)和 VLAN 20(IoT 网,192.168.20.0/24):

  1. 安装 vlan 工具:sudo apt install -y vlan。
  2. 加载 8021q 内核模块:sudo modprobe 8021q && echo "8021q" | sudo tee -a /etc/modules。
  3. 创建 VLAN 接口配置(以 netplan 为例):
    # /etc/netplan/03-vlan.yaml
    network:
      version: 2
      renderer: networkd
      vlans:
        vlan10:
          id: 10
          link: eth1
          addresses: [192.168.10.1/24]
        vlan20:
          id: 20
          link: eth1
          addresses: [192.168.20.1/24]
  4. 应用配置:sudo netplan apply,验证接口:ip addr show vlan10。

为 VLAN 配置 DHCP 和路由隔离#

在 /etc/dnsmasq.conf 中为 VLAN 接口添加 DHCP 配置:

interface=vlan10
dhcp-range=vlan10,192.168.10.100,192.168.10.200,24h
dhcp-option=vlan10,option:router,192.168.10.1
 
interface=vlan20
dhcp-range=vlan20,192.168.20.100,192.168.20.200,24h
dhcp-option=vlan20,option:router,192.168.20.1

通过防火墙规则隔离 VLAN(禁止 IoT 网访问办公网):

sudo iptables -A FORWARD -i vlan20 -o vlan10 -j DROP  # 禁止 IoT 访问办公网

4.5 监控与日志:流量统计、异常告警#

实时监控网络状态可及时发现问题:

  • 流量实时监控:iftop -i eth0(查看接口带宽占用)、nload(图形化流量统计)。
  • 历史流量统计:vnstat(按日/月统计流量,需安装 vnstat 并配置接口)。
  • 系统级监控:prometheus + grafana(部署后可通过 dashboard 展示 CPU、内存、网络延迟等指标)。
  • 日志分析:tail -f /var/log/syslog | grep dnsmasq(查看 DHCP/DNS 日志)、journalctl -u iptables(防火墙日志)。

5. 最佳实践#

5.1 安全性#

  • 最小化服务:禁用 unused 服务(如 telnet、ftp),仅保留必要服务(sshd、dnsmasq)。
  • SSH 安全加固:编辑 /etc/ssh/sshd_config,禁用密码登录(PasswordAuthentication no),仅允许密钥登录(PubkeyAuthentication yes),并限制登录用户(AllowUsers admin)。
  • 定期更新:启用自动更新(sudo apt install -y unattended-upgrades),及时修复内核漏洞。
  • 防火墙日志:开启 iptables 日志(iptables -A INPUT -j LOG --log-prefix "FW-DROP: "),并通过 rsyslog 保存到独立文件(如 /var/log/iptables.log)。

5.2 性能优化#

  • 硬件加速:若网卡支持(如 Intel I210),启用 TCP 分段卸载(TSO) 和 通用接收卸载(GRO):
    sudo ethtool -K eth0 tso on gro on  # 临时启用
    # 永久启用:编辑 /etc/network/interfaces,添加 post-up 脚本
  • 内核调优:编辑 /etc/sysctl.conf,优化网络参数:
    net.ipv4.tcp_mem = 65536 131072 262144  # TCP 内存分配
    net.ipv4.netfilter.ip_conntrack_max = 65536  # 最大连接跟踪数(避免耗尽内存)
    net.core.rmem_max = 16777216  # 接收缓冲区上限
    net.core.wmem_max = 16777216  # 发送缓冲区上限
  • 限制连接数:通过 iptables 限制单 IP 最大连接数,防止 DDoS:
    sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 100 -j DROP  # 单 IP 最多 100 个 TCP 连接

5.3 可靠性#

  • 配置备份:定期备份关键配置(/etc/netplan/、/etc/dnsmasq.conf、/etc/iptables/rules.v4)到外部存储,可使用脚本自动化:
    # 备份脚本示例
    BACKUP_DIR="/backup/$(date +%Y%m%d)"
    mkdir -p $BACKUP_DIR
    cp -r /etc/netplan $BACKUP_DIR/
    cp /etc/dnsmasq.conf $BACKUP_DIR/
    cp /etc/iptables/rules.v4 $BACKUP_DIR/
  • 冗余设计:关键场景可配置双 WAN 接口(通过 keepalived 或 mwan3 实现故障切换)。
  • 电源与存储:使用 UPS 避免断电数据丢失,存储采用 SSD(比 HDD 更耐震动,适合嵌入式环境)。

6. 常见问题与故障排查#

6.1 LAN 设备无网络#

排查步骤:

  1. 检查设备是否获取 IP:ip addr(客户端)或 cat /var/lib/misc/dnsmasq.leases(路由器 DHCP 租约)。
  2. 验证 IP 转发:sysctl net.ipv4.ip_forward(应返回 1)。
  3. 检查 NAT 规则:iptables -t nat -L POSTROUTING(需有 MASQUERADE 规则)。
  4. 测试路由器能否上网:ping 8.8.8.8(若失败,检查 WAN 接口配置和光猫状态)。

6.2 速度瓶颈#

可能原因与解决:

  • MTU 不匹配:WAN 接口 MTU 若小于 LAN(如 PPPoE 网络 MTU 需设为 1492),会导致分片丢包。通过 ping -s 1472 8.8.8.8 测试(1472 + 28 字节 ICMP 头 = 1500 MTU),调整 mtu: 1492 到 WAN 接口配置。
  • QoS 配置错误:若 QoS 限制过严,可通过 tc qdisc show dev eth0 检查规则,临时删除 tc qdisc del dev eth0 root。
  • 驱动问题:老旧网卡驱动可能导致性能不足,更新内核或安装厂商驱动(如 Intel e1000e 驱动)。

6.3 防火墙误拦截#

排查方法:

  1. 查看防火墙规则:iptables -L(检查是否有意外的 DROP 规则)。
  2. 检查日志:grep "FW-DROP" /var/log/iptables.log(需提前配置日志规则)。
  3. 临时放行测试:iptables -A INPUT -j ACCEPT(若问题解决,说明规则有误,需逐步排查)。

6.4 DHCP 冲突#

解决步骤:

  1. 检查 DHCP 服务状态:sudo systemctl status dnsmasq(若失败,查看日志 journalctl -u dnsmasq)。
  2. 清除冲突租约:删除 /var/lib/misc/dnsmasq.leases 中冲突的条目,重启 dnsmasq。
  3. 使用静态 IP:为频繁冲突的设备配置 dhcp-host(见 3.5 节),固定 IP 地址。

7. 实战场景案例#

7.1 家庭实验室路由器:VLAN 隔离 + VPN 网关#

需求:将家庭网络分为 "办公区"(VLAN 10)、"娱乐区"(VLAN 20)和 "IoT 区"(VLAN 30),并通过 WireGuard 远程访问办公区设备。
核心配置:

  • VLAN 接口划分(见 4.4 节),并通过防火墙限制 VLAN 间互访(仅允许办公区访问娱乐区)。
  • 部署 WireGuard VPN,配置 AllowedIPs = 192.168.10.0/24(仅路由办公区网段)。
  • 使用 vnstat 监控各 VLAN 流量,避免 IoT 设备过度占用带宽。

7.2 小型办公网络:QoS 优先级 + 广告过滤#

需求:保障视频会议(Zoom/Teams)和业务系统流量优先,限制员工 P2P 下载,并屏蔽广告。
核心配置:

  • 通过 tc 为 UDP 3478-3480(Zoom 端口)和 TCP 443(业务系统 HTTPS)分配最高优先级。
  • 启用 dnsmasq 广告过滤(见 3.6 节),减少带宽浪费。
  • 部署 iftop 实时监控异常流量,发现 P2P 占用时临时调整 QoS 规则。

8. 参考资料#


通过本文,你已掌握 Linux 路由器的核心原理与配置方法。从基础的 NAT/DHCP 到高级的 VLAN/QoS,Linux 路由器的灵活性远超商用设备,但也需要更多动手实践。建议从家庭实验室开始,逐步探索复杂功能,最终构建符合自身需求的定制化网络中枢!