frp 是一个高性能的反向代理应用,它可以帮助您将位于内网或防火墙后的本地服务(如网页服务器、SSH 服务、NAS 等)通过拥有公网 IP 的服务器暴露给外部网络访问。简单来说,它就像一个“内网穿透”工具。而“免费 frp”通常指的是使用 frp 这个开源软件,并且不为此支付服务器或服务提供商的费用。

免费frp是什么?

frp 本身是一个完全免费且开源的软件项目。您可以自由下载、使用和修改它的代码。它由客户端(frpc)和服务端(frps)两部分组成:

  • frpc (客户端):运行在您内网的设备上,负责连接到 frp 服务端,并将您希望暴露的服务流量转发到服务端。
  • frps (服务端):运行在拥有公网 IP 的服务器上,监听来自客户端的连接,并将外部网络的访问请求转发给对应的客户端,最终到达您的内网服务。

当人们提到“免费 frp”时,大部分时候是指使用 frp 这个免费软件,并且利用免费的服务器资源来实现内网穿透。这可能包括:

  • 使用一些社区提供的免费 frp 公共服务器(这类服务可能不稳定,有流量、带宽或连接限制)。
  • 利用自己已有的、但配置较低的免费 VPS 或其他免费云服务实例来搭建 frp 服务端(如果提供商允许并有公网 IP)。

所以,免费 frp 的“免费”主要体现在软件本身不收费,以及您通过某种方式获取了无需付费的公网服务器资源

为什么需要免费frp?

在很多场景下,您可能需要从外部网络访问家里的电脑、树莓派上的服务,或者公司内网的某些资源。但直接访问通常是不可能的,原因包括:

  • 没有公网 IP:大多数家庭宽带或企业内网的设备没有独立的公网 IP 地址,它们共享一个出口 IP,并且被路由器或防火墙保护在内网中。
  • 网络地址转换 (NAT) 和防火墙:路由器和防火墙会阻止外部未经授权的连接直接进入内网。
  • 动态 IP 地址:即使有公网 IP,很多是动态分配的,不固定,难以持续访问。

frp 解决了这些问题。它通过主动从内网客户端向外网服务端建立连接,然后在服务端建立转发规则,巧妙地绕过了 NAT 和防火墙的限制。

选择免费 frp 的原因通常是:

  • 成本考虑:对于个人用户、学生、或者只是想进行测试和学习的用户来说,购买一个稳定的公网服务器可能是一笔开销。免费 frp 是一个零成本的解决方案。
  • 临时或低流量需求:如果您只需要临时暴露一个服务,或者您的服务流量非常小,免费的 frp 服务器可能就能满足需求。

  • 快速验证想法:您可以在不投入成本的情况下,快速测试一个需要公网访问的应用原型。

然而,需要注意的是,依赖免费公共 frp 服务器通常意味着牺牲稳定性、速度和安全性

免费frp哪里能用?在哪里获取?

免费 frp 主要涉及两个“哪里”:软件的获取和免费服务端的获取。

1. frp 软件在哪里获取?

frp 是一个开源项目,其源代码和编译好的可执行文件(适用于各种操作系统和架构,如 Windows, macOS, Linux, ARM 等)主要托管在代码托管平台 GitHub 上。

您可以在其官方 GitHub 仓库的 Release 页面找到最新版本的压缩包进行下载。无需安装,解压后即可使用。请务必从官方或可信的来源下载,以确保软件的安全性。

2. 免费 frp 服务端在哪里能用/获取?

这是“免费 frp”中最不确定和多变的部分:

  • 社区提供的免费公共 frp 服务器:互联网上有一些个人或社区出于分享目的搭建了免费的 frp 服务器供大家使用。您可能需要通过技术论坛、社交媒体群组等途径去寻找这些资源。使用这类服务需要非常谨慎,因为您无法了解服务提供者的背景,数据安全和隐私可能无法得到保障,且服务随时可能中断、限速或停止。
  • 使用免费的云服务或 VPS:一些云服务提供商会提供免费试用期或永久免费的低配置云服务器(例如一些国际大厂或国内特定活动)。如果这些免费实例提供了公网 IP,您可以自己下载 frp 服务端软件并在上面搭建。这种方式相对更可控,但免费资源的可用性和持续性取决于提供商的政策。
  • 朋友或同事的富余服务器资源:如果有人拥有闲置的服务器资源并愿意分享,您也可以利用他们的服务器作为 frp 服务端。

重要提示:依赖互联网上不熟悉的第三方提供的免费 frp 服务器存在较大的安全风险和不稳定性。请勿通过此类服务传输敏感数据。更推荐的方式是自己搭建 frp 服务端,即使是在一个便宜的付费 VPS 上,也比使用来路不明的免费服务器要安全得多。

免费frp的费用是多少?

frp 软件本身的使用是零费用的。您可以永久免费地下载、使用和更新 frp 软件。

当您使用免费 frp 服务端时,您通常也无需支付服务器的租用费用或流量费用。这就是“免费 frp”的核心所在。

