摘要:家里有闲置的安卓手机?千万别扔!本教程将教你如何利用一台 Root 后的安卓手机,通过几行脚本将其变成“旁路网关”(软路由)。无需购买 R2S/R4S,无需复杂的 OpenWrt 配置,配合你喜欢的 VPN 客户端,即可零成本实现全屋设备科学上网。
前言:为什么要用手机当网关?
相信大部分极客或技术爱好者的抽屉里,都躺着一两部不再使用的旧安卓手机。与其让它们吃灰,不如让它们发挥余热。
相比于购买专业的软路由设备,手机做网关有以下优势:
- 零成本:不需要额外购买硬件。
- 配置低门槛:不需要学习复杂的 Linux 路由表或 OpenWrt 插件,只要会用安卓 APP 即可。
- 生态丰富:安卓拥有最全的 VPN 客户端支持(Clash, V2RayNG, 各种官方加速器),可以轻松突破部分服务的“设备数量限制”。
- 性能足够:即便是几年前的骁龙处理器,处理几百兆的 AES 加密流量也是绰绰有余的。
准备工作
在开始之前,请确保你拥有以下条件:
- 一台安卓手机:必须已经 ROOT(这是核心前提,未 Root 无法修改底层网络规则)。
- 连接方式:WiFi 环境,或者准备一个 Type-C 转 RJ45 网口扩展坞(强烈推荐有线连接,更稳定)。
- 软件环境:手机已安装好 VPN 软件并能正常连通外网。
第一步:环境配置(ADB 或 Termux)
我们需要进入手机的 Linux 底层命令行来执行脚本。有两种方式:
方式 A:使用电脑 ADB 连接(推荐)
这种方式方便复制粘贴脚本,操作更精准。
下载 ADB 工具包:
开启手机调试:
- 进入「设置」->「开发者选项」,开启 “USB 调试”。
- 注:若找不到开发者选项,请在「关于手机」中连续点击「版本号」7次。
连接测试:
- 手机连接电脑,解压 ADB 文件夹,在当前目录打开 CMD 或终端。
- 输入
adb devices,出现设备号即成功。 - 输入
adb shell进入手机终端。 - 输入
su获取 Root 权限(此时符号应变为#)。
方式 B:手机端使用 Termux
如果你不想用电脑,可以直接在手机上操作。
- Termux 下载地址 (GitHub)
- 打开 App 输入
su并允许 Root 授权即可。
第二步:固定手机 IP 地址
作为局域网的网关服务器,手机的 IP 必须是固定的,不能由路由器随机分配。
- 进入手机 WiFi 设置。
- 找到当前连接的网络,将 IP 设置 从 DHCP 改为 静态 (Static)。
填写信息(以主路由 IP 为
192.168.0.1为例):- IP 地址:
192.168.0.123(找一个没人用的 IP) - 网关:
192.168.0.1 - DNS:
8.8.8.8或1.1.1.1
- IP 地址:
第三步:部署转发脚本(核心)
这是本教程的灵魂。安卓系统默认不会转发别人的流量,我们需要用脚本开启 IP 转发,并配置 iptables 规则。
创建脚本存放目录:
mkdir -p /data/proxy cd /data/proxy- 创建并编辑脚本:
你可以使用vi proxy.sh创建文件,或者在电脑上写好后通过adb push传入手机。脚本内容如下:
#!/system/bin/sh
# === 配置区域 (根据实际情况修改) ===
tun='tun0' # VPN开启后的虚拟接口名称,通常是 tun0
dev='wlan0' # 物理接口名称:WiFi通常是 wlan0,插网线通常是 eth0
interval=3 # 网络状态检测间隔(秒)
pref=18000 # 路由策略优先级
# =================================
# 1. 开启系统 IP 转发功能
sysctl -w net.ipv4.ip_forward=1
# 2. 清除 filter 表转发链规则,防止防火墙阻断内网流量
iptables -F FORWARD
# 3. 添加 NAT 转换
# 这一步至关重要,让流量经由 VPN 接口出去
iptables -t nat -A POSTROUTING -o $tun -j MASQUERADE
# 4. 添加路由策略
# 将来自物理接口(dev)的流量查表转发给虚拟接口(tun)
ip rule add from all table main pref $pref
ip rule add from all iif $dev table $tun pref $(expr $pref - 1)
contain="from all iif $dev lookup $tun"
# 5. 守护进程
# 循环监测,防止 VPN 重连或网络波动导致策略失效
while true ;do
if [[ $(ip rule) != *$contain* ]]; then
if [[ $(ip ad|grep 'state UP') != *$dev* ]]; then
echo -e "[$(date "+%H:%M:%S")] dev link down."
else
# 重新添加策略
ip rule add from all iif $dev table $tun pref $(expr $pref - 1)
echo -e "[$(date "+%H:%M:%S")] rules restored."
fi
fi
sleep $interval
done运行脚本:
赋予执行权限并让其在后台运行:
chmod +x proxy.sh
nohup ./proxy.sh &注意:如果脚本报错,请检查dev变量。在终端输入ip a查看你的网卡名称,WiFi 通常是wlan0,插网线通常是eth0。
第四步:客户端接管(起飞!)
现在手机已经准备就绪,我们需要让家里的其他设备“走”这条路。
方案 A:全屋自动翻墙(修改主路由)
适用场景:适合希望家里所有设备(电视、手机、iPad、智能家居)自动科学上网的用户。
- 登录主路由器后台。
- 找到 DHCP 服务器 设置。
- 将 默认网关 (Gateway) 改为 手机的 IP(如
192.168.0.123)。 - 重启路由器,或者让设备断开重连 WiFi。
方案 B:指定设备翻墙(手动设置)
适用场景:适合只想让主力 PC 或 PS5/Switch 游戏机科学上网,不影响家人使用。
- 打开电脑/游戏机的网络设置。
- 手动填入 IP 地址(保持同网段)。
- 网关 (Router) 一栏填写 手机的 IP。
- DNS 建议填
1.1.1.1或8.8.8.8防止 DNS 污染。
进阶玩法:使用网线连接(强烈推荐)
虽然 WiFi 也能用,但无线是半双工的,且容易受干扰,作为网关使用时 Ping 值 和 带宽 都会受限(实测 WiFi 只能跑 20-30Mbps)。
推荐方案:
购买一个 Type-C 转千兆网口扩展坞(最好带 PD 充电,保证手机 24 小时不断电)。
操作调整:
- 插上网线后,手机通常会识别为
eth0接口。 - 使用
ip a确认网卡名称。 - 修改脚本中的
dev='wlan0'为dev='eth0'。 - 杀掉旧进程并重新运行脚本。
效果对比:
使用有线连接后,跑满 500M 宽带 毫无压力,延迟极低,稳定性堪比几百元的 R2S 软路由。
常见问题与避坑
断网问题:
- 现象:如果在切换 VPN 节点后断网,是因为 VPN App 重建了虚拟网卡导致路由表失效。
- 解决方法:断开 VPN -> 等待几秒 -> 重新连接 -> 脚本会自动修复规则(因为脚本里有守护进程)。
DNS 污染:
- 现象:如果能上 QQ 但打不开 Google,说明 DNS 还是国内的。
- 解决方法:请务必将上网设备的 DNS 手动修改为
8.8.8.8或1.1.1.1。
手机重启:
- 注意:安卓重启后,所有临时网络规则都会消失。你需要重新连接 ADB 或 Termux 运行一次脚本。
- 进阶:可以使用 Magisk 模块来实现开机自启(需一定动手能力)。
省电策略:
- 操作:请务必关闭手机的“省电模式”,并在后台管理中锁定 Termux 或 VPN 软件,允许其“无限制后台运行”,防止系统杀后台导致断网。
总结:通过这种方式,我们不仅让旧手机变废为宝,还获得了一个带屏幕、自带 UPS 电源(电池)、配置强悍的“智能软路由”。快去试试吧!
版权声明:本文由 赛博61区 原创发布,转载请注明出处。