背景

最开始看到了这个项目 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

参考资料


↙↙↙阅读原文可查看相关链接,并与作者交流