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

相关推荐
Mahir086 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
绝知此事8 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
IT_陈寒10 小时前
Redis缓存击穿把我整不会了,原来还有这手操作
前端·人工智能·后端
kyriewen11 小时前
面试官让我查各部门工资最高的员工,我用AI三秒写出窗口函数,他愣了
后端·mysql·面试
文心快码BaiduComate11 小时前
干货|Comate Harness Engineering工程实践指南
前端·后端·程序员
光辉GuangHui11 小时前
Agent Skill 也需要测试:如何搭建 Skill 评估框架
前端·后端·llm
我是谁的程序员11 小时前
Mac 上生成 AppStoreInfo.plist 文件,App Store 上架
后端·ios
irving同学4623811 小时前
Node 后端实战:JWT 认证与生产级错误处理
前端·后端
Master_Azur11 小时前
单元测试——Junit单元测试框架
后端
用户83562907805111 小时前
使用 Python 进行 Word 邮件合并
后端