三条命令,把任何 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 实战笔记