内网穿透工具(二)-- FRP 简介(开源)

打印 上一主题 下一主题

主题 981|帖子 981|积分 2943

一、FRP 简介

FRP(Fast Reverse Proxy)是一款开源的内网穿透工具,它可以资助用户将内网服务袒露到公网上。以下是FRP的GitHub所在和一些根本信息介绍:
FRP GitHub所在



  • FRP的GitHub堆栈所在是:https://github.com/fatedier/frp
  • FRP 安装包下载所在:https://github.com/fatedier/frp/releases

  • 架构分类:

    • amd64 :一般指X86-64处置惩罚器,intel及amd产品根本上均为该架构
    • 386:早起X86架构,现在根本上看不到了
    • arm及arm64:均为使用arm指令集的CPU
    • mips及mips64:均为RISC处置惩罚器

  • 体系分类:

    • drawin:为mac使用的包
    • freebsd:为一种类unix体系,freebsd体系专用
    • linux:linux体系均可使用该包
    • windows:windows体系使用的包

FRP功能特点



  • 多协议支持:FRP支持TCP、UDP、HTTP、HTTPS等多种协议,满足差别应用场景的需求。
  • P2P通信:FRP支持P2P模式,提高特殊情况下连接的机动性。
  • TLS加密:FRP提供TLS加密功能,确保数据传输的安全性。
  • 动态DNS:FRP支持动态DNS,便于动态IP情况中的稳固访问。
  • Web界面:FRP提供Web界面,简化管理和监控。
  • 反向署理:FRP作为反向署理,使得内部服务可以通过外部服务器被访问。
架构与工作原理

frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端摆设在具有公网 IP 所在的呆板上,而客户端摆设在必要穿透的内网服务所在的呆板上。
由于内网服务缺乏公网 IP 所在,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网呆板,从而实现通信。

二、FRP Windows 版本安装摆设

1. 下载相应的安装包资源



  • Windows 版本下载:https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_windows_amd64.zip

2. 服务端配置




    • 直接解压安装包;


    • 修改 frps.toml 文件

  1. # 服务端与客户端通信端口
  2. bindPort = 7000
  3. # 服务端将只接受 TLS 链接
  4. transport.tls.force = true
  5. # 身份验证令牌,frpc 要与 frps 一致
  6. auth.token = "public"
  7. # 后台管理地址
  8. webServer.addr = "0.0.0.0"
  9. # 后台管理端口
  10. webServer.port = 7500
  11. # 后台登录用户名
  12. webServer.user = "admin"
  13. # 后台登录密码
  14. webServer.password = "admin"
复制代码



    • 打开命令行(管理员模式)或 PowerShell,在命令行中运行`frps.exe(服务端),并指定配置文件,启动FRP服务。

  1. .\frps.exe -c .\frps.toml
复制代码



  • 访问 控制台 http://localhost:7500/

3. 客户端配置



  • 客户端文件同服务端;

  • 修改客户端配置文件 frpc.toml;
  1. #服务端公网ip
  2. serverAddr = "202.100.100.22"
  3. # frps与frpc客户端通信的端口
  4. serverPort = 7000
  5. #此处和服务端统一
  6. auth.token = "public"
  7. [[proxies]]
  8. #此处名称可自定义
  9. name = "test-tcp"
  10. #此处为协议,还有tcp、udp、http、https、stcp
  11. type = "tcp"
  12. localIP = "127.0.0.1"
  13. #此处为本地开放的SSH端口
  14. localPort = 22
  15. #此处为公网地址转换的端口,此端口可任意调换
  16. remotePort = 6000
复制代码


  • 启动客户端
  1. .\frpc.exe -c .\frpc.toml
复制代码



  • 访问服务端控制台,可以看到客户端信息

  • 测试服务内网穿透
    找一台可以上网的windows呆板,使用telnet命令
  1. telnet 202.100.100.22 6000
复制代码
假如可以连通,那就说明可以穿透通过。
三、FRP 实战摆设访问 WEB 应用


  • 修改服务端 frps.toml 文件,增加 HTTP 捏造主机的端口 vhostHTTPPort 配置
  1. # 服务端与客户端通信端口
  2. bindPort = 7000
  3. # 服务端将只接受 TLS 链接
  4. #transport.tls.force = true
  5. # 身份验证令牌,frpc 要与 frps 一致
  6. auth.token = "public"
  7. # 后台管理地址
  8. webServer.addr = "0.0.0.0"
  9. # 后台管理端口
  10. webServer.port = 7500
  11. # 后台登录用户名
  12. webServer.user = "admin"
  13. # 后台登录密码
  14. webServer.password = "admin"
  15. # 配置域名
  16. #subdomainHost = "dazhong.online"
  17. # 用于HTTP虚拟主机的端口
  18. vhostHTTPPort = 8088      
复制代码

  • 修改客户端文件 frpc.toml ,增加 http 服务配置参数
  1. serverAddr = "139.155.142.114"
  2. serverPort = 7000
  3. auth.method = "token"
  4. auth.token = "public"
  5. [[proxies]]
  6. name = "test-tcp"
  7. type = "tcp"
  8. localIP = "127.0.0.1"
  9. localPort = 22
  10. remotePort = 6000
  11. # http 服务配置参数
  12. [[proxies]]
  13. name = "web-8080"
  14. type = "http"
  15. localPort = 8080 #本地服务端口
  16. customDomains = ["202.100.100.22"] # 域名配置,如果没有域名则使用服务端IP
复制代码

  • 访问本地服务:http://+服务器IP+端口
    http://202.100.100.22:8088
  • 配置域名访问
    通过添加域名分析记录,将公网IP和域名举行绑定


  • 此处以阿里云域名为例,添加分析记录

  • 方式一:通过客户端文件 frpc.toml 添加 customDomains 参数添加完整域名
  1. # 主域名为 mydomain.com
  2. customDomains = ["test8080.mydomain.com"]
复制代码
访问 http://test8080.mydomain.com:8088/


  • 方式二:通过服务端和客户端文件都配置subdomainHost 子域名:
服务端文件 frps.toml 新增主域名
  1. subdomainHost = "dazhong.online"
复制代码
客户端文件 frpc.toml 新增子域名 test8080
  1. subdomainHost = "test8080"
复制代码
访问 http://test8080.mydomain.com:8088/
   注意 subdomainHost 和 customDomains 参数不可以同时使用:
  

  • subdomain_host(服务端配置)
    subdomain_host 是在frp服务端(frps)配置文件中使用的参数。它指定了一个域名,该域名下的全部子域名都将用于frp的捏造主机(vhost)HTTP署理。这意味着,当你在客户端(frpc)配置了subdomain参数时,客户端的HTTP服务将被映射到这个subdomain_host指定的域名下的子域名。
  • custom_domains(客户端配置)
    custom_domains 是在frp客户端(frpc)配置文件中使用的参数。它允许你指定一个或多个自定义域名,这些域名将被用于客户端的HTTP或HTTPS服务。这个参数通常用于静态域名的场景,而不是动态子域名。
  参数文档:


  • 1.frp内网穿透之(反向署理nginx)
    https://zhuanlan.zhihu.com/p/9565100806

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表