闲置安卓手机当旁路网关,无需购买软路由即可让家里所有设备实现科学上网

网络资源 admin 来源:不良林 1个月前 (12-19) 245次浏览 0个评论

视频教程

安卓shell

电脑使用adb

  • 下载地址:

Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

  • 使用方式

需开启“Android调试”,在「设置」-「开发者选项」-「Android 调试」,如果找不到“开发者选项”,需要在「设置」-「关于手机」连续点击「版本号」7 次

查看设备:adb devices

无线连接:adb connect 192.168.0.111

无线连接需要开启网络ADB调试

进入shell:adb shell

上传文件到手机:adb push 电脑路径 手机路径

下载文件到电脑:adb pull 手机路径 电脑路径

安装APK:adb install APK路径

手机使用Termux

  • 下载地址:

https://github.com/termux/termux-app/releases

  • 使用方式:(略)

配置旁路网关

建议先将手机设置为固定IP,方式很多请自行Google

一键脚本

#!/system/bin/sh

tun='tun0' #虚拟接口名称
dev='wlan0' #物理接口名称,eth0、wlan0
interval=3 #检测网络状态间隔(秒)
pref=18000 #路由策略优先级

# 开启IP转发功能
sysctl -w net.ipv4.ip_forward=1

# 清除filter表转发链规则
iptables -F FORWARD

# 添加NAT转换,部分第三方VPN需要此设置否则无法上网,若要关闭请注释掉
iptables -t nat -A POSTROUTING -o $tun -j MASQUERADE

# 添加路由策略
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"

while true ;do
    if [[ $(ip rule) != *$contain* ]]; then
            if [[ $(ip ad|grep 'state UP') != *$dev* ]]; then
                echo -e "[$(date "+%H:%M:%S")]dev has been lost."
            else
                ip rule add from all iif $dev table $tun pref $(expr $pref - 1)
                echo -e "[$(date "+%H:%M:%S")]network changed, reset the routing policy."
            fi
    fi
    sleep $interval
done

赋予可执行权限:chmod +x proxy.sh

执行:nohup ./proxy.sh &

更改网关

全局设备更改:修改主路由的DHCP设置

单一设备更改:更改设备的网关

排错

安卓系统每次切换网络设置都会将部分设置重置,一些“永久生效”的配置方式在手机重启后也会被重置

检查IP转发功能是否启用:cat /proc/sys/net/ipv4/ip_forward

检查iptables是否允许数据包通过:iptables -nvL -t (filter|nat|mangle)

检查路由策略:ip rule

检查网卡接口:ip a

视频文稿(忽略)

