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 能够满足不同用户的需求。

相关推荐
CoderYanger16 分钟前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
Cosolar18 分钟前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
YH552698436 分钟前
如何减少大模型的token消耗?日常使用,可以通过什么方式减少大模型 token 的消耗
gpt·chatgpt·github
阿里嘎多学长39 分钟前
2026-08-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
长大198839 分钟前
Python代码慢?这5个性能优化技巧让速度提升100倍
后端
超超不吵吵1 小时前
Java AI转型实战(十):Agent 智能体初探
后端
步行cgn1 小时前
@AllArgsConstructor 是 Lombok 提供的注解
后端
柠檬味拥抱1 小时前
鸿蒙原生 AI 应用开发实战:用蓝耘 MaaS 给纪念日 App 装上「大模型大脑」
后端
smileNicky1 小时前
GitHub Pull Request 指南:从 Fork 到 Merge 的图文实战教程
github
步行cgn1 小时前
Lombok 详解:通过注解消除样板代码
后端