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

相关推荐
苏三说技术8 分钟前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay1 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花1 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户6757049885022 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
Ruihong2 小时前
Vue withDefaults 转 React:VuReact 怎么处理?
vue.js·react.js·面试
用户6757049885022 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go
小兔崽子去哪了2 小时前
Java 生成二维码解决方案
java·后端
苍何2 小时前
懂事的 Agent 已经开始自己看屏幕干活了,效率起飞!
后端
掘金码甲哥3 小时前
1分钟买不了吃亏系列: nginx动态域名解析
后端
神奇小汤圆3 小时前
2026大厂Java岗面试记录:八股+场景+项目+AI,一文讲透快速上岸路径(含答案)
后端