当前位置:首页>Linux>三条命令把任何Linux设备变成路由器

三条命令把任何Linux设备变成路由器

  • 2026-09-08 22:03:20
三条命令把任何Linux设备变成路由器

三条命令,把任何 Linux 设备变成路由器

路由器本质上就是一台运行特定软件的普通电脑。旧笔记本、树莓派、矿渣小主机——装三个包,改几个配置文件,就能顶替那个几百块的家用路由器。

背景:为什么要自己做路由器?

美国 FCC 近期出台政策,实际上禁止了非美国产消费级路由器的进口和销售。

这件事本身很荒唐,但它让很多人开始思考一个问题:路由器到底有什么特别的?

答案是:没有。路由器就是一台运行 Linux 的电脑。


硬件准备

你需要:
  • 任何能运行 Linux 的设备(mini PC、旧笔记本、树莓派、小主机)
  • 至少两个网络接口(WAN + LAN)
  • 只有一个网口怎么办?
  • USB 转网口的扩展坞就够了,10-20 块钱,稳定跑 800Mbps+ 没问题。
  • 作者曾用一台 Celeron 3205U 双核 1.5GHz 的小主机做家用路由器,稳定跑了多年,唯一换过的配件是一块 20 美元的 mSATA 硬盘。

  • 甚至更离谱的组合也能用:一台捡来的 ThinkPad T60、一块 PCIe 网卡、一个二手 10 美元交换机……只要能联网,就能做路由器。


  • 三个包搞定

  • 操作系统推荐 Debian(或 Ubuntu)。安装完系统后,只需要三个额外软件包:

  • sudo apt install bridge-utils hostapd dnsmasq
    
  • bridge-utils — 把有线和无线网口桥接成同一个局域网
  • hostapd — 创建 Wi-Fi 热点
  • dnsmasq — 处理 DNS 解析和 DHCP 分配(给局域网设备自动分配 IP)
  • 整个系统装完大约 250 个包,极其精简。


  • 网络接口规划

  • eth0  →  WAN(接光猫/上级网络)
    

    eth1 → LAN 有线

    wlan0 → LAN 无线

  • eth1 和 wlan0 桥接在一起,有线和无线设备都在同一个局域网,可以互相通信。


  • 核心配置

  • 1. 重命名网络接口

  • 现代 Linux 的网口名字是 `enp3s0` 这种不直观的格式,先改成 `eth0/eth1`。

  • 在 `/etc/udev/rules.d/10-net.rules` 里按 MAC 地址固定名称:

  • SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"
    

    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="11:22:33:44:55:66", NAME="eth1"

  • 2. 配置网络接口

  • `/etc/network/interfaces` 里配置 WAN(DHCP 获取公网 IP)和 LAN(桥接):

  • # WAN
    

    auto eth0

    iface eth0 inet dhcp

    LAN 桥接

    auto br0

    iface br0 inet static

    address 192.168.1.1

    netmask 255.255.255.0

    bridge_ports eth1 wlan0

  • 3. 配置 dnsmasq(DHCP + DNS)

  • `/etc/dnsmasq.conf` 核心配置:

  • interface=br0
    

    dhcp-range=192.168.1.100,192.168.1.200,24h

    dhcp-option=3,192.168.1.1

    dhcp-option=6,192.168.1.1

  • 给局域网设备自动分配 `192.168.1.100-200` 范围的 IP,网关和 DNS 都指向这台机器。

  • 4. 配置 hostapd(Wi-Fi)

  • `/etc/hostapd/hostapd.conf` 核心配置:

  • interface=wlan0
    

    bridge=br0

    ssid=MyNetwork

    hw_mode=g

    channel=6

    wpa=2

    wpa_passphrase=YourPassword

    wpa_key_mgmt=WPA-PSK

    rsn_pairwise=CCMP

  • 5. 开启 IP 转发 + NAT

  • # 永久开启 IP 转发
    

    echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

    NAT(让局域网设备通过 eth0 上网)

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    保存 iptables 规则

    apt install iptables-persistent


  • 开机自启

  • systemctl enable hostapd
    

    systemctl enable dnsmasq

    systemctl enable networking

  • 加上 BIOS 里的"断电后自动开机"设置,停电来电后路由器自动恢复。


  • 性能参考

  • Celeron 3205U(2014年 CPU):有线 820-850 Mbps,无线约 300 Mbps
  • 满足一般家庭或小型办公室完全没问题
  • 相比消费级路由器的优势:

  • | 特性 | 消费级路由器 | Linux 自制 |

  • |------|------------|-----------|

  • | 定制能力 | 有限 | 完全自由 |

  • | 广告过滤(Pi-hole) | 需要额外设备 | 直接集成 |

  • | VPN 服务端 | 部分支持 | 完整支持 |

  • | 透明代理 | 基本不支持 | 支持 |

  • | 硬件寿命 | 3-5 年 | 用到坏为止 |

  • | 安全更新 | 厂商决定 | 自己控制 |


  • 总结

  • 路由器没有魔法,它就是一台运行 Linux、装了 `hostapd` + `dnsmasq` + 开了 IP 转发的普通电脑。

  • 三条命令,几个配置文件,家里吃灰的旧笔记本就能顶替那个几百块的家用路由器。

  • 原文:https://nbailey.ca/post/router/

  • 汤姆不止是猫 | Linux 实战笔记

最新文章

随机文章