前言
先说明一下标题并不夸张,确实能做到但是得有几个前提条件
- Android设备具打开了调试功能
- Android设备具有网络调试功能,一般需要先用adb tcpip 设定端口
- 会使用adb,scrcpy,frp(很简单) 这三种工具
- 具有公网服务器(手机的adb tcpip端口会转发到这个服务器上)
adb 我相信是个Android 程序员都会用,scrcpy 是投屏工工具,用起来也就一条命令而已,frp是一种网络穿透工具,可以把你的设备暴露到公网,这样你就可以在公网adb connect 到你的设备了.
scrcpy:投屏工具
frp:网络穿透工具
github地址:github.com/fatedier/fr…
中文使用手册:gofrp.org/docs/
使用步骤
1.先安装frp server端,具体操作十分简单,参考上文提到的frp 中文使用手册,需要注意的是这个需要安装到公网服务器(特别提醒,服务器用到的端口要打开)。
2.开启frp server端
可以参考我的frps.ini的配置,这是一个最简单的配置
- bind_port :是frp server 的基础配置,frp client端都从这里接入
- dashboard_port:是frp server dashboard 页面的端口,可以在浏览器中输入ip+dashboard_port 进入管理页面,和本文提到的功能没啥关系
服务器端的配置文件名为 frps.ini
[common]
bind_port = 9000
dashboard_port =9091
dashboard_user = userName
dashboard_pwd = passWord
3.在Android端 连接到frp server端,首先看客户端配置
客户端的使用方法有2种
1.作为单独的程序安装
推荐用这个 github.com/mainfunx/fr…
2.作为自己的项目的一部分
android版本frpc 编译非常复杂,辛亏有大佬编译好打成aar,省去了编译之库,把这个仓库集成到自己的项目中即可,基本只需要几行代码,下面的地址是我把某大佬的配置简化后,单独弄的仓库,配置更简单。
原版本地址:
客户端配置的文件名一般为 frpc.ini
[common]
server_addr = 这里填写你的公网服务器ip
server_port = 9000
[adb]
type = tcp
local_ip = 127.0.0.1
local_port = 5555
remote_port = 5555
[adbscreen]
type = tcp
local_ip = 127.0.0.1
local_port = 5005
remote_port = 5005
[common]配置
server_addr:就是你公网的ip
server_port:就是你server配置的端口接收的端口
[adb]配置
这个配置意义就是把你的Android设备本地端口接入到frp server的端口上,你的本地端口就是 adb tcpip 设置的端口号。这里的意思就是把你Android的5555端口接入到服务器的5555端口,这样你访问服务器的5555端口就相当于连接到你的设备了。这个端口可以随便设置,前提是没有被其他服务占用,配置好后,就可以通过adb connect连接 服务器ip和这个端口,连接到你的设备。
[adbscreen]
如果你用不到scrcpy,你可以不用配置,这个配置是把android 的 scrcpy的推流端口映射到服务器,让scrcpy 可以拿到手机屏幕推流,这样就可以实现可视化控制你的Android设备了。
frp 功能强大且高效,理论上只有还有端口可用无限配置内网转发,比如转发你内网的mysql,ssh,windows远程桌面等等.