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

相关推荐
程序员爱钓鱼12 小时前
Python 综合项目实战:学生成绩管理系统(命令行版)
后端·python·ipython
程序员爱钓鱼12 小时前
REST API 与前后端交互:让应用真正跑起来
后端·python·ipython
Dcs14 小时前
Java 中 UnaryOperator 接口与 Lambda 表达式的应用示例
java·后端
bagadesu16 小时前
使用Docker构建Node.js应用的详细指南
java·后端
lkbhua莱克瓦2419 小时前
Java基础——方法
java·开发语言·笔记·github·学习方法
勇哥java实战分享19 小时前
第一次用 Ollama 跑视觉模型:Qwen2.5-VL 7B 给了我一个意外惊喜
后端
码事漫谈21 小时前
从后端开发者到Agent工程师:一份系统性的学习指南
后端
Croa-vo21 小时前
PayPal OA 全流程复盘|题型体验 + 成绩反馈 + 通关经验
数据结构·经验分享·算法·面试·职场和发展
码事漫谈21 小时前
后端开发如何将创新转化为专利?案例、流程与实操指南
后端
小坏讲微服务1 天前
SpringCloud零基础学全栈,实战企业级项目完整使用
后端·spring·spring cloud