一,背景
软件部署到外地机器上,为了后期运维方便,想对其进行远程控制。目前考虑到的方案有以下两种:
(1),利于第三方软件,如向日葵,收费的可以支持二次开发,不过利用其绿色版也能实现我们的需求。因为我们每个客户端有接入IM,所以可以在后台给客户端IM推送消息,然后客户端把向日葵连接所需的验证码发送回来即可。优点简单,稳定,但是免费方案操作上不友好,除非花点钱。
(2),利用内网穿透工具,获取经过转发的ip和端口。好处是免费,定制程度高,但是可能没有商业版的稳定,并且需要配置windows系统。
本文章抱着学习的态度,来对第二章方案进行说明,因为第一种没啥技术含量。
二,服务器配置
(1),服务端 软件下载
https://github.com/fatedier/frp/releases
我的是腾讯云服务器,所以我下载是这个版本:
(2),配置
dashboard_user = 后台管理页面用户名
dashboard_pwd = 后台管理页面密码
dashboard_port = 后他管理页面端口
除以上三向外,其它不用配置
(3),执行
后台运行:
nohup ./frps -c frps.ini >/dev/null 2>&1 &
ps -aux|grep frp|grep -v grep
结束:
kill -9 7421
(4),打开 后台管理页面查看
浏览器地址栏输入:远程服务器ip:第二步的后台管理页端口 ,之后输入用户名密码
三,客户端配置
(1),软件下载
我的客户端是,window10 所以选择这个
(2),配置
编辑frpc.ini文件
server_addr= 服务点ip地址
[RDP] 一个描述符号 自定义
type = tcp
local_ip = 127.0.0.1
local_port = 3389 远程控制的端口
remote_port =自定义端口,用于后期远程控制使用
如果是安装多台客户端则更改RDP 和remote_port 端口即可。确保此两个配置唯一
(3),运行
cmd 切换到exe所在目录
C:\frp_0.34.1_windows_amd64>frpc.exe -c frpc.ini
(4),将frp 封装为 windows 服务 开机 自运行
(1).使用nssm
我们去下载NSSM服务。
NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。
(2).使用方法
把下载的nssm文件放入frp客户端目录
cmd定位至nssm.exe所在目录
输入 nssm install
Application Path: 选择frpc.exe Arguments:填入-c frpc.ini Service name:服务的名称
在任务管理器中启动frpc,以后电脑重新启动依然开机运行
(3).NSSM技巧
nssm install servername //创建servername服务
nssm start servername //启动服务
nssm stop servername //暂停服务
nssm restart servername //重新启动服务
nssm remove servername //删除创建的servername服务
四,效果
(1),Windows 远程桌面打开
(2),设置无密码远程允许登录
(3),测试
输入:ip+端口
IP 为远程服务器的IP
端口为 客户端配置-》第二步中的 remote_port
输入用户名 点击确定即可