GXB's Blog

  • 首页
  • 学习笔记
    • C++
    • golang
    • javascript
    • python
  • 工具分享
  • 其它
Kratos
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. 工具分享
  3. 正文

告别昂贵的云服务器:用 frp 将你的电脑“搬”到公网

2026年4月24日 1点热度 0人点赞 0条评论

你是否遇到过这样的情况:在家里的电脑上搭了一个网站,或者写了一个 API 服务,想让朋友或客户在线访问,却发现没有公网 IP?想要购买云服务器,一看配置高点的每年要上千元,让人望而却步。

其实,你手边那台闲置的旧电脑,配上 frp 这款神器,就能摇身一变,成为一台“云服务器”。

什么是 frp?

frp 是一款高性能、轻量级的内网穿透工具,全称 Fast Reverse Proxy(快速反向代理)。它由服务端(frps)和客户端(frpc)两部分组成,采用经典的 C/S 模式,巧妙地解决内网设备无法被外网访问的难题。

它的工作原理可以这样理解:

  • 你有一台藏在家庭或公司局域网内的电脑(称为内网机器),它没有独立的公网 IP。

  • 你拥有一台云服务器(称为公网服务器),它有一个固定的公网 IP。

  • frp 会让你的内网机器主动连接云服务器,并告诉它:“我这里有网站、文件等服务,有人访问你(服务器)的某个端口时,请把请求转发给我来处理。”

  • 这样一来,外网用户访问云服务器的 IP 或域名,就能无障碍地访问到你内网电脑上的服务了。

frp 为什么值得一试?

相比于其他内网穿透方案,frp 的优势非常明显:

  1. 协议支持全面:支持 TCP、UDP、HTTP、HTTPS 等多种协议。无论是远程桌面(RDP)、SSH 连接、网站服务,还是游戏联机,它都能完美应对。

  2. 安全性高:支持 Token 身份验证、SSL/TLS 加密传输,甚至能限制访问的客户端 IP,让你暴露到公网的服务足够安全。

  3. P2P 模式:对于大流量传输场景,frp 支持 P2P 模式。流量不经过服务器中转,直接在内网和客户端之间点对点通信,速度快且不消耗服务器带宽。

  4. 简单易用:配置文件的语法直观,只需要简单几行代码就能运行起来,学习成本很低。

这意味着,你可以用低廉的云服务器价格(只需买最低配的 1 核 1G 机器做“跳板”),享受到家里高性能电脑(16G 内存、高端 CPU)的处理能力。

手把手部署教程:5 分钟实现内网穿透

下面,我们以最常用的场景为例——通过 frp 访问家中的 SSH 服务,带大家从零开始部署。

准备工作

  1. 一台公网服务器(如阿里云、腾讯云、AWS 等),操作系统 Ubuntu 或 CentOS。

  2. 一台内网电脑(你要穿透出去的设备,即本次示例的客户端),macOS、Windows 或 Linux 均可。

  3. 从 GitHub Releases 页面 下载最新版的 frp,注意看清系统架构(Linux amd64, Windows amd64, macOS 等)。

注意:目前新版 frp 主要使用 .toml 格式作为配置文件,请确保下载对应版本

第一步:配置服务端(公网服务器)

  1. 将下载好的 Linux 版 frp 压缩包传到服务器上并解压:

    tar -zxvf frp_0.xx.x_linux_amd64.tar.gz 
    cd frp_0.xx.x_linux_amd64
  2. 编辑服务端配置文件 frps.toml:

    vim frps.toml
  3. 写入以下配置(这是最精简的配置):

    # frps.toml bindPort = 7000 # 服务端与客户端通信的端口 
    vhostHTTPPort = 8080 # 代理 HTTP 服务的端口(按需开启,本例暂未使用) 
    auth.token = "12345678" # 鉴权 token,客户端需要一致,建议设置复杂一点 
    webServer.addr = "0.0.0.0" 
    webServer.port = 7500 # 仪表盘端口,可通过浏览器查看 frp 状态 
    webServer.user = "admin" 
    webServer.password = "admin"
  4. 启动服务端:

    ./frps -c frps.toml

    如果看到日志输出 start frps success,则代表服务端启动成功。

  5. 开放防火墙:记得在云服务器的安全组中放行端口 7000 和 7500(以及后续要用到的 6000 远程端口)。

第二步:配置客户端(内网电脑)

假设你想从此处通过 SSH 访问家里的一台 Mac 或 Linux 电脑。

  1. 在客户端电脑上,解压下载好的对应系统版本的 frp 包。

  2. 编辑客户端配置文件 frpc.toml:

    # frpc.toml serverAddr = "你的云服务器公网IP" 
    serverPort = 7000 # 必须与服务端 bindPort 一致 
    auth.token = "12345678" # 必须与服务端 token 一致 
    [[proxies]] 
    name = "ssh-test" # 代理名称,唯一即可 
    type = "tcp" 
    localIP = "127.0.0.1" # 本机 SSH 服务地址 
    localPort = 22 # SSH 默认端口 
    remotePort = 6000 # 通过服务器的 6000 端口访问本机 SSH
  3. 启动客户端:

    • Windows:打开 CMD,进入目录,运行 frpc.exe -c frpc.toml。

    • macOS/Linux:在终端运行 ./frpc -c frpc.toml。
      看到 login to server success 的字样,表示连接成功!

第三步:测试连接

现在,你可以在任何有网络的地方,打开终端,通过服务器的 IP 和映射的端口连接到你内网的电脑了:

bash
ssh -p 6000 你的内网电脑用户名@你的云服务器公网IP

输入内网电脑的密码后,你会发现已经成功登录到了家里或公司的电脑上!

进阶技巧:为了保持 frp 在后台稳定运行,推荐配置开机自启。在 Linux 服务端和客户端,可以将其注册为 systemd 服务进行管理;在 macOS 上,可以使用 brew services start frpc 来管理;Windows 则可以将其注册为 Windows 服务。

更多玩法:突破 Web 服务与远程桌面

除了 SSH,frp 的强大远不止如此:

  • 暴露本地网站:如果你是开发者,在 frpc.toml 中进行如下配置,即可让别人通过 http://你的服务器IP:8080 访问你电脑上 localhost:3000 的网页项目:

    toml
    [[proxies]]
    name = "web"
    type = "http"
    localPort = 3000
    customDomains = ["你的域名.com"] # 如果有域名的话
    # 如果没有域名,配合服务端 vhostHTTPPort,直接用 IP:8080 访问
  • 远程控制 Windows:对于 Windows 电脑,只需修改 localPort 为 3389(RDP 远程桌面的默认端口),就可以在外网远程控制你的 Windows 电脑了。

结语

frp 作为一款久经考验的开源神器,极大地降低了个人或小团队拥有“服务器”的门槛。你不必再把所有服务都跑在昂贵的云服务器上,用最低的成本,榨干手头闲置硬件的性能,何乐而不为呢?

现在就去试试吧,用 frp 打通你的数字世界!

标签: 暂无
最后更新:2026年4月24日

admin

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 4 月

分类

  • C++
  • golang
  • 学习笔记
  • 工具分享

COPYRIGHT © 2026 GXB's Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang