ATX 让手机通过 USB 数据项使用 PC 的网络上网 Reverse tetherining

codeskyblue · 2019年01月14日 · 最后由 Seryta 回复于 2019年08月14日 · 4890 次阅读

背景

最开始看到了这个项目 https://github.com/Genymobile/gnirehtet

作者很有意思,直接把单词 tethering 字母反过来 gnirehtet 作为项目名,tethering 的意思是将手机的网络分享给 PC 或其他设备。反过来就是将 PC 的网络分享给手机。
为什么会有这个需求呢?想象一下,一堆手机连接同一个 WiFI 热点,速度将会多么的缓慢。但无论 WiFi 多慢,电脑的网速始终快的飞起。
如果能将电脑的网络通过数据线分享给手机使用,那手机的网络也会变得飞快。

不过 gnirehtet 因为跟我的手机不合,运行不起来。不过既然有这个思路了,用别的技术也能实现。下面用 Shadowsocks 方式做演示

依赖安装

因为需要依赖adb reverse这个功能,所以 Android 需要 >=5.0,adb 需要>=1.0.36。

首先手机安装

# 启动shadowsocks server: aes-256-cfb 12345678
$ pip install shadowsocks
$ ssserver -k 12345678

# 测试一下设备是否连接上,设备序列号因人而异
$ adb devices
List of devices attached
10.0.1.173:6174     device

# adb reverse  设备端  PC端
$ adb reverse tcp:8388 tcp:8388 

手机安装 影梭 下载地址 https://github.com/shadowsocks/shadowsocks-android/releases
安装完之后打开配置界面

服务器配置为:127.0.0.1 远程端口:8388 加密方式:AES-256-CFB
关闭 DNS 转发功能。(因为 adb reverse 没有 forward UDP 的功能,所以不要开 DNS 转发)

配置完之后,点击纸飞机,然后测试一下连接,就可以体验到电脑端的闪电的网速了。⚡

遗留问题

  1. DNS 转发没弄。
  2. 虽然下载速度快了,但是看起来延迟也大了。大约 200ms

参考资料

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 7 条回复 时间 点赞

记得 360 、猎豹都可以分享 PC 端的 wifi 给手机使用吧?

Jerry li 回复

跟 WiFI 共享不一样,这个是通过 USB 数据线共享网络给手机。即使没有什么信号,手机也能上网

收藏,以防万一

gnirehtet 和 shadowsocks 我这里都运行成功了。
我电脑是 win7,安装 shadowsocks 前需要先装 openssl,并且把安装路径加入环境变量才行。
我理解的原理是:用 *** 让电脑作为服务器去发送和接收数据,然后通过 adb reverse 把得到的数据传到手机里。
这种方式用来监听手机流量还是很方便的(不用 root 就很爽)

codeskyblue 专栏文章:2018年 终总结 中提及了此贴 02月18日 10:26

请教为什么我的连接上之后没有网络连接?gnirehtet 连接之后手机不弹出代理的申请没法用,我的是华为手机

Seryta 回复

另外问一下,shadowsocks server 是在手机上安装的对吗?

8楼 已删除
Seryta 回复

Gnirehtet 的问题解决了,在 issues 找到了解决方法,华为系统的问题,在电池设置的自启动里放行就可以了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册