让旧手机秒变软路由:OpenWrt on Android 实战指南

zheng头像
zheng 2026-07-16 11:15
楼主

让旧手机秒变软路由:OpenWrt on Android 实战指南

上篇讲了旧手机刷 Linux 当服务器,评论区最高赞的问题:"能用旧手机做软路由吗?"能,而且比用淘汰的 x86 小主机划算得多。一台闲置的骁龙 835 手机,刷上 OpenWrt,100 块钱都不要,科学上网、广告过滤、端口转发全搞定。关键功耗只有 3-5W,24 小时开着不心疼。


为什么用手机做软路由?

先算笔账:

方案 设备成本 功耗 OpenWrt 兼容 性能
x86 软路由(J4125) 400-600 元 10-15W 完美
树莓派 4B 300-400 元 5-8W 良好
ARM 开发板(R2S) 200 元 5W 完美
旧手机 + USB 网卡 50-100 元 3-5W chroot 方式 骁龙 835 约等于 R2S

旧手机的性能完全够跑 OpenWrt。一个骁龙 835 的 CPU,日常软路由负载 CPU 占用不到 20%。


方案总览:两种路线

手机上跑 OpenWrt 有两种方式:

路线 原理 优点 缺点
Linux Deploy + chroot OpenWrt 在 chroot 环境里跑 OpenWrt 根文件系统 不需要刷机,跟 Linux Deploy 的教程复用 网络配置复杂
直接刷 OpenWrt 固件 替换 Android 系统 原生性能,完整功能 机型适配有限、风险大

本文采用路线一:Linux Deploy + chroot,风险最低、对机型无要求。


第一步:准备硬件

核心设备

  • 旧 Android 手机(骁龙 835 以上,2GB+ RAM,已 root)
  • USB 转以太网适配器(关键!手机只有一个 WiFi 芯片,做不了双网口软路由)
  • OTG 转接线

推荐的 USB 网卡

型号 芯片 千兆 价格
绿联 CR111 AX88179 40 元
优越者 Y-146 AX88179 35 元
山泽 UH10 RTL8153 30 元

买 AX88179 或 RTL8153 芯片的,Linux 内核免驱。别买杂牌,丢包率感人。


第二步:在 Linux Deploy 里准备环境

沿袭上篇 Linux Deploy 的教程,确保 Ubuntu 22.04 chroot 环境已启动。

安装必要工具

sudo apt update
sudo apt install wget tar iptables dnsmasq hostapd -y

确认 USB 网卡被识别

# 连接 USB 网卡后
lsusb | grep -i ethernet
# 应该看到 AX88179 或 RTL8153
ip link show
# 你应该看到 eth0(USB 网卡)和 wlan0(手机 WiFi)

记下接口名,后面配置会用到。


第三步:下载并解压 OpenWrt 根文件系统

去 OpenWrt 官网下载 ARM64 的 rootfs:

cd /tmp
wget https://downloads.openwrt.org/releases/23.05.3/targets/armsr/armv8/openwrt-23.05.3-armsr-armv8-generic-rootfs.tar.gz

armsr/armv8 是因为手机 ARM64 对应这个架构。23.05.3 是当前最新稳定版。

解压:

mkdir -p /opt/openwrt
sudo tar -xzf openwrt-23.05.3-armsr-armv8-generic-rootfs.tar.gz -C /opt/openwrt


第四步:配置 OpenWrt chroot 环境

挂载必要文件系统

sudo mount -t proc proc /opt/openwrt/proc
sudo mount -t sysfs sys /opt/openwrt/sys
sudo mount -o bind /dev /opt/openwrt/dev
sudo mount -o bind /dev/pts /opt/openwrt/dev/pts

chroot 进入 OpenWrt

sudo chroot /opt/openwrt /bin/sh

进了 OpenWrt 的 shell,能看到熟悉的 BusyBox 环境:

BusyBox v1.36.1 (2024-03-22 14:05:23 UTC) built-in shell (ash)
/ #


第五步:网络配置 —— 软路由核心

这是最关键的一步。网络拓扑如下:

光猫 → 主路由器(提供 WiFi) → 手机(WiFi 连主路由做 WAN)
                              └→ 手机 USB 网卡(做 LAN 接电脑/AP)

修改 OpenWrt 网络配置

编辑 /etc/config/network

config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config interface 'lan'
    option device 'eth0'
    option proto 'static'
    option ipaddr '192.168.100.1'
    option netmask '255.255.255.0'

config interface 'wan'
    option proto 'dhcp'

解释:
- lan:USB 网卡 eth0,作为软路由的下联口,IP 设 192.168.100.1
- wan:走宿主机(Ubuntu)的默认路由出外网

开启 IP 转发

echo 1 > /proc/sys/net/ipv4/ip_forward

配置 NAT

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

启动 DHCP(可选)

如果你想让 USB 网卡下面接的设备自动获取 IP:

编辑 /etc/config/dhcp

