【技能拾遗】——手机远程控制方案(中继服务器版)

📖 前言:面对长辈使用智能手机的困境,市面远程协助软件或昂贵、或繁琐、或有跨品牌壁垒。本文分享一种自建方案:通过云服务器与开源工具WireGuard搭建专属安全网络,实现手机间直连与控制。
在这里插入图片描述


🕒 1. 工具准备与介绍

🕘 1.1 云服务器

选择一台基于Linux 5.5内核及以上的云服务器,此处选择阿里云的轻量应用服务器。

🕘 1.2 WireGuard

WireGuard介绍:WireGuard被设计为在嵌入式接口和超级计算机等上运行的通用端到端加密工具,适用于许多不同的环境,可以跨平台广泛部署。
Linux从5.5内核开始已集成WireGuard,因此它运行在内核空间,大大提高了性能和稳定性。

🕘 1.3 甲壳虫ADB助手

介绍:让复杂的ADB命令变得简单,一键连接设备,可视化操作,授予无线调试权限后通过内置的scrcpy组件传输画面,比起“无障碍”权限更稳定快捷。

🔎 甲壳虫ADB助手软件下载

🕒 2. 一键安装教程

🔎 【晨钟酱】手机远程控制的终极方案?无需家庭公网IP!

由于我的服务器环境在使用视频中的脚本时,会遇到环境识别的错误,因此本文主要介绍手动配置的过程。

[admin@xxx ~]$ sudo bash wireguard.sh
Error: CentOS 8 or higher is required to use this installer.
This version of CentOS is too old and unsupported.

市面上绝大部分发行版均已支持,只不过脚本的检测逻辑过时,只需要用如下命令判断内核版本即可

[admin@xxx ~]$ uname -r
5.10.134-18.al8.x86_64

🕒 3. 手动安装教程

🕘 3.1 服务器配置

🕤 3.1.1 下载工具

# 安装 WireGuard 工具
sudo yum install -y wireguard-tools

# 验证安装
wg --version

🕤 3.1.2 生成服务器密钥对

cd /etc/wireguard
umask 077
wg genkey | tee server_privatekey | wg pubkey > server_publickey
cat server_privatekey
cat server_publickey

记录好公私钥,后续会用到。

Tip: 注意需要切换root用户才能访问这个目录,生成前先 su root

[admin@xxx ~]$ cd /etc/wireguard
-bash: cd: /etc/wireguard: Permission denied

🕤 3.1.3 创建配置文件

创建 /etc/wireguard/wg0.conf,并打开编辑:

touch wg0.conf
vim wg0.conf
[Interface]
# 服务器私钥 (server_privatekey)
PrivateKey = xxx
# 服务器监听端口
ListenPort = 51820
# 分配给服务器的内网IP地址
Address = 10.66.66.1/24
# 保存后自动启用(可选)
SaveConfig = true

配置好之后,启动该服务

systemctl enable --now wg-quick@wg0

🕤 3.1.4 IP层配置

# 启用IP转发
sysctl -w net.ipv4.ip_forward=1
# 配置 iptables 规则,允许 VPN 网段转发
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT

Tip: 如果不配置 iptables 规则,也能连接。但是会引发高丢包率与卡顿。

🕤 3.1.5 防火墙放行

找到云服务器控制台的防火墙区域,放行该端口的UDP流量

在这里插入图片描述

🕘 3.2 配置客户端

🕤 3.2.1 生成客户端密钥对

# 在服务器上为客户端(手机)生成密钥
wg genkey | tee phone_a_private.key | wg pubkey > phone_a_public.key
wg genkey | tee phone_b_private.key | wg pubkey > phone_b_public.key

同样记录好公私钥。

🕤 3.2.2 添加客户端到服务器配置

vim wg0.conf

打开 /etc/wireguard/wg0.conf,并在末尾添加:

[Peer]
# 客户端A
PublicKey = xxx
AllowedIPs = 10.66.66.2/32

[Peer]
# 客户端B  
PublicKey = xxx
AllowedIPs = 10.66.66.3/32

🕤 3.2.3 创建客户端配置文件

touch phone_a.conf
vim phone_a.conf

创建 /etc/wireguard/phone_a.conf,并打开编辑:

[Interface]
# 客户端A私钥 (phone_a_private.key)
PrivateKey = xxx
# 分配给客户端A的内网IP地址
Address = 10.66.66.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = xxx
# 服务器公网IPv4地址
Endpoint = 8.138.xxx.xxx:51820
AllowedIPs = 10.66.66.0/24
PersistentKeepalive = 25

🕤 3.2.4 二维码生成

# 安装二维码生成工具
yum install -y qrencode

# 生成二维码
qrencode -t ansiutf8 < phone_a.conf

在这里插入图片描述

🕘 3.3 手机端配置

在谷歌商店搜索并下载该软件
在这里插入图片描述
打开软件后,点击右下角“+”号 → 扫描二维码
在这里插入图片描述
确认配置是否与刚刚所填写的一致,注意 远程区域 的路由IP地址段应改为 .0/24,随后开启连接
在这里插入图片描述
当看到流量有接收时,代表客户端与服务器连接正常

接下来同理,按照上述步骤配置好客户端B,注意分配给客户端B的内网IP地址需修改,不能和A相同。

🕘 3.4 连接检查

🕤 3.4.1 隧道状态

wg show

在这里插入图片描述
输出显示隧道已建立,有 latest handshake,说明控制层面连通。

🕤 3.4.2 连通性

# 服务器 ping 客户端
ping -c 3 10.66.66.2
ping -c 3 10.66.66.3

# 服务器 ping 自身 VPN IP
ping 10.66.66.1

在这里插入图片描述
手机A Ping 服务器,手机A Ping 手机B

在这里插入图片描述

手机端网络测试软件:
🔎 TP-LINK网络百宝箱

🕘 3.5 被控端配置

手机B:开发者配置 → 无线调试
手机A:打开甲壳虫ADB助手,输入IP地址和端口,随后会弹窗是否允许调试,同意后即连接成功,仅第一次需配置,以后不需要。
在这里插入图片描述

🕒 4. 最终效果

在这里插入图片描述
注:由于甲壳虫ADB助手长期未更新,其自带的scrcpy内核较旧,因此在控制安卓15及以上的设备时会出现黑屏,此时只能改为兼容模式运行。


OK,以上就是本期知识点“手机远程控制方案(中继服务器版)”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值