图片来源:https://www.pixiv.net/artworks/86467376
安装
安装adb
Arch Linux
sudo pacman -S android-tools
Ubuntu
sudo apt install adb
安装gnirehtet
Arch Linux可通过aur安装
paru -S gnirehtet
Ubuntu 需要手动下载,访问https://github.com/Genymobile/gnirehtet/releases下载最新版,有java版和rust版,个人建议下载rust版的,rust版的解压后仅包含两个文件“gnirehtet”和“gnirehtet.apk”。
进入解压目录,手动安装(不是必须的,可以跳过)
sudo mkdir /usr/share/gnirehtet/
sudo cp ./gnirehtet.apk /usr/share/gnirehtet
sudo cp gnirehtet /usr/local/bin/
# 2023-02-22更新:~/.pam_environment 文件已弃用,使用 /etc/environment 替代
# echo "GNIREHTET_APK=/usr/share/gnirehtet/gnirehtet.apk" >> ~/.pam_environment
sudo bash -c 'echo "GNIREHTET_APK=/usr/share/gnirehtet/gnirehtet.apk" >> /etc/environment'
手机进入开发者模式并打开USB调试
不同手机界面会有些区别,但都差不多,设置里找到系统版本号连点7下,会提示进入开发者模式,之后再找到“开发者选项”,打开USB调试即可(也有叫Android调试的)
连接电脑
插入数据线将手机连接到电脑,手机会有弹窗“允许USB调试吗?”,点击允许(有的手机不会弹窗,默认仅充电,可以在通知栏修改连接选项)
可通过命令查看是否已连接
adb devices
List of devices attached
75a0a88d device
List of devices attached
75a0a88d unauthorized
运行
注意:如果你的手机有其他VPN软件并且该VPN设置了“始终开启的VPN”选项,请先关闭,否则即使连接了“Gnirehtet”也可能中途断开无法上网
执行以下命令,会自动检测、安装“gnirehtet.apk”到手机、添加VPN(手机会弹出提示,需要确认)并转发手机网络数据
#Arch Linux 或者 Ubuntu已安装并已经注销重新登录 执行
gnirehtet run
#Ubuntu 已安装但未重新登录 执行
GNIREHTET_APK=/usr/share/gnirehtet/gnirehtet.apk gnirehtet run
#Ubuntu 未安装 进入解压目录执行
./gnirehtet run
要停止的话,电脑上直接“Ctrl + C
”就行
抓包
wireshark找不到网卡无法抓包解决方法:linux下wireshark无法抓包问题
wireshark抓电脑有线网卡的包即可。由于这种共享网络的方式没有使用额外网口,只能抓电脑出口网卡的报文,手机产生的报文会和电脑本身发送/接收的报文混在一起,算是个缺点
可选:添加gnirehtet快捷启动方式(Desktop entries)
在“~/.local/share/applications/
”添加一个desktop文件,让桌面环境菜单能够找到并添加该程序(当然这个desktop文件可以放到任何目录,比如桌面,双击即可运行)
[Desktop Entry]
Name=Gnirehtet
Icon=utilities-terminal
Comment=Gnirehtet provides reverse tethering for Android
Exec=gnirehtet run
StartupNotify=true
Terminal=true
Type=Application
Categories=Utility;
更新数据库
update-desktop-database ~/.local/share/applications
参考:
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。