config dhcp 'lan'
    option interface 'lan'
    option start '100'
    option limit '150'
    option leasetime '12h'

启动 dnsmasq:

/etc/init.d/dnsmasq start


第六步:实际接线和测试

接线方式

手机 -- OTG 线 -- USB 网卡 -- 网线 -- 电脑(测试)或 AP(覆盖全家)
手机 -- WiFi -- 主路由器(连外网)

测试

把电脑网线插到 USB 网卡上,手动设置 IP:

IP: 192.168.100.10
子网掩码: 255.255.255.0
网关: 192.168.100.1
DNS: 223.5.5.5

然后 ping 网关:

ping 192.168.100.1
# 通
ping 8.8.8.8
# 通
curl ifconfig.me
# 返回你的公网 IP

流量路径:电脑 → USB网卡 → OpenWrt(NAT) → Ubuntu → wlan0 → 主路由 → 互联网。通了。


第七步:安装 OpenClash 实现科学上网

软路由的最大用途。

安装依赖

opkg update
opkg install luci luci-i18n-base-zh-cn

安装 OpenClash

去 GitHub Releases 下载对应架构的 ipk:

cd /tmp
wget https://github.com/vernesong/OpenClash/releases/download/v0.46.003-beta/luci-app-openclash_0.46.003-beta_all.ipk
opkg install luci-app-openclash_0.46.003-beta_all.ipk

依赖报错的话继续装:

opkg install coreutils-nohup bash iptables dnsmasq-full curl jsonfilter ca-certificates

配置 OpenClash

装完后 LuCI 管理界面会多一个"OpenClash"选项卡。把你的订阅链接填进去,更新配置,启动。

连接到 USB 网卡的设备,自动走代理,不需要装任何客户端。全家无缝科学上网。


第八步:写入启动脚本,开机自启

因为是在 Linux Deploy 的 chroot 里跑的,需要让 Linux Deploy 启动时自动拉起 OpenWrt 环境。

在 Ubuntu 宿主机里创建启动脚本 /etc/init.d/openwrt-router

#!/bin/sh
mount -t proc proc /opt/openwrt/proc
mount -t sysfs sys /opt/openwrt/sys
mount -o bind /dev /opt/openwrt/dev
mount -o bind /dev/pts /opt/openwrt/dev/pts

chroot /opt/openwrt /bin/sh -c "
echo 1 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
iptables -t nat -F
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
"
chmod +x /etc/init.d/openwrt-router
update-rc.d openwrt-router defaults


进阶玩法

AdGuard Home 全局去广告

cd /opt/openwrt/opt
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_arm64.tar.gz
tar -xzf AdGuardHome_linux_arm64.tar.gz
./AdGuardHome -s install

配置 DNS 上游为 223.5.5.5,把 OpenWrt DHCP 的 DNS 服务器指向 192.168.100.1:53。所有连接到 USB 网卡的设备,广告全过滤。

统一管理所有设备

USB 网卡后面接一个千兆交换机(30 块钱的腾达 SG105 就行),交换机再接各个房间的网线。全家所有有线设备都走这台"手机软路由",WiFi 设备走主路由(也可以配成桥接)。


性能压力测试

测试环境:小米 MIX 2S(骁龙 845),AX88179 USB 网卡

测试项 结果
NAT 转发吞吐 480 Mbps
科学上网吞吐(vless+tls) 180 Mbps
有线设备数量 5 台同时跑满没问题
CPU 占用(跑满 NAT) 35%
连续运行稳定性 14 天无重启

480 Mbps 的 NAT 性能,对于大部分家庭 300M 以内的宽带完全够用。


常见问题

Q:WiFi 做 LAN 口不行吗?

原理上不行。手机的 WiFi 芯片只有一套射频,没法同时做 Station(连主路由)和 AP(发信号)。如果你用 USB WiFi 网卡(不是 USB 转以太网),可以解决:手机自带 WiFi 连外网,USB WiFi 网卡开热点做 LAN。但 USB WiFi 网卡信号不如正经 AP,不推荐。

Q:USB 网卡发热怎么办?

AX88179 芯片发热确实大,满载能到 60 度。解决方案:
1. 在芯片上贴小散热片
2. 手机竖着放,USB 网卡悬空保持通风
3. 别放路由器上叠罗汉

Q:这方案稳定性如何?

我连续跑了 14 天,零重启、零断流。唯一的风险是 USB 线松动——OTG 转接头容易接触不良,建议用直连的 Type-C 转 RJ45 转换器,少一个转接头就少一个故障点。


花 70 块钱(二手手机 30 + USB 网卡 40),就能得到一台千兆软路由,功耗 4W,还能当 Linux 服务器双用。除了接线丑一点,找不到不这么干的理由。

Tasker 自动化入门:让手机替你干活,10 个实用场景 Docker Compose 搭建服务全家桶:一个文件搞定 NAS 常用服务

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:2829