公网访问内网手机,利用ADB设备的神奇技巧
背景
在许多场景下,从公网访问位于内网的设备颇具挑战,主要原因在于大多数用户没有独立的公网 IP 地址。
相应产品有花生壳盒子,但是这玩意限速,所以自己搭建一个比较好。比如使用FRP来搭建。
而借助 Frp 服务器进行内网穿透,不仅操作简便,而且数据传输速度快。通过内网穿透,我们可以实现诸多实用功能,如远程桌面控制、文件共享等。
内网穿透概述
内网穿透,简单来说,就是让处于内网环境的服务器或者被防火墙保护的机器,能够对外提供服务,突破网络访问的限制。
frp支持:mac、linux、win、安卓/ios
frp分为服端和客户端端:frps为服务端/frpc为客户端.
服务端配置(Frps)
1. 准备服务器
准备一台具备公网IP或者域名的云服务器,以用于搭建 Frp 服务端。
注意:需要在防火墙和云网络策略里,开通相应端口
2. 下载并部署 Frp
访问 Frp 官方发布页面 下载 Frp。下载完成后,将其上传到服务器。

压缩包里包含服务端(FRPS)和客户端(FRPC)然后进行如下操作:
# 创建并进入 frp 目录
mkdir frp && cd frp
# 解压下载的文件
tar -zxvf frp_0.46.1_linux_amd64.tar.gz
# 重命名文件夹
mv frp_0.46.1_linux_amd64 frp
# 进入 frp 目录
cd frp
# 赋予 frps 可执行权限
chmod +x frps
# 查看 frps 帮助信息
./frps --help
若执行 ./frps 时提示 -bash: ./frps: cannot execute binary file: Exec format error,则说明下载的版本与服务器架构不匹配,需要重新下载正确的版本。
注意:服务时间和手机时间一定要一致!
3. 配置服务端
修改 frps.toml (后续版本都是toml,0.51之前都是ini末尾的文件)文件的默认配置内容,将端口设置为 7000(可根据需求调整):
[common]
bind_port = 7000
4. 启动与终止服务
启动服务:使用以下命令在后台启动 Frp 服务,并将日志输出到
log_out.txt文件中。
nohup ./frps > log_out.txt 2>&1 &
终止服务:若需要停止服务,可先通过以下命令查找 Frp 进程的 PID,然后使用
kill命令终止该进程。
ps -def | grep frps
kill -9 [PID]
客户端配置(Frpc)
1. 开启手机调试端口
将手机通过 USB 连接到电脑,在电脑上打开终端,执行以下命令开启手机的 TCP/IP 调试端口:

adb tcpip 5555
2. 下载并配置客户端 Frp
下载适用于安卓设备的 frp_0.46.1_linux_arm64 版本。修改 frpc.ini 配置文件的内容:
[common]
# Frp 服务器的公网 IP 地址
server_addr = 39.103.197.82
# Frp 服务端口
server_port = 7000
[adb]
type = tcp
# 本地回环地址
local_ip = 127.0.0.1
# 手机调试端口
local_port = 5555
# Frp 服务穿透的端口
remote_port = 8555
3. 上传并启动客户端
使用 adb 命令将配置好的 Frp 客户端上传到手机的 /data/local/tmp/frp 目录:
adb push frp_0.46.1_linux_arm64 /data/local/tmp/frp
上传完成后,通过 adb shell 进入手机的 shell 环境,执行以下命令启动客户端:
cd /data/local/tmp/frp
chmod 755 ./frpc
nohup ./frpc > log_out.txt 2>&1 &
注意事项
务必前云服务器控制台的安全组设置中,开放端口 7000 和 8555,以确保数据能够正常传输。
远程连接
在完成上述配置后,即可使用以下命令通过公网连接安卓设备:
adb connect [服务器公网 IP]:8555
若连接成功,将显示 connected to [服务器公网 IP]:8555。使用以下命令查看已连接的设备:
adb devices
输出结果应显示已连接的安卓设备信息:

List of devices attached
[服务器公网 IP]:8555 device
通过以上步骤,你就可以成功地使用 ADB 连接位于公网的安卓设备,实现远程调试和控制等功能。
注意:
如果要求不高,也可以用frp for android ,具体软件配置如下图


这个是安卓客户端,可以直接代替FRPC的命令版(实际上功能是一样的,但是版本较低)

代号847
校验提示文案
代号847
校验提示文案