你是否遇到过这样的情况:在家里的电脑上搭了一个网站,或者写了一个 API 服务,想让朋友或客户在线访问,却发现没有公网 IP?想要购买云服务器,一看配置高点的每年要上千元,让人望而却步。
其实,你手边那台闲置的旧电脑,配上 frp 这款神器,就能摇身一变,成为一台“云服务器”。
什么是 frp?
frp 是一款高性能、轻量级的内网穿透工具,全称 Fast Reverse Proxy(快速反向代理)。它由服务端(frps)和客户端(frpc)两部分组成,采用经典的 C/S 模式,巧妙地解决内网设备无法被外网访问的难题。
它的工作原理可以这样理解:
-
你有一台藏在家庭或公司局域网内的电脑(称为内网机器),它没有独立的公网 IP。
-
你拥有一台云服务器(称为公网服务器),它有一个固定的公网 IP。
-
frp会让你的内网机器主动连接云服务器,并告诉它:“我这里有网站、文件等服务,有人访问你(服务器)的某个端口时,请把请求转发给我来处理。” -
这样一来,外网用户访问云服务器的 IP 或域名,就能无障碍地访问到你内网电脑上的服务了。
frp 为什么值得一试?
相比于其他内网穿透方案,frp 的优势非常明显:
-
协议支持全面:支持 TCP、UDP、HTTP、HTTPS 等多种协议。无论是远程桌面(RDP)、SSH 连接、网站服务,还是游戏联机,它都能完美应对。
-
安全性高:支持 Token 身份验证、SSL/TLS 加密传输,甚至能限制访问的客户端 IP,让你暴露到公网的服务足够安全。
-
P2P 模式:对于大流量传输场景,
frp支持 P2P 模式。流量不经过服务器中转,直接在内网和客户端之间点对点通信,速度快且不消耗服务器带宽。 -
简单易用:配置文件的语法直观,只需要简单几行代码就能运行起来,学习成本很低。
这意味着,你可以用低廉的云服务器价格(只需买最低配的 1 核 1G 机器做“跳板”),享受到家里高性能电脑(16G 内存、高端 CPU)的处理能力。
手把手部署教程:5 分钟实现内网穿透
下面,我们以最常用的场景为例——通过 frp 访问家中的 SSH 服务,带大家从零开始部署。
准备工作
-
一台公网服务器(如阿里云、腾讯云、AWS 等),操作系统 Ubuntu 或 CentOS。
-
一台内网电脑(你要穿透出去的设备,即本次示例的客户端),macOS、Windows 或 Linux 均可。
-
从 GitHub Releases 页面 下载最新版的
frp,注意看清系统架构(Linux amd64, Windows amd64, macOS 等)。
注意:目前新版
frp主要使用.toml格式作为配置文件,请确保下载对应版本
第一步:配置服务端(公网服务器)
-
将下载好的 Linux 版
frp压缩包传到服务器上并解压: -
编辑服务端配置文件
frps.toml: -
写入以下配置(这是最精简的配置):
-
启动服务端:
如果看到日志输出
start frps success,则代表服务端启动成功。 -
开放防火墙:记得在云服务器的安全组中放行端口
7000和7500(以及后续要用到的6000远程端口)。
第二步:配置客户端(内网电脑)
假设你想从此处通过 SSH 访问家里的一台 Mac 或 Linux 电脑。
-
在客户端电脑上,解压下载好的对应系统版本的
frp包。 -
编辑客户端配置文件
frpc.toml: -
启动客户端:
-
Windows:打开 CMD,进入目录,运行
frpc.exe -c frpc.toml。 -
macOS/Linux:在终端运行
./frpc -c frpc.toml。
看到login to server success的字样,表示连接成功!
-
第三步:测试连接
现在,你可以在任何有网络的地方,打开终端,通过服务器的 IP 和映射的端口连接到你内网的电脑了:
ssh -p 6000 你的内网电脑用户名@你的云服务器公网IP
输入内网电脑的密码后,你会发现已经成功登录到了家里或公司的电脑上!
进阶技巧:为了保持
frp在后台稳定运行,推荐配置开机自启。在 Linux 服务端和客户端,可以将其注册为systemd服务进行管理;在 macOS 上,可以使用brew services start frpc来管理;Windows 则可以将其注册为 Windows 服务。
更多玩法:突破 Web 服务与远程桌面
除了 SSH,frp 的强大远不止如此:
-
暴露本地网站:如果你是开发者,在
frpc.toml中进行如下配置,即可让别人通过http://你的服务器IP:8080访问你电脑上 localhost:3000 的网页项目:[[proxies]] name = "web" type = "http" localPort = 3000 customDomains = ["你的域名.com"] # 如果有域名的话 # 如果没有域名,配合服务端 vhostHTTPPort,直接用 IP:8080 访问
-
远程控制 Windows:对于 Windows 电脑,只需修改
localPort为3389(RDP 远程桌面的默认端口),就可以在外网远程控制你的 Windows 电脑了。
结语
frp 作为一款久经考验的开源神器,极大地降低了个人或小团队拥有“服务器”的门槛。你不必再把所有服务都跑在昂贵的云服务器上,用最低的成本,榨干手头闲置硬件的性能,何乐而不为呢?
现在就去试试吧,用 frp 打通你的数字世界!
文章评论