远程调试frp

嵌入式设备上线之后,如果遇到问题想要线上维护,最直接的方法的能够远程ssh进入到设备里,然后查看日志定位问题,这边介绍使用frp配合mqtt的方式进行设备远程调试。

1.远程调试原理

远程调试的原理如下:

  • 本地网关与MQTT服务器保持长连接,用来接收开启远程/关闭远程命令
  • fprs服务器需要有公网IP,开发人员可以通过该公网IP和指定的端口远程
  • 开发人员通过约定好的MQTT消息,发送开启远程命令给本地网关。本地网关收到开启远程的命令后,就启动frpc去连接对应的frps服务器。
  • 本地网关frpc连接frps成功之后,开发人员就可以内网穿透ssh到本地网关

image.png

2.frps服务器搭建
2.1 下载

不需要编译,可以直接用

https://github.com/fatedier/frp/releases

从github上面下载对应平台的压缩包,是go语音写的不需要编译。

ubuntu:~/Desktop/frp_0.36.2_linux_arm$ ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  systemd
  • frps为服务器
  • frps.ini为服务器的配置文件,frps_full.ini全部的配置信息
  • frpc为客户端
  • frpc.ini为客户端的配置文件,frpc_full.ini全部的配置信息
2.2 服务器配置

一般会被指两个参数

  • bind_port服务器绑定的地址
  • dashboard服务器的后台管理页面地址
[common]
bind_port = 1000

dashboard_user = admin
dashboard_pwd = admin
dashboard_port = 1001
enable_prometheus = true

设置好内容后,运行如下命令就可以

/usr/local/bin/frps -c /etc/frp/frps.ini

看板内容如下:
image.png

2.3 服务器添加自启动
# 需要先 cd 到 frp 解压目录.

# 复制文件
cp frps /usr/local/bin/frps
mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini

# 编写 frp service 文件,以 ubuntu 为例
vim /usr/lib/systemd/system/frps.service (有时候需要手动创建system文件夹)
# 内容如下
[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

启动 frp 并设置开机启动

systemctl enable frps
systemctl start frps
systemctl status frps

部分服务器上,可能需要加 .service 后缀来操作,即:

systemctl enable frps.service
systemctl start frps.service
systemctl status frps.service

停止frps

systemctl stop frps

运行状态和日志

[root@VM-11-12-centos frp_0.35.1_linux_amd64]# systemctl status frps
● frps.service - frps
   Loaded: loaded (/usr/lib/systemd/system/frps.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-02-23 14:07:27 CST; 1min 8s ago
  Process: 18791 ExecStop=/bin/kill $MAINPID (code=exited, status=0/SUCCESS)
 Main PID: 12498 (frps)
   CGroup: /system.slice/frps.service
           └─12498 /usr/local/bin/frps -c /etc/frp/frps.ini

3.frpc客户端搭建
3.1 客户端配置

使用的就是上面下载的frpc客户端和frpc.ini配置文件

如下配置,就是将本地的ssh 22端口,映射到frps公网IP的1002端口

root@zihome:/# cat /tmp/frpc.ini
[common]
server_addr = 公网IP
server_port = 1000


[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
authentication_timeout = 0
remote_port = 1002

设置好内容后,运行如下命令就可以

frpc -c /tmp/frpc.ini

然后就可以远程登录了

ssh -p 1002 root@公网IP

官网:
https://github.com/fatedier/frp.git
https://github.com/kuoruan/openwrt-frp.git

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值