# 写在前面

作为一名程序猿,💻外带是刚需。然而,由于游戏本过于笨重,并且续航能力被轻薄本和 Mac 薄纱🙃,因此严重阻碍了我试图迈出宿舍大门的脚步。所以为了解放饱受苦痛的肉体,我开始探索使用 iPad 远程控制电脑的方法…… 以下文章主要是关于 RD Client + frp 内网穿透(使用自建服务器)的过程,如果只使用校园网且 Windows 为专业版或企业版,可以直接忽略内网穿透相关内容,跳转到文末查看 RD Client 在 iPad 上如何配置。

# 常用远程桌面控制软件对比

  • 向日葵:用过一段时间,体验极其糟糕。首先要吐槽的就是它的鼠标单键映射。鼠标滚轮和右键全都不起作用,拖动和右击被映射到鼠标左键的两档长按,这是什么反人类的设计😅…… 此外远程桌面无法自适应 iPad 屏幕,如果想完整看到桌面,在 iPad 横向放置的情况下屏幕上部和下部都有大面积黑边,这直接导致文字过小,阅读吃力,很容易加深近视度数。
  • TeamViewer:舍友在用,上网查了一下发现免费版被吐槽疯狂弹商业使用提示,而付费版价格感人,所以 pass。
  • RustDesk:开源软件,完全免费,桌面端体验应该和 TeamViewer 相当,并且可以使用自建服务器。但是 ios 端似乎还在开发中,总是连接失败,所以很遗憾。
  • RD Client:微软开发的远程桌面控制软件,Windows 系统对其进行过专门优化,完全免费(前提是系统为专业版或企业版),体验上佳。缺点是仅支持内网连接(仅使用校园网是没有问题的),如果连接不同网络(例如笔记本在宿舍连接校园网但 iPad 在宿舍外连接热点),就要使用内网穿透。另外,iPad 远程控制 Windows 使用的仍然是 iPad 内置输入法。

# 内网穿透软件列举

  • coplar:有免费版本,但是没用过。
  • Sakura Frp:一款开源内网穿透软件,基于 frp,有免费版本,但是没用过。

# 前提条件

  1. 云服务器(非必须,可使用上述两款软件的免费版本替代,但是稳定性需自行衡量)
  2. Windows 10(或以上)专业版 / 企业版操作系统(可以淘宝购买密钥)

# 配置环境

我使用的是 Windows 10 专业版 amd64 架构作为客户端(也就是需要远程控制的平台),中转服务器采用腾讯云轻量级服务器搭载 ubuntu 20.04 系统,amd64 架构。Frp 版本号为 v0.44.0。

# 内网穿透配置

先挂一个很有帮助的网站:SakuraFrp 帮助文档

首先到 Frp Release 依据系统下载对应包。我在 Windows 平台上下载 frp_0.44.0_windows_amd64.zip ,在 Linux 平台上下载 frp_0.44.0_linux_amd64.tar.gz

# Linux 配置

建议在 su 模式下进行。

# ini 文件配置

tar -zxf frp_0.44.0_linux_amd64.tar.gz
mv ./frp_0.44.0_linux_amd64/* /usr/local/bin
cd /usr/local/bin
vim frps.ini

随后修改 frps.ini 文件:

[common]
bind_port = 7000
authentication_method = token ; [可选] 为了增加安全性所作的设置
token = <密钥> ; [可选] 为了增加安全性所作的设置,可以填写任意字符

# 防火墙端口设置

使用 firewalld 工具查看端口是否开放。

apt install firewalld
systemctl enable firewalld.service # 设置开机自启动
firewall-cmd --query-port=7000/tcp # 查询 7000 端口是否开放
# yes/no
firewall-cmd --query-port=3389/tcp # 查询 3389 端口是否开放
# yes/no
# 若未开放
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=3389/tcp --permanent
firewall-cmd --reload # 更新防火墙规则
firewall-cmd --zone=public --list-ports # 查看所有已打开端口

# 后台运行

nohup frps -c frps.ini & # 将 frps 挂在后台
ps -e | grep frps # 查看进程是否启动成功,如果没有输出,请查看 nohup.out 报错信息

# 随系统启动设置

vim /lib/systemd/system/frps.service

写入

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c frps.ini # 注意frps和frps.ini的路径,如果不同需自行更改
[Install]
WantedBy=multi-user.target

随后打开自启动

systemctl enable frps

# Windows 配置

# ini 文件配置及 frps 运行

win + I 打开系统设置,依次点击系统 -> 远程桌面并开启。Windows 默认的远程桌面端口为 3389,我们不做修改。将下载得到的压缩包解压放在合适的路径,我个人选择 C:\Program Files\frp_0.44.0_windows_amd64 。打开文件夹编辑 frpc.ini ,设置如下:

[common]
server_addr = <中转服务器公网IP地址>
server_port = 7000 # 用于和中转服务器连接的端口,与服务器bind_port参数一致,如有端口冲突需要自行更换
authentication_method = token # [可选] 为了增加安全性所作的设置
token = <密钥> # [可选] 为了增加安全性所作的设置,可以填写任意字符
[RDP] # 名字可以随便起,如果有不同客户端需求注意不能重复
type = tcp
local_ip = 127.0.0.1 # 本地ip
local_port = 3389 # Windows本地远程桌面连接端口,默认值为3389
remote_port = 3389 # 中转服务器远程桌面连接端口

打开 cmd,运行 frpc.exe

frpc.exe -c frpc.ini

注意这样直接运行须保持 cmd 窗口开启,若想要后台运行,可以使用下方提供的 bat 脚本。

注意在 Linux 中运行的是 frps -c frps.ini ,而在 Windows 系统下运行的是 frpc.exe -c frpc.ini

# 开机自启配置

创建 run.bat 文件,粘贴如下内容:

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\Program Files\frp_0.44.0_windows_amd64
frpc.exe -c frpc.ini
exit

按下 win + r 打开运行窗口,输入 shell:startup ,将 bat 文件复制到打开的位置内,则该脚本会在开机后自动运行(目前看来好像有 bug,开机后需要手动启动一次,可以创建一个快捷方式放在桌面)。这个脚本会在后台启动 frqc.exe 进程而无需保持命令行打开。在任务管理器的详细信息中应当可以看到 frpc.exe 进程运行。

# iPad 端 RD Client 配置

进入 APP Store 搜索下载 RD Client。打开后点击左上角加号添加电脑。

如果只使用内网连接(仅使用校园网),只需要在电脑名称一栏填写 Windows 电脑的 IP 地址(可在 cmd 中输入 ipconfig 查看网络的 ipv4 地址),用户账户一栏填写 Windows 系统账户名称和锁屏密码(可以在 win + i 设置 -> 账户中查看)。

如果需使用不同网络,在电脑名称一栏填写 <中转服务器公网IP>:3389 ,用户账户一栏依旧填写 Windows 系统账户名称和锁屏密码即可。

最终效果:

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

John G 微信支付

微信支付

John G 支付宝

支付宝