我是靠谱客的博主 舒服日记本,最近开发中收集的这篇文章主要介绍FRP进阶篇之解决方案一、前言 二、多客户端使用三、dashboard 仪表盘使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、前言

二、多客户端使用

1、场景

2、解决方案

3、使用

3.1、服务端配置

3.2、客户端配置

3.3、结果验证

三、dashboard 仪表盘使用

1、场景

2、解决方案

3、使用

4、验证

5、使用Java调用API接口获取设备列表

5.1、样例代码

5.2、结果验证


一、前言

        通过之前的《FRP入门篇》和《FRP进阶篇之安全认证》让大家对于FRP的基本使用、安全认证有了一定的熟悉。在本文中则说明在特定场景下使用FRP的解决方案。

        对于FRP不太熟悉的同学可以先查看下以下二篇文章:

FRP入门篇_不甘于平凡的溃败的博客-CSDN博客_frp

FRP进阶篇之安全认证_不甘于平凡的溃败的博客-CSDN博客_frp use_encryption


二、多客户端使用

1、场景

        一个FRP服务代理多个客户端,通过指定的标识来访问具体某个客户端服务。

2、解决方案

        通过使用泛域名访问服务端,通过配置客户端子域名来定位具体某个客户端服务,比如访问01号客户客户端,可配置域名为www.01.my.frp.com。其中01为客户端唯一标识,my.frp.com使用泛域名。

3、使用

3.1、服务端配置

 在frps.ini配置文件中添加以下配置

#使用泛域名解析
subdomain_host = my.frp

如下图所示:

然后使用以下命令启动服务端

./frps -c frps.ini

如下图所示

 3.2、客户端配置

 在frpc.ini配置文件中添加以下配置

  #代理服务器配置
  [http_c01]
  type = http
  #代理Ip
  local_ip = 127.0.0.1
  #代理端口
  local_port = 8080
  #代理前缀
  subdomain = c01

如下图所示

 然后启动客户端,命令

./frpc -c ./frpc.ini

3.3、结果验证

        在浏览器上输入 http://c01.my.frp:8888/ 

则出现被代理的客户端界面,如下图所示:

三、dashboard 仪表盘使用

1、场景

        想通过在web浏览器实时查看FRP的连接、状态、配置信息。

2、解决方案

        通过配置dashboard 仪表盘功能即可实现。

3、使用

        在服务端的 frps.ini 配置界面添加以下内容

#仪表盘 dashboard 配置
# 登陆用户名
dashboard_user = admin
#登录密码
dashboard_pwd = admin

# dashboard 登陆端口
dashboard_port = 7500

        如下图所示:

 然后重启FRP服务端,如下图所示 

4、验证

        在浏览器上输入FRP服务端IP+配置端口即可访问,如:http://192.168.1.114:7500/

5、使用Java调用API接口获取设备列表

        在实际使用过程中有时想通过程序动态的判断FRP上的服务是否在线,以便于做出是否可以跳转链接的决策,这时可调用FRP的服务列表接口即可获取到相关的信息了。

本文以调用HTTP列表为例进行说明,其它的列表各位同学可以参考本文。

5.1、样例代码

public static void main(String[] args)throws Exception {
        //请求地址
        String url = "http://192.168.1.114:7500/api/proxy/http";
        //登录账号
        String user = "admin";
        //登录密码
        String password = "admin";

        //将账号密码拼接起来通过BASE64加密
        String input = user + ":" + password;
        BASE64Encoder base = new BASE64Encoder();
        String encodedPassword = base.encode(input.getBytes("UTF-8"));

        CloseableHttpClient client = HttpClientBuilder.create().build();
        URIBuilder builder = new URIBuilder(url);
        URI uri = builder.build();
        HttpGet httpGet = new HttpGet(uri);
        //将加密的账号密码放到请求头里
        httpGet.addHeader("Authorization", "Basic " + encodedPassword);
        HttpEntity entity = client.execute(httpGet).getEntity();
        String response = EntityUtils.toString(entity, "UTF-8");
        System.out.println(response);
    }

5.2、结果验证

        运行结果如下图所示

界面展示

界面接口返回

由此可以判定通过API接口调用是行的通 

目前暂时先列表二种场景解决方案,还有其它场景的解决解决方案的同学欢迎私信我,大家一起探讨、一起学习、一起进步 !

更多精彩技术分享请浏览本人博客:

不甘于平凡的溃败的博客_CSDN博客-java,数据库,IDEA领域博主

最后

以上就是舒服日记本为你收集整理的FRP进阶篇之解决方案一、前言 二、多客户端使用三、dashboard 仪表盘使用的全部内容,希望文章能够帮你解决FRP进阶篇之解决方案一、前言 二、多客户端使用三、dashboard 仪表盘使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(101)

评论列表共有 0 条评论

立即
投稿
返回
顶部