x-cmd pkg | frp – 内网穿透工具

简介

frp(Fast Reverse Proxy)是一个专注于内网穿透的高性能反向代理应用,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

它采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。此外,还可以通过 xtcp 实现 P2P 通信。

注意:将内网服务暴露至公网时需要谨慎考虑安全性,确保要有适当的身份验证和访问控制,以防止未经授权的访问。

首次用户

  1. 使用 x env use frp 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 frp 命令常用功能的 demo 示例,可以帮你快速上手 frp 。

  3. 使用案例:

    frp-1min-cn

    # 安装 frp
    x env use frp
    
    # 配置 TCP 类型的代理,使用户能够访问内网服务器
    # 创建公网服务器端 frp 配置文件,如下述 frps.ini 文件:
    [common]
    bind_addr = 0.0.0.0
    bind_port = 7000
    
    # 在公网服务器上运行 frps
    frps -c ./frps.ini
    
    # 创建内网客户端 frp 配置文件,如下述 frpc.ini 文件:
    [common]
    server_addr = your_server_ip
    server_port = 7000
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
    # 在内网机器上运行 frpc
    frpc -c ./frpc.ini
    
    # 通过 SSH 访问内网机器,假设用户名为 test
    ssh -o Port=6000 test@your_server_ip
    

功能特点

  1. 支持多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
  2. TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
  3. 端口复用:多个服务可以通过同一个服务端端口暴露。
  4. P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
  5. 客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
  6. 服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
  7. 用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。

竞品和相关作品

  1. ngrok: 另一个创建安全本地隧道的流行工具,提供类似于 frp 的功能。
  2. SSH Tunnel: SSH 隧道也可用于创建安全连接和端口转发。

进一步探索

  • frp 源代码 - frp 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 frp 和参与社区贡献。
  • Getting started: frp - 官方提供的 frp 快速上手文档,内容详实,包含多个常见的使用场景和配置示例。