用安卓手机当软路由可行吗?
已知大部分软路由都是刷openwrt系统
并且openwrt是基于linux
又因为安卓也是基于linux
可知安卓就是软路由
没毛病
Hello大家好 我是不良林
闲置的安卓手机相信大部分家庭都有
本期教大家利用它充当家里面的旁路网关
让他继续发光发热
你可以在手机上使用任何VPN进行科学上网
只要手机能科学上网你家里面的电脑
电视盒子
VR头显等网络设备不需要运行任何科学上网工具
只需要接入居域网
即可实现居域网内所有设备通过安卓手机进行科学上网
接触过软路由的朋友 是不是感觉非常熟悉
没错 我们要做的就是将安卓手机当旁路由用
这样做的好处是省去了购买软路由的钱
并且如果你之前没有接触过软路由的话
需要通过一定时间去学习才能上手
而安卓手机的话人人都会用
省去了这部分的学习成本
还有一个优势是VPN客户端非常丰富
你可以使用需要导入节点的clash
也可以使用自带节点的第三方VPN、加速器等客户端
并且可以突破设备限制
比如快连VPN
他家的客户端只允许绑定两台设备
使用这个方式就可以突破限制
你可能知道其他通过手机共享网络的方式
比如wifi共享vpn
http代理共享等
这些都只能临时用一下
并且每台设备都需要单独设置
长期使用并不方便
而我介绍的这种旁路网关模式
是可以真正用来7×24小时长期稳定使用的方式
你可能听过透明网关
透明代理 旁路网关 旁路由 网关模式
网关代理等等这些名词
从原理来讲其实说的是同一种方式
由于通过不同终端设备实现
导致造出来这么多不同的术语
本期的实现方式使用旁路网关的叫法更贴切一点
其中的关键词就是网关
网关是什么 以及能干什么
我在节点搭建系列第一节已经详细介绍过了
感兴趣的朋友可以回去看一下
简单来讲 就是你家里面的电脑访问任何公网ip都需要去找网关
相当于家里面的网络出口
你可以简单的理解为网关就是路由器
旁路网关的意思是在旁边又加了一台当做网关的路由器
局域网其他设备访问任何公网ip都会交给这台旁路由
这台旁路由常见的做法是购买软路由设备
或者使用电脑开个linux虚拟机
或者使用linux开发版
而我们本期则是使用安卓手机来充当旁路由
只要确保这台手机能科学上网
使用它当做网关的其他设备也都可以实现科学上网了
对于局域网其他设备而言
他并不知道网关已经帮他实现了科学上网
这个过程对他来讲是完全透明的
所以也称为透明代理
或者叫透明网关
虽然从硬件配置的角度来看手机肯定要比软路由性能强悍
但手机毕竟是手机 不是一个路由器
没有专门针对路由转发做相应的优化
甚至可能为了省电还会有性能限制
肯定是比不过专门为路由开发的openwrt系统
和专门为路由而生的软路由设备
不过 这种旁路网关的方式可以很大程度上减少手机的负担
内网设备之间的数据传输并不需要经过手机
只有上网的数据才需要发给手机进行路由转发
这样才让路由转发性能不强的安卓手机充当网关成为可能
经过我的实际使用体验
跑满我本地的100M带宽是没有任何问题的
什么
作为一个专注与网络知识分享的youtuber博主
竟然还在使用100M的带宽
我的上帝
还使用了两台上古时期的路由器
分别是2009年产的DIR-600M
和2010年产的MW300R
通过一条19.9元包邮长度30米的垃圾网线连接
unbelievable
我的实际网络环境就是这样子的
主要的原因是因为穷
字幕君:企图掩盖穷的本质
可以发现我的网络拓扑中性能最好的
就是这台不是路由器的安卓手机了
由于性能瓶颈不在手机上
所以接入旁路网关之后感觉不到区别
没法测出手机的性能极限
我的安卓手机是锤子的坚果Pro2s
安卓9 刷的魔趣系统
这个配置当路由跑个500M应该是没有问题的
大家的设备和系统应该都不一样
由于各个手机厂商对安卓系统进行不同程度的定制
所以在我这里能成功实现并不代表适合所有安卓手机
如果你的预期效果和我不同
只能靠你自己想办法解决了
接下来正式开始教程
首先 第一步
先将手机root
这是最难的一步
只要root了后面就简单了
root之后最好再刷一个比较原生的安卓系统
每个厂商的root方式都不太一样
只能靠你自己去网上找相关的教程去解决了
接着我们需要进入手机的命令行环境
电脑端可以使用adb工具
手机端可以使用termux
我这里演示以电脑为例
下载你电脑对应的adb版本
我这里下载windows版本
下载完成之后 将其解压出来
进入该文件夹
直接在地址栏输入cmd回车
即可在当前目录运行cmd
在连接安卓手机的命令行之前
我们还需要先开启安卓的
调试模式
在设置里的开发者选项
每个品牌都略有不同
我的在系统的高级里
目前并没有看到
因为默认情况下是隐藏的
点击关于手机
划到最底下的版本号
对其疯狂输出七次
会提示我们启动了开发者选项
回到刚才的位置
进入开发者选项设置
首先将root授权开启
然后将安卓调试开启
我这边默认已经开启了
如果你是直接通过usb将手机连接电脑
这样设置之后就可以直接使用了
如果你是通过wifi或者网线连接局域网
需要开启网络adb调试
设置完成之后 就可以将你的手机通过usb连接电脑
接着 在cmd命令中输入adb devices
查看已连接的设备
可以看到已经连接了
如果你的没有输出结果
你可以尝试自己排错
搞不定的话可以使用待会要讲的手机终端termux
然后使用adb进入手机的命令行界面
输出这一行就表示已经成功进入了手机的shell
确保这里是#号 表示 root用户
输入ls可以查看手机的文件列表
用法和linux的终端是一样的
如果觉得用电脑连接很繁琐
就可以使用手机终端termux
进入这个网址下载
大部分较新的设备都可以安装第一个
如果不清楚 可以直接下载这个通用版
效果是一样的 只是安装包有点大
我这里已经安装好了
直接打开即可进入命令行环境
可以看到开头是$
这个是普通用户
输入su回车切换为root用户
提示我们需要授权 点击允许
这样就变成了root用户的#号
接下来的操作都是一样的
输入ls可以查看手机的文件列表
我这里为了方便视频演示 就直接使用adb了
首先需要先确保手机可以正常的科学上网
我这里以clash为例 你可以使用任何vpn工具
点击启动服务
此时右上角多了一把小锁
说明开启了VPN服务
你手机的图标可能和我的不太一样
尝试一下是否可以正常访问谷歌
可以看到是没有问题的
另外还需要再补充一点 作为网关使用
手机的ip地址 强烈建议改成静态ip
设置的方式有很多 可以使用linux指令
也可以在主路由上绑定静态ip到mac地址
还可以直接在手机上设置
我这里演示直接在手机上设置
打开wifi设置
进入你当前连接的wifi设置
可以在高级中查看路由器目前给我们分配的ip信息
但是这个ip并不是固定的
下次连接可能就变了
所以需要手动设置成固定的静态ip
在当前的wifi设置中 将dhcp改成静态
然后输入你需要的地址
注意要和刚才自动分配的ip段在同一网段
为了好记 我这里设置成192.168.0.123
如果实在不会填写
可以直接填写刚才路由器给我们手机自动分配的ip信息
保存后 ip就不会再随意变动了
再来确认一下是否可以正常上网 没有问题
确保手机的ip固定不变
确保手机可以科学上网
这样前期的准备就算是完成了
接下来要让他成为一台网关
在手机的shell里执行这条指令进入这个目录
创建一个名叫proxy的文件夹
进入到这个文件夹
使用vi编辑器创建一个名为proxy.sh的脚本文件
如果对vi编辑器使用不熟悉
也可以直接使用文件管理器创建
复制我给大家准备的这段脚本
将其粘贴上去
可以看到中文注释乱码了
不影响 将其保存 退出
可以查看一下当前目录下的文件
目前这个文件没有可执行权限
输入这条指令赋予可执行权限
这样就可以执行了
最后再输入这条指令 将其设置成后台运行
此时这台手机就成为了一台旁路网关
就是这么简单
接着 我们需要将局域网其他设备的网关改成这台手机的ip地址
有两种方式
一种是直接修改主路由的dhcp设置
让其直接给局域网的其他设备下发手机ip作为网关
这样做的好处是可以让所有设备直接翻墙了
另一种是手动修改单一设备的网关
只有这台修改了网关的设备才能进行翻墙
看你自己的需求
我这里先演示第一种
先来查看一下我这台电脑当前的网关
默认网关是192.168.0.1
也就是说 访问任何公网ip都会转交给这个地址
这个ip地址是我们的主路由
在浏览器中访问该地址进入路由器的控制台
输入账号密码进行登录
默认账号密码一般写在路由器的底部
直接输入密码进行登录
每个厂商的设置页面都不太一样
但是都会有dhcp功能 自己找一下
找到之后我们只需要改动网关这里
将其改成手机的ip地址
也就是123 点击保存
此时再有设备接入当前网络
路由器给该设备下方的网关就变成了手机的ip地址了
此时我们需要重新连接来获取新的ip信息
找到你的网络设置页面 先将网卡禁用
然后再启用
接着再来查看ip信息
可以看到默认网关已经变成了手机ip地址
接下来电脑不需要运行任何科学上网工具即可直接翻墙了
退出科学上网工具 尝试访问谷歌
可以看到是没有问题的
查看一下当前节点的ip
这是香港的节点
在clash中切换节点试试
可以看到电脑一起跟着换了
如果你的预期效果和我一样 那是最好的
说明你已经成功实现了旁路网关
由于各个手机系统的差异
在仔细确保每部操作都没问题 还是无法使用
可以在评论区反馈
此时我们可以在手机上运行任何vpn工具
注意 在切换其他VPN客户端之前 最好是先断开原来的VPN服务
否则可能会出现无法连接的情况
后面会说明
尝试使用v2rayNG
切换为日本的节点
可以看到也是没有问题的
也可以使用自带节点的第三方VPN客户端
比如快连VPN 连接了阿根廷的节点
也是没有问题的
另外 这种方式可以突破设备限制
由于没有流量限制
他家一个账号只能绑定两台设备
明显是不够用的
当旁路网关之后
局域网所有的设备都可以直接使用了
无视设备限制
其他有设备限制的VPN客户端应该都能突破
尝试更换节点
另外设备的分流信息也是跟着旁路网关走的
由于缓存的原因 出现了两个IP
换个其他的网站来测试
可以看到是没有问题的
分流规则为全局模式
回到clash
此处有一个注意事项
当我们点击启用时
右上角的小锁并不是先消失再重新显示
也就是说 clash在启动VPN服务前并没有帮我们优雅的先关闭快连的VPN服务
而是直接将快连的VPN服务挤掉了
这样造成的问题是 虚拟网卡接口的名称会发生变化
我给大家提供的脚本需要手动设置接口名
所以是固定的 如果名称发生了变化
将会无法正常添加路由规则 导致无法科学上网
解决方法也很简单
只需要先断开连接 再重新启用即可
这样虚拟网卡的接口名称又会恢复了
这种情况只会出现在切换不同VPN客户端时才会出现
直接在clash中切换其他节点是不会出现这种情况的
接下来 尝试进行测速
我家的带宽是一百兆
目前手机是通过wifi连接到局域网的
只跑到了二十兆 由于我家的上古配置
这个结果也在意料之中
如果你家的wifi质量不错
直接使用wifi就可以了
如果你想更快速稳定
建议和我一样购买一条type-c转网卡的转换器
使用网线将手机接入主路由
这样速度会非常稳定和快速
并且为了让其7×24小时在线
最好买个带PD充电口的转换器
接着就来演示使用网线接入的方式
先将脚本停止 你可以直接重启手机
或者在手机终端输入这条指令
查看脚本的进程id为3241
通过kill命令将进程杀死
建议直接将wifi关闭
然后将手机通过网线插在主路由上
连接之后可以在这里看到有线连接的图标
wifi和网线使用的接口是不一样的
所以ip地址也不一样
我们可以在手机终端查看ip地址
输入su 切换为root用户
输入ip a 回车
可以查看各个网络接口设备的信息
比如wlan0就是wifi的接口
wlan1就是手机开启wifi共享的接口
tun0就是vpn开启的虚拟网卡接口
eth0就是网线接口
可以在下方查看当前接口的局域网ip是192.168.0.111
还有mac地址
由于充电口被转换器占用
无法通过usb直接连接 电脑访问adb
可以使用adb connect 192.168.0.111
使用网络连接的方式访问adb
连接之后就可以进入shell了
现在我们的网关地址需要改成网线接入的地址
也就是192.168.0.111
但是我并不希望家里所有设备都翻墙
那就可以手动为单台设备设置网关
先将dhcp配置恢复
另外 网线接口在手机上配置静态ip不太方便
可以在你家的路由器上将接口的mac地址和ip进行绑定
这样也能实现每次连接都会分配相同的ip地址
接着我们来测试一下在连接网线的情况下测速是否有提升
先确定手机可以科学上网
接着回到刚才存放脚本的位置
此时需要修改一下脚本
将这里的接口改成网线接口
也就是eth0 保存退出
然后后台启动脚本
这里有一条提示信息
是之前添加的路由策略 不用管
ctrl+c退出即可
由于我们没有配置dhcp
下发给电脑的网关并不是手机的ip
所以需要手动配置电脑的ip地址
跟着视频的演示找到配置ip的位置
给电脑随便设置一个同网段的ip
关键是默认网关要设置成手机的ip地址
也就是111
另外关于dns 如果出现某些网站无法访问
大概率是dns污染的问题
将其改成1.1.1.1
可以缓解dns污染的问题
但是会出现其他问题
比如国内网站解析到国外
dns是一个比较棘手的问题
后续会专门出视频讲解
修改完成后 这台电脑的网关会变成手机
其他设备要想科学上网 也需要手动配置网关
尝试访问
可以看到是没有问题的
接着来测试一下 看看通过网线连接的方式对速度有没有提升
这个速度已经非常不错了
已经算是跑满我的带宽了
我直连也差不多只能跑到这个速度
最后再说一点注意事项
手机每次重启后网络设置都会被重置
需要再次重新启动一键脚本
有的手机可能熄屏之后 为了省电会降低设备性能
当路由器用肯定不能让这种情况发生
网络需要时刻保持稳定
将一切省电的选项全部关闭
性能调整为最优
并且关闭没必要的后台进程
这些的话就需要你自己去了解了
毕竟每个人的设备不一样
如果你的手机出现莫名其妙无法解决的问题
可以直接重启手机
网络设置都会被恢复
如果操作的过程中有什么问题 或者解决了什么疑难杂症
也可以在评论区给大家分享
完成知识的传递
这是第一种方式
使用安卓的VPN服务实现旁路网关
好处是可以直接在手机上切换节点
坏处是只能在手机上切换节点
如果手机不再触手可及的地方
切换节点还比较费劲
还有一种方式可以绕过安卓系统的VPN服务
直接使用linux内核加载v2ray
或者clash的内核实现旁路网关
通过clash的webui
就能在局域网的其他设备上切换节点了
就和普通的linux开发版用法是一样的
好处是切换节点比较方便
坏处是无法使用第三方VPN客户端
由于时间关系 本期就不介绍了
毕竟这个需求比较小众
如果你有需要请点赞留言转发
根据大家的反馈 再决定要不要单独做一期
你的支持是我更新的最大动力
感谢大家的支持 我们下次再见


原文链接:https://bulianglin.com/archives/android-gateway.html


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址