这篇文章上次修改于 891 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

前言

由于某些网络环境限制,PC端无法访问手机,但手机可以访问PC

这个时候又不想用usb连接,那么就可以利用ssh来反向代理和端口转发

这样PC就能访问到手机然后愉快的使用无线adb了

步骤

手机上可以用termux、Magisk插件,或者eadb环境

eadb环境准备请参考

我这里选择termux

电脑配置ssh

反向代理需要PC端开启ssh服务

可以通过下面的命令启动ssh服务,注意需要以管理员权限运行

net start sshd

如果你的电脑没有ssh,请参考

PC的ssh配置文件路径是C:\ProgramData\ssh\sshd_config

毕竟ssh服务有风险,所以改下配置,禁止密码登录

修改如下,这样就只能通过密钥登录了

PubkeyAuthentication yes
AuthorizedKeysFile    .ssh/authorized_keys
PasswordAuthentication no
# Match Group administrators
#        AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
  • 务必设置PasswordAuthentication no以禁止通过密码登录
  • 注意Match Group administrator和下一行需要注释掉

cmd重启ssh

net stop sshd
net start sshd

如果是powershell则使用下面的命令

Restart-Service sshd

补充,如果换了端口后连不上,再试试取消ListenAddress 0.0.0.0的注释,如果还是不行,那可能是防火墙的限制

这里设置为公钥登录了,不换端口也还好

手机配置ssh

这里用termux来操作,先下载apk进行安装

打开termux安装ssh

pkg install openssh

ssh-keygen生成密钥

公钥在/data/data/com.termux/files/home/.ssh/id_rsa.pub

把文件内容复制到PC端的%USERPROFILE%\.ssh\authorized_keys文件中,如果没有请手动创建

如果多个公钥,那么authorized_keys每行一个

添加之后重启下PC端的ssh服务

先打开无线adb功能

现在通过下面的命令实现反向代理和端口转发

ssh -NfR 15555:127.0.0.1:5555 [email protected]
  • 15555电脑本地端口
  • 127.0.0.1 是指手机的host,也可以换成localhost
  • 5555手机上无线adb的监听端口
  • username电脑的用户名
  • 192.168.1.140电脑的ip地址

正常情况下,现在可以通过下面的命令通过电脑连接到手机的无线adb了

adb connect 127.0.0.1:15555

然后可以看到电脑成功连上了

参考