frp实现远程桌面连接


Frp 是一个高性能的反向代理应用程序,它可以帮助您轻松地管理内网中的服务,并且可以将这些服务暴露给公网。Frp 的主要作用是实现内网穿透,使外网用户能够访问内网中的服务。下面是一些 Frp 的应用场景:

  1. 内网穿透:通过 Frp,您可以将内网中的服务暴露到公网上,例如 Web 服务器、FTP 服务器、SSH 服务器等。
  2. 内网远程桌面:Frp 可以让您在外网使用远程桌面连接到内网中的计算机,方便远程管理和维护。
  3. 构建云计算平台:Frp 可以帮助企业构建私有云环境,提供虚拟机、存储和计算资源等服务。
  4. 网络监控:Frp 可以用于搭建网络监控系统,通过端口转发将监控服务暴露到公网上,方便管理员远程查看。
    总之,Frp 是一款十分实用的工具,可以帮助企业和个人轻松地管理和访问内网中的服务。

官网:https://github.com/fatedier/frp/releases/tag/v0.48.0
官方文档:https://gofrp.org/docs/setup/systemd/

一、背景

使用todesk个人版(免费)连接远程桌面(win10、win11),在网络环境比较差的情况下,使用起来很不友好,于是就想使用frp这个工具了。

二、前提

服务器需要开放安全组规则

例如以我的阿里云服务器为例


具体如何配置请参考:

frp实现思路:

首先先明确服务端和客户端是什么?

FRP 中服务端(Server)和客户端(Client)是指 FRP 这个工具的两个不同角色。
服务端是 FRP 的远程服务器,它运行在公网上,并且通常被用来提供内网穿透功能。当您需要从外部网络访问内部网络的设备时,可以在公网上部署一个 FRP 服务端,通过配置相应的映射规则,将来自公网的请求转发到内网设备上。
客户端是 FRP 工具的本地组件,它运行在需要被访问的内部网络设备上,并与远程服务端建立连接。客户端会向服务端注册自己的身份信息,并定期向服务端发送心跳包以保持连接。一旦客户端成功连接到服务端,外部网络就可以通过服务端访问客户端所在的内部网络设备。

三、环境安装

在 Linux 系统下使用 systemd 控制 frps 及配置开机自启

这里以Linux服务器(centos)为例,

2.1 安装 systemd

yum install systemd

2.2 创建并编辑 frps.service 文件(使用vim编辑器)

vim /etc/systemd/system/frps.service

2.3 写入内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
# 例如我解压后的frp安装包在此路径下 /root/frp/frps
# ExecStart = /root/frp/frps/frps -c /root/frp/frps/frps.ini
ExecStart = /path/to/frps -c /path/to/frps.ini

[Install]
WantedBy = multi-user.target

如下图:

上面三步可以参考:https://gofrp.org/docs/setup/systemd/

2.4 下载解压安装包

方式一:
在已经创建好的 /root/frp目录下,执行下面的命令即可下frp安装包:

wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_arm64.tar.gz

方式二:
下载地址:https://github.com/fatedier/frp/releases
Linux版(centos),下载如下图版本:

将frp的linux包传递Linux服务器的自定义目录下

例如:
放在/root/frp/目录(文件夹)下,然后解压此文件frp_0.48.0_linux_amd64.tar.gz

tar -zxvf frp_0.48.0_linux_amd64.tar.gz

然后对其命名:
mv 原文件名 修改后的文件名

mv frp_0.48.0_linux_amd64 frps

或者直接解压并重新命名

2.5 配置服务端(服务器)

在解压frp安装包后的文件夹下对文件进行配置:

例如:frp解压在/root/frp/frps/目录下

对frps.ini文件进行配置

vim frps.ini

输入内容:

[common]
# 服务端端口
bind_port = 7000
binf_addr = 0.0.0.0
bind_udp_port = 7000

authentication_method = token
# 认证Token的值包含字母大小写数字等
token = 自定义token

# 可视化面板
dashboard_user = admin
# Dashboard密码
dashboard_pwd = 123456
dashboard_port = 7500 

保存配置并退出 :wq

使用 systemd 命令,管理 frps

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps

配置 frps 开机自启:

systemctl enable frps

贴一张可视化面板图:

2.6 配置客户端frp

下载地址:https://github.com/fatedier/frp/releases


自定义一个文件夹解压

2.6 配置客户端(win10本机)

在解压frp安装包后,进入找到frpc.ini配置文件并使用文本编辑器打开

配置如下:

# 全局配置
[common]
# 服务端公网ip
server_addr = 你的服务端公网ip地址,自行修改
# 服务端端口
server_port = 7000

authentication_method = token
token = 自定义token

# 反向代理的名称,可以随意设置
[RDP] 
# RDP 是 TCP 协议的
type = tcp
# 本机 IP
local_ip = 127.0.0.1
# 远程桌面的默认端口
local_port = 3389
# 外网访问的端口
remote_port = 7001

注意:服务端的配置的token与客户端配置的token需要保持一致。
参考:https://cloud.tencent.com/developer/article/1710141

在目录下输入cmd回车,然后运行frpc.exe
如图所示:


就此配置完成

接下来就连接远程桌面了

2.7 连接远程桌面

如下图所示:
计算机为你服务端的ip地址加端口

例如:139.224.12.12:7001 (远程访问端口)

由于我电脑使用的微软邮箱,用户名就为 [email protected],密码对应微软邮箱密码

如果你使用的是本地账号登录,那用户名就是你本地的那个用户名,密码就是开机密码。

如果不想使用ip地址,可以将ip地址绑到域名上,或不想输入端口,可以进行反向代理

总结

总之,frp不仅仅只是玩远程桌面,还可以玩内网穿透、渗透等。

附件

参考1:https://cloud.tencent.com/developer/article/1710141
参考2:https://www.cnblogs.com/zhanggaoxing/p/9221705.html
阿里云官方地址:https://account.aliyun.com/login/login.htm


文章作者: keney
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 keney !
评论
  目录