但是,您仍然可能需要承担一些相关的隐性成本

  • 您自己本地设备的电费网络费用(家庭宽带费用)。
  • 如果您使用的是社区提供的免费公共服务器,您付出的代价可能是不稳定性速度限制缺乏隐私保障以及没有技术支持
  • 如果您是通过免费云服务搭建的,可能需要花费时间和精力去申请、配置和维护这个免费资源。

总而言之,直接的货币成本是零,但请务必评估其潜在的稳定性和安全风险是否符合您的需求。

免费frp如何设置?怎么使用?

设置和使用 frp 需要配置服务端和客户端。这里提供一个简化版的通用流程和配置概念(具体的配置文件内容会因版本和需求而异):

通用设置流程:

  1. 获取软件:从 frp 的 GitHub Release 页面下载适用于服务端操作系统和服务端架构的 frps 可执行文件及配置文件,以及适用于您本地设备操作系统和架构的 frpc 可执行文件及配置文件。
  2. 配置 frps (服务端)

    在您的免费服务器(拥有公网 IP 的那台)上找到下载并解压好的 frp 文件夹。修改 frps.ini 文件。至少需要配置以下内容:

    [common]
    bind_port = 7000  # frp 服务端与客户端通信的端口,您可以自行设定
    # dashboard_port = 7500 # 可选:配置一个端口用于查看 frp 状态的网页面板
    # token = abcdefg       # 可选:设置一个令牌,用于客户端连接时的身份验证,提高安全性
    

    这个 bind_port 是 frp 服务端监听客户端连接的端口。如果您的服务需要通过域名访问(HTTP/HTTPS),可能还需要配置 vhost_http_portvhost_https_port

  3. 启动 frps (服务端)

    在服务端的终端或命令行中,切换到 frp 文件夹,运行命令启动服务端:

    ./frps -c ./frps.ini
    

    (Windows 下可能是 frps.exe -c frps.ini)。确保服务端的防火墙允许外部访问您在 frps.ini 中配置的端口(如 7000)。

  4. 配置 frpc (客户端)

    在您内网的设备上找到下载并解压好的 frp 文件夹。修改 frpc.ini 文件。至少需要配置以下内容:

    [common]
    server_addr = 您免费服务器的公网 IP 或域名
    server_port = 7000  # 必须和服务端的 bind_port 一致
    # token = abcdefg       # 如果服务端设置了 token,客户端也需要设置
    

    然后,为每一个您想暴露出去的内网服务添加一个配置段。例如,暴露本地运行在 80 端口的网页服务:

    [web]            # 服务名称,自定义,不能重复
    type = http      # 服务类型,可以是 tcp, udp, http, https, stcp 等
    local_ip = 127.0.0.1 # 内网服务的 IP 地址,通常是 127.0.0.1 或内网设备的局域网 IP
    local_port = 80  # 内网服务的端口
    custom_domains =您的域名 # 如果有域名并已解析到服务端的公网 IP,可使用此项
    # subdomain = web        # 如果没有域名,可以使用此项,通过 服务端IP:vhost_http_port/subdomain 访问
    

    或者暴露 SSH 服务(本地通常在 22 端口):

    [ssh]            # 服务名称
    type = tcp       # SSH 通常使用 tcp
    local_ip = 127.0.0.1 # 本地设备的 IP
    local_port = 22  # 本地 SSH 服务端口
    remote_port = 6000  # 指定服务暴露在 frp 服务端的哪个端口上
    

    配置完成后保存文件。

  5. 启动 frpc (客户端)

    在本地设备的终端或命令行中,切换到 frp 文件夹,运行命令启动客户端:

    ./frpc -c ./frpc.ini
    

    (Windows 下可能是 frpc.exe -c frpc.ini)。

  6. 访问服务

    根据您在客户端配置中设置的方式访问服务:

    • 如果是 HTTP/HTTPS 类型,设置了 custom_domains,通过您的域名访问。如果设置了 subdomain,通过 http://服务端IP:服务端配置的vhost_http_port/subdomain 访问。
    • 如果是 TCP 类型,通过 服务端IP:客户端配置的remote_port 访问(例如,SSH 连接到 服务端IP:6000)。

这个过程是通用的 frp 设置步骤。使用免费 frp 服务的区别仅在于您获取用于 frps 的公网服务器的方式是免费的。

注意事项:

  • 确保服务端和客户端的 frp 版本兼容。
  • 确保服务端的防火墙已开放 frp 通信端口 (bind_port) 和您暴露服务使用的端口 (如 remote_port, vhost_http_port 等)。
  • 如果使用社区免费 frp 服务器,您可能无法修改服务端的配置,只能根据服务提供方给出的服务器地址、端口、token 以及允许的端口范围或方式来配置客户端。
  • 考虑到安全性,对于重要或敏感的服务,不建议使用未知的免费 frp 服务器。

免费 frp 是一个强大且零成本的工具,非常适合个人学习、测试和非关键性应用。了解其工作原理和潜在限制,可以帮助您更好地利用它。

免费frp