VPS 装 OpenWrt 做软路由/旁路由:解锁网络玩法(2026)

想给云端或家里的网络加一层可控网关?本文讲清软路由概念,手把手在 KVM 型 VPS 上安装 OpenWrt 镜像,区分旁路由与主路由用法,并演示做网关/透明代理/广告过滤,以及与本地路由器配合的实战。

延伸阅读

更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用Ollama AI系列(2):VPS上的AI推理与API应用【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPSARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?Ollama AI系列(2):VPS上的AI推理与API应用

一、什么是软路由:先厘清"软"和"旁"

不少人第一次听到"软路由"会误以为它是"用软件做的、软趴趴的路由器",其实恰恰相反:软路由指的是用通用计算硬件来跑路由系统。它的载体可以是 x86 小主机(比如 J1900、J4125、N100、N5105 这类低功耗工控机)、ARM 单板(NanoPi R2S/R4S/R5S),也可以是一台 NAS 或服务器里的虚拟机。只要在上面刷入 OpenWrt、iStoreOS、爱快这类路由系统,这台"通用电脑"就成了一台路由器。

要和它区分的是硬路由——也就是你家里现在大概率正在用的那种成品路由器(小米、华硕、网件、TP-LINK 等)。硬路由出厂时 CPU、内存、网口都被厂商封死,优点是即开即用、功耗低、Wi-Fi 稳定、价格亲民;缺点是那颗小 CPU 跑不动重负载,一旦让它做去广告、SQM 流控、AdGuard 这类活儿就容易卡顿。

这里有个关键澄清:一台设备到底是"软"还是"硬",看的是硬件形态,不是装了什么系统。N100 小主机刷上 OpenWrt 是软路由,小米路由器刷上 OpenWrt 仍然是硬路由。软路由的核心价值,是用更强的通用算力换来了可玩性:它能跑 SQM 流控、AdGuard Home、Docker 容器,甚至同时当下载机和智能家居网关。

二、为什么要把 OpenWrt 装到 VPS 上

OpenWrt 本身是一个面向嵌入式设备的 Linux 发行版,它最大的特点不是"能当路由器",而是提供了一套可写文件系统加包管理机制——你不再被厂商预置的功能限制,想要什么装什么。截至 2026 年,OpenWrt 的当前稳定版是 25.12 系列(2026 年 3 月发布,最新小版本 25.12.5),在 VPS 上我们用的目标平台是 x86/64。

把 OpenWrt 装到 VPS 而不是家里小主机,有三个实打实的好处。第一是弹性扩展:云服务器按需计费,促销或流量高峰时临时升降配置,网络能力随时跟上业务。第二是全球节点:主流厂商(AWS、阿里云、腾讯云等)在各地都有机房,选近用户区域部署,延迟可压到 20 毫秒以内。第三是高可用:通过负载均衡和自动伸缩可搭多节点集群做故障转移。

典型落地场景包括企业分支互联、合规前提下的跨境加速、IoT 设备管理平台、SD-WAN 控制中心,以及本文重点:把它作为家里网络的远程网关或异地节点。

三、在 KVM 型 VPS 上安装 OpenWrt

在 VPS 上跑 OpenWrt,第一步是选对虚拟化类型。KVM 架构(AWS EC2、阿里云 ECS、腾讯云 CVM 等都采用)对 OpenWrt 的硬件直通支持最好,网络性能损耗通常小于 5%,是首选。Xen 和 Hyper-V 也不是不能用,但虚拟网卡驱动兼容性要留意,建议选最新一代实例类型。

动手前先确认一件事:你的厂商是否允许上传自定义镜像或用 raw/ISO 启动(部分云商限制自定义镜像)。经验值是:基础版 1 核 1GB 内存约扛 500 并发连接;生产环境建议 2 核 4GB,可支撑 5000 条以上并发连接。

镜像从官方下载即可,注意取 x86/64 的 combined-ext4 版本:

