frp 内网穿透工具:简介与实践

什么是 frp?

frp 是一个开源的内网穿透工具,主要用于将位于 NAT 或防火墙后的本地服务器暴露到互联网上。它支持 TCP、UDP、HTTP 和 HTTPS 协议,并提供 P2P 连接模式。

主要特点

  • 支持多种协议: TCP、UDP、HTTP、HTTPS
  • P2P 模式: 客户端之间直接传输数据
  • 安全性: 支持 TLS 加密和双向认证

frp 的应用场景

1. 内网穿透

  • SSH 远程登录: 将内网中的 SSH 服务映射到外网,实现远程维护。
  • Web 服务访问: 将内网 Web 服务暴露到外网,方便测试和访问。

2. 端口转发

  • 多个 SSH 服务共享端口 : 通过 tcpmux 类型的代理,将多个 SSH 服务暴露在同一端口。

3. 负载均衡

  • 反向代理: 实现多个服务的负载均衡,提高服务稳定性。

frp 的主要特性

  • 配置文件格式: 支持 TOML、YAML、JSON
  • 环境变量支持
  • 仪表盘监控: 提供 Prometheus 监控
  • 客户端认证: 支持 Token 和 OIDC 认证
  • 加密和压缩
  • 热重载配置

实践案例

SSH 远程登录

  1. 服务端配置 (frps.ini):

    ini 复制代码
    text
    [common]
    bind_port = 7000
    token = test
  2. 客户端配置 (frpc.ini):

    ini 复制代码
    text
    [common]
    server_addr = frps服务器IP
    server_port = 7000
    token = test
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
  3. 启动客户端:

    bash 复制代码
    bash
    ./frpc -c frpc.ini
  4. 外网访问:

    sql 复制代码
    bash
    ssh user@frps服务器IP -p 6000

Web 服务访问

  1. 客户端配置 (frpc.ini):

    ini 复制代码
    text
    [web]
    type = http
    local_ip = 127.0.0.1
    local_port = 8080
    remote_port = 9000
  2. 外网访问:

    arduino 复制代码
    bash
    http://frps服务器IP:9000

总结

frp 是一个功能强大的内网穿透工具,可以帮助您轻松地将内网服务暴露到外网,支持多种协议和应用场景。通过简单的配置和部署,frp 能够满足不同用户的需求。

相关推荐
徐行code几秒前
C++核心机制-复制消除
后端
soda_yo1 分钟前
浅拷贝与深拷贝: 克隆一只哈基米
前端·javascript·面试
开心猴爷17 分钟前
在 CICD 中实践 Fastlane + Appuploader 命令行,构建可复制的 iOS 自动化发布流程
后端
一 乐29 分钟前
高校评教|基于SpringBoot+vue高校学生评教系统 (源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
疯狂的程序猴1 小时前
Web 抓包完整实践指南,从浏览器网络调试到底层数据流捕获的全流程方案
后端
喵手1 小时前
我使用openEuler构建出了一个自愈式系统监控平台
后端
调试人生的显微镜1 小时前
以 uni-app 为核心的 iOS 上架流程实践, 从构建到最终提交的完整路径
后端
喵手1 小时前
我在openEuler上从零开始构建云原生AI应用
后端
用户6600676685391 小时前
从“养猫”看懂JS面向对象:原型链与Class本质拆解
前端·javascript·面试
解读玫瑰1 小时前
WSL+openEuler嵌入式开发实战:交叉编译与QEMU仿真全流程
后端