Frp内网穿透快速实现远程桌面

1.前言

TeamViewer、向日葵等第三方软件大多是商业化软件,有各种限制。
本文介绍如何使用Frp搭建实现远程桌面连接(服务端为Linux,客户端windows)

2.Frp

Frp 是一款开源的、简洁易用、高性能的反向代理软件

它支持 TCP、UDP、HTTP、HTTPS 等协议类型

官方地址:https://github.com/fatedier/frp

3.操作步骤
1)部署Frp服务端到云服务器(如阿里、腾讯、华为等)
根据系统平台,从下面链接下载 Frp 源码上传到云服务器
https://github.com/fatedier/frp/releases
也可以通过 wget 命令直接下载

wget https://github.com/fatedier/frp/releases/download/v0.43.0/frp_0.43.0_darwin_amd64.tar.gz

解压缩

tar zxf frp_0.43.0_darwin_amd64.tar.gz

移动至/usr/local

mv frp_0.43.0_darwin_amd64 /usr/local/frp

配置服务端frps.ini
在线文档地址 https://gofrp.org/docs/overview/

[common]
bind_port = 7000              #是自己设定的frp服务端端口
token = 123456                #核实身份用,加了更安全

#配置frp后台管理账号
dashboard_port = 6000
dashboard_user = admin
dashboard_pwd = 123456

#配置日志配置文件夹
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

配置systemctl来控制,服务端运行
vim新建文件并写入配置内容(使用ins或i插入,完成复制完成之后,按esc退出 :wq 保存退出)

vim /usr/lib/systemd/system/frp.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target

开放云服务器防火墙端口、配置安全组规则,启动Frp 服务

启动/停止/重启,查看状态,设置开机自启/关闭开机自启
systemctl start frp
systemctl stop frp
systemctl restart frp
systemctl status frp
systemctl enable frp
systemctl disable frp

2)客户端
从下面链接下载Frp客户端(与服务端版本保持一直)
https://github.com/fatedier/frp/releases

修改frpc.ini

[common]
server_addr = xx.xx.xx.xx
server_port = 7000
token = 123456

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

启动
cmd命令切换到文件夹执行

frpc -c frpc.ini

输出:login to server success, get run id [], server udp port [0]即为登录成功

3)测试远程连接
另一台电脑打开win远程桌面,输入云服务器ip地址测试远程连接(注意先开启远程连接权限)
也可以通过手机 App,如「 RD Client 」来控制远程桌面
4)设置开机自启
windows 设置开机自启的方法有很多,这里推荐使用winsw将frp注册为系统服务。
参考链接:https://blog.csdn.net/atmosphere_/article/details/104018900

为了保证目标计算机永久在线,可以利用「 winsw 」将客户端连接配置做成一个服务,并配置为开机自启
1.此处需要使用到winsw 下载地址: https://github.com/kohsuke/winsw/releases
这里将下载WinSw.Net4.exe重命名为winsw.exe,以方便后面操作

新建一个配置文件 winsw.xml(注意编码格式utf-8,否则会提示给定编码中的字符无效),添加运行 Frp 客户端的命令

<service>
	<!-- 该服务的唯一标识 -->
    <id>frp</id>
    <!-- 该服务的名称 -->
    <name>frp</name>
    <!-- 该服务的描述 -->
    <description>frp远程控制客户端服务</description>
    <!-- 要运行的程序路径 -->
    <executable>D:\Program Files\frp_0.43.0_windows_amd64\frpc.exe</executable>
    <!-- 携带的参数 -->
    <arguments>-c frpc.ini</arguments>
    <!-- 第一次启动失败 60秒重启 -->
    <onfailure action="restart" delay="60 sec"/>
    <!-- 第二次启动失败 120秒后重启 -->
    <onfailure action="restart" delay="120 sec"/>
    <!-- 日志模式 -->
    <logmode>append</logmode>
    <!-- 指定日志文件目录(相对于executable配置的路径) -->
    <logpath>logs</logpath>
</service>

使用管理员身份打开CMD终端,CD进入目录运行下面命令,使得Frp客户端能变成系统服务在后台运行了

//注册服务
winsw.exe install
//卸载服务
winsw.exe uninstall
//启动服务
winsw.exe start
//停止服务
winsw.exe stop
//重启服务
winsw.exe restart
//查看状态
winsw.exe status

posted @ 2022-07-04 10:53  86727515  阅读(2317)  评论(0编辑  收藏  举报