wget https://downloads.openwrt.org/releases/25.12/targets/x86/64/openwrt-25.12-x86-64-generic-ext4-combined-efi.img.gz
gunzip openwrt-25.12-x86-64-generic-ext4-combined-efi.img.gz

如果是 KVM 宿主机,可以直接用 virt-install 导入现有磁盘:

virt-install --name openwrt --ram 1024 --vcpus 2 \
  --disk path=/opt/openwrt.img,bus=virtio \
  --network bridge=br0,model=virtio \
  --import --autostart

这里 model=virtio 很关键,它启用半虚拟化网卡,比默认 e1000 全虚拟化性能更好;镜像格式上多数云平台认 qcow2,可用 qemu-img convert 转换。

单网卡怎么当路由?这是 VPS 场景最常被问到的。VPS 通常只有一块公网网卡 eth0,做不了家里那样 WAN 接光猫、LAN 接交换机的双网段主路由。更现实的玩法是把它当"旁路由/远程网关":eth0 用 DHCP 拿公网地址作 WAN,LAN 侧用 VPN 子隧道(如 WireGuard)或 VLAN 子接口对接内网,流量经这张卡进出,由 OpenWrt 统一做 NAT、代理和过滤。要真双网段隔离,再上第二张网卡或走单臂路由(单口打 VLAN 标签)。

四、旁路由 vs 主路由:谁来做 DHCP 和默认网关

要真正理解软路由怎么接,得把两个维度拆开:一个是设备形态(软路由还是硬路由),一个是网络角色(主路由还是旁路由),它们彼此独立、可以任意组合。同一台 OpenWrt 设备,换个接法,明天就能在主路由和旁路由之间切换。

主路由是家里唯一对外拨号、做 NAT、发 DHCP、当所有设备默认网关的那台设备。它的优点是拓扑简单、全家流量一把抓、想配什么防火墙策略都行;缺点是它一旦挂了全家断网,所以硬件要扎实——建议四核以上处理器、至少两个物理网口、内存不低于 4GB,最好配 UPS 防断电。

旁路由不对外拨号,只挂在主路由的 LAN 下面,作为一台"被指派的二级网关"。主路由继续干拨号和 DHCP 的活,旁路由只接管那些被指定设备的网关和 DNS。它最大的好处是故障不影响主路由,配置错了顶多某个功能失效,不会全家上不了网;硬件门槛也低,单网口加个 USB 网卡就能跑,2GB 内存足够。代价是它控制不了全流量,部分要全局生效的功能会受限,且需手动改设备网关或让 DHCP 全局下发,配错就翻车。

一句话区分谁做 DHCP 和网关:主路由方案里 OpenWrt 自己开 DHCP 接管全设备;旁路由方案里主路由继续做 DHCP,OpenWrt 只作为一个可选的网关,客户端把"默认网关"指过去就行。

五、把 OpenWrt 当旁路由/网关用(改默认网关指向)

把 OpenWrt 当作旁路由接进现有网络,接线很简单:旁路由的 LAN 口插进主路由的 LAN 口(同网段,相当于桥接),千万不要插 WAN。然后登录 OpenWrt(LuCI 或改 /etc/config/network),把 LAN 口改成静态地址:

config interface 'lan'
    option type 'bridge'
    option ifname 'eth0'
    option proto 'static'
    option ipaddr '192.168.1.2'
    option netmask '255.255.255.0'
    option gateway '192.168.1.1'
    option dns '223.5.5.5'

别忘了在"DHCP 服务器"标签页勾选"忽略此接口",关掉旁路由自己的 DHCP,否则内网会冒出两个 DHCP 服务器打架。改完执行 /etc/init.d/network restart 生效。

之后有两种方式让设备走旁路由。方式一是手动指定网关(最推荐,适合只有少数设备需要特殊功能):在电脑或手机的网卡设置里把默认网关填成 192.168.1.2。方式二是改主路由的 DHCP,把下发的默认网关统一指向旁路由,这样全屋设备自动走旁路由,适合做全屋去广告。注意方式二配错容易全家断网,新手建议先从方式一上手。

