前言
在局域网内远程连接可以直接使用 Windows 提供的“远程桌面连接”,官方网址
但是很多时候我们并不在同一局域网下,需要通过公网访问
参考文章https://zhuanlan.zhihu.com/p/400086370 实现在任意网络下访问远程电脑,如有侵权,联系删除
准备
-
云服务器(我使用的是阿里云服务器,购买时会为服务器分配公网 ip)
-
本文使用了微软的“远程桌面连接”,因此需要 Windows 的专业版及以上操作系统,家庭版似乎没有这个功能;升级系统不再赘述,激活可以用 kms 服务器
开始
开启远程桌面连接
参考微软官方说明(https://support.microsoft.com/zh-cn/windows/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2-5fe128d5-8fb1-7a23-3b8a-41e636865e8c)启用远程桌面。远程桌面使用了微软的 RDP 协议,大部分渲染在连接设备上完成,因此流畅度比其他基于视频传输的远程桌面软件有很大提升。
然后在 windows PowerShell 输入 ipconfig
,找到当前局域网下的 IPv4 地址,记录下来,用于后续局域网内连接。
在连接设备上安装远程桌面客户端
在需要连接到远程电脑的设备上,安装 RDP 协议远程桌面客户端。
一般使用之前记录下来的 IP 地址和远程电脑的 Microsoft 账户和密码来添加连接
对于没有登录 Microsoft 账户的电脑(比如只有管理员账户),使用 ip 地址 + 管理员账号密码登录(Administrator+ 开机密码)
- 对于 Windows 设备: 直接使用系统自带的“远程桌面连接”工具
- 其它:任意 RD 客户端应用均可
设置云服务器安全组
在云服务器的控制台,安全组设置中添加一条规则
-
优先级:任意
-
授权策略:允许
-
协议:TCP
-
目的端口:任意(不和其他端口冲突即可)
-
授权对象:0.0.0.0/0(代表允许任何 IP 访问)
配置云服务器上的 sshd 服务
登录服务器,在 bash 执行
sudo sed -i 's/#GatewayPorts no/GatewayPorts yes/' /etc/ssh/sshd_config
sudo systemctl restart sshd
使用 ssh 进行远程端口转发
ssh 命令的 -R
选项可以提供远程端口转发功能,具体命令格式如下:
ssh -NfR <服务器IP>:<服务器Port>:<本地IP>:<本地Port> <服务器用户名>@<服务器IP>
其中:
-
**
-R
**:远程端口转发 -
**
-N
**:不执行命令,只进行端口转发 -
**
-f
**:将 ssh 放到后台执行 -
服务器 IP:云服务器的公网 IP
-
服务器 Port: 在安全组中设置的端口,默认为 3389
-
本地 IP: 一般填写
localhost
-
本地 Port: 远程桌面的高级设置中指定的端口,默认为 3389
-
服务器用户名: 登陆云服务器的用户名
任何访问 <服务器IP>:<服务器Port>
的请求,都会被转发到 <本地IP>:<本地Port>
在需要被远程连接的电脑上执行上述命令(提示输入密码后,会卡住没有反馈,此时实际上已经执行成功),之后不要关闭命令行,在连接设备上,使用 Windows 的“远程桌面连接”直接连接 <服务器IP>:<服务器Port>
测试成功后,我们继续后续的配置
免密登录
在被连接电脑上执行:
ssh-keygen #一路回车
scp ~/.ssh/id_rsa.pub <服务器用户名>@<服务器IP>:~/ #将生成的公钥上传到云服务器
然后在云服务器上执行以下命令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub
创建计划任务来开机自动执行
Windows 提供了“任务计划程序”来实现“当某个条件满足时自动执行一个操作”的功能。
-
打开系统自带的“任务计划程序”,在右上角点击“创建任务”
-
为任务添加开机启动的“触发器”
延迟任务时间 1 分钟是为了等待系统进行网络连接,重复任务间隔 5 分钟是为了防止网络不稳定,或者超时导致掉线。掉线后可以自动重新连接。
-
为任务添加需要执行的操作,将之前建立远程端口转发的命令填写到“程序或脚本”和“添加参数”中:
-
在“条件”面板中设置只有当连接交流电源时且有网络连接时启用该任务
-
在“设置”面板中设置如果任务正在运行,则不要启动新任务,来避免每隔 5 分钟就重复执行导致的资源消耗。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于