搭建RDP

最近有远程办公的需要,同时工作通勤距离较远,而且工作的笔记本必须用Windows系统,于是决定搭一个RDP工作站,能够随时连接远程桌面

准备RDP

在一切开始前,建议先了解关于OS中用户和会话的关系。在新版Windwos中,也支持多用户多会话的使用计算机,因此要先考虑好自己搭建远程桌面的目标是单会话还是多会话的,选择合适的RDP服务端

主要需要注意,在我的Windows10企业版中,自带的RDP只支持单会话操作,而大部分RDP服务端都是可以自行设置的

本文章只是本人的技术总结,仅供参考,务必根据自身情况选择合适的技术方案。

Linux

使用xrdp

Windows

先查看Windows版本,在专业版及以上的Windows自带RDP服务器,在设置里打开即可

而家庭版的RDP服务是被毙掉的,因此就又到了和微软勾心斗角的环节。可以使用RDPwrap来绕过限制

RDPwrap安装比较简单,下最新release脚本一键装即可,之后开RDPConf.exe调设置,如果Listener state一直不是Listening,大概率是配置文件要更新(毕竟本体很多年没维护了)

RDPwrap.ini中下载合适的版本然后替换掉原本的,Windows中默认位置为C:\Program Files\RDP Warp,注意每次Windows更新后,尽量检查是否仍然起效

内网解析

有在内网远程访问主机的需要,但是主机可能随时启停,ip不固定,所以为其分配一个动态dns域名来随时解析至主机

使用ddns-go

ddns-go在Windows上的部署很方便,能够单命令安装服务,有web端的配置界面,基本属于傻瓜操作

如何操作在ddns-go的文档中写的非常详细了,在此简单带过,不再赘述

在dns服务商注册apikey,保存好填入配置

我们需要拿到内网地址,获取ip的方式选通过网卡获取,找到对应内网ip的网关。域名填写apikey对应账号可以操控的域名,如果你的DNS服务商api不支持新注册域名解析,就先创建一个域名解析让ddns修改

DDNS config

也可直接编辑yaml。可以在有图形化配置的地方保存后导入。下给出一例:

dnsconf:
    - name: ""
      ipv4:
        enable: true
        gettype: netInterface
        url: https://myip.ipip.net, https://ddns.oray.com/checkip, https://ip.3322.net, https://4.ipw.cn, https://v4.yinghualuo.cn/bejson
        netinterface: 以太网
        cmd: ""
        domains:
            - omen.dedfaf.tech
      ipv6:
        enable: false
        gettype: netInterface
        url: https://speed.neu6.edu.cn/getIP.php, https://v6.ident.me, https://6.ipw.cn, https://v6.yinghualuo.cn/bejson
        netinterface: ""
        cmd: ""
        ipv6reg: ""
        domains:
            - ""
      dns:
        name: alidns
        id: 
        secret: 
      ttl: ""
user:
    username: 
    password: 
webhook:
    webhookurl: ""
    webhookrequestbody: ""
    webhookheaders: ""
notallowwanaccess: true
lang: zh

内网穿透

有外网远程访问主机的需要,使用frp将3389端口暴露至公网

注意使用这种方法将电脑登录暴露公网有风险,建议完善登录措施,或者在公网ip上下功夫,例如反代关闭ip直链,请务必重视安全性

使用frp将RDP端口(默认3389)映射至外网端口即可。RDP默认使用tcp连接,如需要也可以将udp映射,rdp可以自行选择效果更好的协议