前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于frp和云服务器实现局域网内电脑的远程桌面连接

基于frp和云服务器实现局域网内电脑的远程桌面连接

原创
作者头像
半桶水到一桶水
发布2021-12-02 19:59:29
13.2K0
发布2021-12-02 19:59:29
举报

写这篇文字的原因是因为作者觉得向日葵免费版太拉跨了,所以找到了这个方法来进行远程桌面连接,在此进行记录分享。

作者在实验室里用台式机,然后在寝室里用笔记本,两台电脑都装了向日葵免费版。在某天夜里需要用到台式机,于是使用笔记本通过向日葵远程连接到台式机,但是网速实在不敢恭维,反正就是那天夜里的使用体验极其糟糕,于是想到了使用微软自带的远程桌面连接(毕竟没有中间商赚差价)。

不过微软自带的远程桌面连接需要被连接的电脑是具有公网 ip 的,或者连接与被连接的两台电脑在同一个局域网内,公网ip自然是没有的,同时发现两台电脑也并不在同一个局域网内(虽然寝室和实验室都在学校里,网络也都属于学校的局域网,但是好像在学校内部又被分成了两个局域网)。

在上网搜索相关解决方案后,发现了 frp 这个项目, frp 主要就是解决被连接电脑没有公网ip的问题。

在使用 frp 之前,我们需要一个云服务器,各大云服务厂商都有的卖,学生还挺优惠的(我是白嫖的,一分钱没花还挣了2块钱,感谢鱼皮大大),一般买了云服务器都会绑定一个公网 ip ,我们可以通过这个公网 ip 来进行远程连接,以下介绍如何使用 frp 和云服务器来实现远程桌面连接。

frp 的项目地址:frp项目的github开源地址

注意:被连接的电脑需要打开允许远程连接桌面功能,一般 windows 专业版都可以打开这个功能, windows 家庭版的这个功能默认是不被允许打开的(网上有教如何打开家庭版的远程连接功能),必须要先打开这个功能,才能实现远程连接桌面。

用法:

下载安装与配置

首先,根据所使用的操作系统在该项目的开源仓库中下载该项目最新的发行版程序,这里我们需要在云服务器上下载一次,在我们需要连接的这台电脑上下载一次,下载下来的程序文件都是一样的:

image.png
image.png

事实上,在云服务器上只需要用到frps.exefrps.ini这两个文件,在被访问的电脑上只需要用到frpc.exefrps.ini这两个文件。

作者的云服务器使用的是 centos 系统,在/usr/local路径下新建frp目录,将frps.exefrps.ini两个文件放进了该目录:

image.png
image.png

frps.ini的内容修改如下:

代码语言:txt
复制
[common]
bind_port = 7000

同时记得将云服务器的7000端口放通,这个端口可以自己设置,只要没有被使用过就可以。

在被连接电脑上,修改frpc.ini如下:

代码语言:txt
复制
[common]
server_addr = 123.234.456.25 #云服务器的公网ip
server_port = 7000

[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001  #通过该端口来连接电脑

记得将云服务器的7001端口也放通。

启动frp服务端:

代码语言:txt
复制
./frps -c ./frps.ini

启动frp客户端:

代码语言:txt
复制
frpc -c frpc.ini

当命令行中显示如下结果时代表启动成功:

image.png
image.png

这个时候使用另一台电脑,win+R,运行mstsc,打开 windows 自带的远程桌面连接,在计算机栏中输入 123.234.456.25:7001 ,如下所示:

image.png
image.png

连接,然后在弹出框中输入用户名和密码,即可远程连接桌面啦!

设置自启动
服务器端

前面说到的服务端是通过命令启动的,一旦关闭远程连接,服务就会关闭,那怎么让服务保持后台运行呢?

下载的 frp 文件夹可以看到一个systemd目录,将其中的 frps.service 文件复制到服务器的 /etc/systemd/system/ 目录下,并修改 ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini,完整配置文件如下:

代码语言:txt
复制
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini

[Install]
WantedBy=multi-user.target

设置 frps 服务开机启动:

代码语言:txt
复制
sudo systemctl enable frps

启动 frps 服务:

代码语言:txt
复制
sudo systemctl start frps

这样 frps 服务就可以在后台运行了,即使服务器关机重启也会自动启动。

客户端

此处参考:Windows设置frpc开机自动启动(不管用户是否登陆都要运行)_gdali的专栏-CSDN博客_frpc开机自启动

具体内容如下:

新建start.bat,内容如下(放到自己frpc实际目录下):

代码语言:txt
复制
@echo off
:home
frpc -c frpc.ini
goto home

打开开始菜单,输入 “任务计划程序” 将会自动搜索,接着打开它。

image.png
image.png

点击右侧的 “创建任务”,名称随意填写,安全选项选择 “不管用户是否登录都要运行”,当然你也可以选择 “只在用户登录时运行”。

选择 “不管用户是否登录都要运行” 可以让你的电脑在断电自动启动后自动运行 frp,你就可以远程桌面连接电脑了。

“使用最高权限运行” 也是可选的,根据个人需要可以选上。

最后勾选 “隐藏”,就不会在启动时弹出命令行窗口了。

image.png
image.png

接着转到 “触发器” 页,点击新建,选择 “启动时”

image.png
image.png

接着转到 “操作” 页,点击新建,选择 “启动程序”

在程序或脚本一栏选择第一步创建的 start.bat,下面的 “起始于” 填写 start.bat 的路径(不要包含 start.bat)

例如你的 start.bat 在 E:\frp\start.bat,那么你只需要在 “起始于” 填写 E:\frp\

image.png
image.png

接着返回 “常规” 页,点击确定,此时会要求输入密码,输入你的电脑密码,然后点击确定即可。

以后就会开机自动启动 frp 了,并且不会弹出命令提示符窗口。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用法:
    • 下载安装与配置
      • 设置自启动
        • 服务器端
        • 客户端
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档