六、做网关、透明代理与广告过滤(配合 AdGuard)

旁路由真正好玩的地方在应用层。最常见是接 AdGuard Home 做去广告和 DNS 防污染。AdGuard Home 监听 53 端口,所以启用前要把 OpenWrt 自带的 dnsmasq 让位(关闭其 DNS 功能或停掉)。上游 DNS 可以填 https://dns.google/dns-query 或 tls://dns.adguard.dns.cloudflare.com 这类加密 DNS。安装方式两种:直接 opkg install adguardhome,或用 Docker 跑容器后在 :3000 端口完成初始化。

透明代理则是把指定流量"无感"地引到代理进程。做法是用 iptables 或 nftables 的 REDIRECT 规则,把目标端口 80/443 的报文转发到代理监听的本地端口(如 7892),设备完全不用改任何设置就能走代理。很多玩家的组合是:代理程序作为 AdGuard Home 的上游,AdGuard 去广告防污染、代理负责分流,一条链路全解决。

在路由器上跑 Docker 和这些插件是要吃资源的,官方建议至少 2GB 内存加 8GB 存储的空间。过滤规则方面,AdGuard 自带基础规则,再订阅 EasyList、anti-AD 等中文规则,基本能挡掉大部分网页和视频广告。

把 DNS 和默认网关都指到旁路由后,去广告是对全屋生效的——手机、电视、智能音箱不用逐个装插件,这一点正是软路由相比单纯改 hosts 最爽的地方。

七、与本地路由器配合(VPS 当远程网关 / 家里 OpenWrt 异地节点)

VPS 上的 OpenWrt 不止能服务云上,更能和你家里的网络配合,玩出几种典型拓扑。

场景一,VPS 当远程网关。你在云上起好 OpenWrt,家里某台设备(或家里的主路由)通过 WireGuard 隧道连到它,然后把这台设备的默认网关指向 VPS 上的 OpenWrt。这样那台设备的出口就走到了云端,合规用途包括访问你自建在云上的服务、跨地域内网互通、给出门在外的笔记本一个稳定的家庭网络入口。

场景二,异地组网。家里已经有一台 OpenWrt 主路由,把 VPS 上的 OpenWrt 作为异地节点,两端用隧道打通形成 site-to-site 互联,办公室与多地 OpenWrt 就能像在同一局域网互访。

场景三,云旁路由。如果你的业务服务器分散在云上不同 VPC,可以放一台 OpenWrt 作为"云旁路由",给同网段的其他实例统一提供 DNS 过滤、访问控制和安全策略,而不用每台机器单独配。

不管哪种玩法,安全底线要守住:管理端口(SSH 22、LuCI 80/443)绝不要裸奔在公网,改成非标端口、用密钥登录、在防火墙里只允许固定来源 IP;隧道要设 keepalive 保活;定期 opkg update 并升级打安全补丁。

八、带宽与 NAT 性能(单核 / virtio 半虚拟化)

性能方面,半虚拟化 virtio 是决定因素。默认的 e1000 是全虚拟化网卡,有额外开销;换成 virtio 后,KVM 环境下网络性能损耗可以压到 5% 以内。如果你的 VPS 支持多队列网卡,记得把网卡中断绑定到特定 CPU 核心(中断亲和性),再配合 TCP 参数调优,例如调大 net.core.somaxconn 和 net.ipv4.tcp_max_syn_backlog,能明显提升小包和并发能力。

单核做 NAT 是有天花板的,多核才能堆出吞吐,这也是为什么生产环境建议 2 核起步。一个实测参考:某金融客户在 AWS c5.large(2 vCPU)上跑 OpenWrt,NAT 转发达 2.3Gbps、每秒新建连接超 45000 次,已能满足企业级应用。

测速别只看大包,小包吞吐更能反映路由转发能力,用 iperf3 在客户端和服务端互打就能看出瓶颈。若你走的是单臂路由,记得确认 VLAN 标签正确,否则子接口之间会不通。

#OpenWrt #软路由 #VPS #旁路由 #广告过滤