本文介绍一种基于windows远程桌面,使用任意设备远程连接到windows电脑的方式
至少需要1台服务器(本文以centos7.9操作系统的云服务器为例)
需要1台windows电脑(本文以内核版本为19045.2965的windows10家庭版为例)
任意远程桌面软件(本文以mac操作系统下的Minecraft Remote Destop为例)
#服务端配置
##安装
centos7.9操作系统下载以下文件
- 将文件上传到服务器用户目录,以root为例
使用tar -zxvf frp_0.48.0_linux_amd64.tar.gz
解压
- 进入
frp_0.48.0_linux_amd64
目录修改配置文件
其中以ftpc开头的文件均为客户端需要,服务端可以直接删除
##修改配置
修改frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
token = Dd112211
dashboard_user = violet
dashboard_pwd = Dd112211
bind_port:客户端与服务器通信的端口,默认为7000
dashboard_port:frp管理面板端口
token:客户端与服务器连接的验证token
dashboard_user:管理面板用户名
dashboard_pwd:管理面板密码
##启动
执行以下命令,此种方法需要服务器连接窗口一直开启,不推荐使用
./frps -c ./frps.ini
##自启动
使用system工具实现开机自启和后台运行
以下内容来自
- 安装system工具
yum install systemd
- 修改启动配置文件
vi /etc/systemd/system/frps.service
- 文件写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp_0.48.0_linux_amd64/frps -c /root/frp_0.48.0_linux_amd64/frps.ini
[Install]
WantedBy = multi-user.target
- 启动命令
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
- 设置开机自启
systemctl enable frps
- 服务端开启端口7000,7500,7001(后面会用到)
sudo firewall-cmd --permanent --zone=public --add-port=7000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=7500/tcp
sudo firewall-cmd --permanent --zone=public --add-port=7001/tcp
# 重启防火墙
sudo firewall-cmd --reload
至此,服务端配置完毕
#客户端
##安装
下载后解压到D:\Program Files\frp_0.48.0_windows_amd64
以frps开头的文件均为服务端所需要,可以直接删除
##配置
修改frpc.ini
[common]
server_addr = <此处替换为你的服务器ip>
server_port = 7000
token = Dd112211
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
server_addr:服务区地址
server_port:客户端同服务区交互端口
token:连接到服务端所需token
type:连接类型:udp或tcp
local_ip:本地访问ip
local_port:本地访问端口,windows远程桌面默认访问端口为3389
remote_port:远程访问端口
此处配置文件的意思时,使用server_addr:remote_port连接到local_ip:local_port,相当与访问<此处替换为你的服务器ip>:7001 == 访问127.0.0.1:3389
##启动
进入powershell,使用以下命令启动
./frpc.exe -c ./frpc.ini
之后使用其他设备通过<你的服务器ip>:7001,就可以远程访问到windows设备了
如果此时无法访问,请按照以下步骤检查
##自启动
程序目录新建文件start.bat
@echo off
:home
./frpc.exe -c ./frpc.ini
goto home
打开任务计划程序
程序或脚本填start.bat文件位置,例如:D:\Program Files\frp_0.48.0_windows_amd64\start.bat
起始于填start.bat
所在文件夹路径,例如:D:\Program Files\frp_0.48.0_windows_amd64
#错误检查
##服务器端口是否开启
sudo firewall-cmd --list-ports
##客户端电脑是否允许3389端口
进入防火墙高级设置,新建入站规则
添加允许3389端口##客户端是否开启远程桌面
如果以上检查无误,仍然无法连接,请到frp github查看相关issue注:windows家庭版无法使用被远程桌面连接,专业版可以被远程桌面连接如果你是windows家庭版,需要进行以下配置
#windows家庭版配置
windows家庭版无法通过windows10设置开启远程桌面,需要使用补丁(此方法在windows版本19045.2965可用,高于此版本可能导致失效),如果该方法失效,请到github issue寻找最新的解决方案。
(此方法已在2020年失效)推荐升级到windows专业版
2023年以后的请看以下方法,穿越回去的可以忽略
##下载软件
##安装1
将RDPWrap解压到C:\Program Files\RDP Wrapper
使用管理员身份运行install.bat
等待安装结束,点击RDPConf.exe
Wrapper state
,Service state
,Listener state
应该为全绿状态,此时远程桌面可以正常访问,如果有红色,请看下面方法##安装2
解压autoupdate到C:\Program Files\RDP Wrapper
目录下,使用管理员身份运行update.bat
以管理员身份打开powershell,运行以下命令
net stop termservice
net start termservice
再次打开RDPConf.exe
查看左上角状态是否为绿,如果不是继续下一步
打开rdpwrap.ini
,如果没有自行创建,删除原文件内容,粘贴以下内容(从下方链接获取)
之后再执行:以管理员身份打开powershell,运行以下命令
net stop termservice
net start termservice
再次打开RDPConf.exe
查看左上角状态是否为绿,如果此时状态为绿的,再次启动客户端frp即可./frpc.exe -c ./frpc.ini
,如果还是不行,到
至此,你应该可以使用任意软件通过服务器远程到windows电脑了。
#widnows安装服务
下载winsw
将下载的WinSW-x64.exe
重命名为winsw.exe
创建winsw.xml
<service>
<id>frpc_service</id>
<name>frpc Service</name>
<description>frpc service for automatic startup and restart</description>
<executable>frpc</executable>
<arguments>-c ./frpc.toml</arguments>
<onfailure action="restart" delay="10 sec" />
</service>
启动
winsw.exe install
winsw.exe start