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