zhaoolee 最近热衷于和海外热心老哥们交换硬盘中的单机游戏资源(BT下载),家中有Windows台式机, 适合长时间挂机下载BT资源,zhaoolee希望能随时连接到Windows台式机新增下载任务,安装体积超大的主机游戏。
另外,公司有一台插着实体EV软件签名证书(一个U盘)的Windows打包机器,我希望在任何地点,都能连接到Windows机器进行打包签名。
Windows自带了远程连接的方案,免费,简单稳定,没有广告弹窗,无需注册,输入对方的ip,机器名/用户名,密码 即可进行连接;
我们只需为Windows配置一个公网IP即可被顺利远程连接,公网IP可以通过购买云服务器VPS获取,frp可以将云服务器VPS的IP映射到Windows;
frp提供内网穿透的功能,frp分为「客户端frpc」和「服务端frps」两部分,frps运行在拥有固定IP的服务器,一个frps 可以为多个 frpc 提供服务;frps设置token对请求连接的frpc进行身份验证;
frpc通过验证后,则可以顺利接收服务端特定端口收到的数据,实现Windows「等效拥有」服务端IP的效果。
我在frpc配置文件指定「服务端7001端口接收的数据」全部转发到「Windows的3389端口」,我们访问「服务端IP:7001」就等同于访问「Windows的3389端口」
完成服务端frps配置
首先搞一台云服务器
- 安装配置frp服务端程序frps
cd /opt/
sudo wget https://github.com/fatedier/frp/releases/download/v0.46.0/frp_0.46.0_linux_386.tar.gz
sudo tar zxvf frp_0.46.0_linux_386.tar.gz
cd /opt/frp_0.46.0_linux_386
编辑frps.ini, 添加token字段
[common]
bind_port = 7000
token = 'frp连接密码'
设置开机启动
vim /etc/systemd/system/frps.service
在frps.service中写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/frp_0.46.0_linux_386/frps -c /opt/frp_0.46.0_linux_386/frps.ini
[Install]
WantedBy = multi-user.target
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
# 配置 frps 开机自启
systemctl enable frps
完成Windows客户端frpc配置
frp下载地址: https://github.com/fatedier/frp/releases/
绝大多数Windows笔记本下载这个包:https://github.com/fatedier/frp/releases/download/v0.46.0/frp_0.46.0_windows_386.zip
MacBook M系芯片Windows虚拟机下载这个包: https://github.com/fatedier/frp/releases/#:~:text=frp_0.46.0_windows_amd64.zip
- 解压下载好的压缩包, 修改frpc.ini ,参考配置如下
[common]
server_addr = 47.242.12.38
server_port = 7000
token = 'frp连接密码'
tls_enable = true
[RDP7001]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
如果你需配置连接第二台Windows,只需将「RDP7001」 改为「RDP7002」, 「remote_port = 7001」 也改为 「remote_port = 7002」即可,第三台,第四台,以此类推....
这里我们开放了7001端口,如果访问阿里云服务器「公网IP:7001」(记得在阿里云防火墙开放7001端口,否则frpc无法连接成功),数据将被直接转发到Windows的3389端口
- 使用命令行启动frp客户端frpc
.\frpc.exe -c .\frpc.ini
用另一台设备连接Windows台式机
我们需要准备好被连接Windows的「电脑名称」,「用户名」,「登陆密码」,可以在「系统-远程桌面」界面内查看到
Windows连接
- 填写登陆信息
- 填写密码
- 信任证书
- 登陆成功
macOS连接
首先下载安装macOS 安装 Microsoft Remote Desktop https://install.appcenter.ms/orgs/rdmacios-k2vy/apps/microsoft-remote-desktop-for-mac/distribution_groups/all-users-of-microsoft-remote-desktop-for-mac
- 安装
- 添加PC
- 输入ip端口号
- 输入用户信息,添加用户
-
连接
-
继续
连接成功
- 如果要使用iOS客户端,下载地址: https://apps.apple.com/app/microsoft-remote-desktop/id714464092
将Windows frpc配置导入frpmgr 设置frpc开机启动
按照目前的方案,每次开机都要使用命令行启动frp客户端frpc
.\frpc.exe -c .\frpc.ini
我们如果想随时随地连接到Windows,就要把frpc客户端改成开机自启服务
这里推荐一个开源项目:https://github.com/koho/frpmgr 这个项目相当于给frpc加了图形化界面,安装后,可以支持导入已有的frpc.ini配置文件,并且自动设置开机自启,下载页面 https://github.com/koho/frpmgr/releases
- 导入配置
- frpc已经成功自动启动的服务
即使我们关闭图形化界面的frp管理器,frp管理器也会在系统后台运行
至此,我们实现用自己的服务器,转发流量进行远程桌面连接,只要Windows联网,就能被顺利连接到,成了服务器一样的存在。
小结
远程连接Windows是一个很常见的需求,于是各类远程连接软件应运而生,但我经过尝试后,发现第三方软件有「每次开机强制修改连接密码」「强制要求用户登陆」「限制用户连接数量」「一段时间后自动断开」「画面卡成狗」「键鼠操作超高延迟」等各种各样的问题...
如果我使用Windows自带的远程连接,则以上痛点都不存在,只要每月24元买个IP,附带1TB流量,与BT种子提速下载,网站流量负载,Github加速访问均摊一下,远程连接这一项每月可能也就几块钱,还保证了数据安全,确实是很经济实惠的折腾。