远程连接 PC

本贴最后更新于 300 天前,其中的信息可能已经时移世异

前言

在局域网内远程连接可以直接使用 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 协议,大部分渲染在连接设备上完成,因此流畅度比其他基于视频传输的远程桌面软件有很大提升

​​image​​

然后在 windows PowerShell 输入 ipconfig​,找到当前局域网下的 IPv4 地址,记录下来,用于后续局域网内连接。

​​image​​

在连接设备上安装远程桌面客户端

在需要连接到远程电脑的设备上,安装 RDP 协议远程桌面客户端。

一般使用之前记录下来的 IP 地址和远程电脑的 Microsoft 账户和密码来添加连接

对于没有登录 Microsoft 账户的电脑(比如只有管理员账户),使用 ip 地址 + 管理员账号密码登录(Administrator+ 开机密码)

  • 对于 Windows 设备: 直接使用系统自带的“远程桌面连接”工具
  • 其它:任意 RD 客户端应用均可

设置云服务器安全组

在云服务器的控制台,安全组设置中添加一条规则

  • 优先级:任意

  • 授权策略:允许

  • 协议:TCP

  • 目的端口:任意(不和其他端口冲突即可)

  • 授权对象:0.0.0.0/0(代表允许任何 IP 访问)

​​image​​

配置云服务器上的 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

  • 服务器用户名: 登陆云服务器的用户名

image

任何访问<服务器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 提供了“任务计划程序”来实现“当某个条件满足时自动执行一个操作”的功能。

  • 打开系统自带的“任务计划程序”,在右上角点击“创建任务”

    image

  • 为任务添加开机启动的“触发器”

    image​延迟任务时间 1 分钟是为了等待系统进行网络连接,重复任务间隔 5 分钟是为了防止网络不稳定,或者超时导致掉线。掉线后可以自动重新连接。

  • 为任务添加需要执行的操作,将之前建立远程端口转发的命令填写到“程序或脚本”和“添加参数”中:

    ​​image​​

  • 在“条件”面板中设置只有当连接交流电源时且有网络连接时启用该任务

    image

  • 在“设置”面板中设置如果任务正在运行,则不要启动新任务,来避免每隔 5 分钟就重复执行导致的资源消耗。

    image

  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    221 引用 • 473 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...