FRP内网穿透完整搭建与使用文档
FRP内网穿透完整搭建与使用文档(实战版)
适用场景:本地电脑无公网IP → 通过公网VPS服务器 → 让外网访问本地Web项目当前状态:你的服务端(43.142.181.41)已配置完成,可直接进行客户端操作
一、环境确认与准备工作
1.1 你已有的资源
| 项目 | 参数 | 来源/说明 |
|---|---|---|
| 公网VPS服务器IP | 43.142.181.41 |
已购买并运行FRP服务端 |
| FRP服务端版本 | v0.67.0 |
与你客户端需保持一致 |
| 服务端连接端口 | 7000 |
客户端连接用(已放行) |
| HTTP访问端口 | 28080 |
外网访问Web的端口 |
| 管理后台地址 | http://43.142.181.41:7500 |
账号/密码:admin/xxx |
| 身份验证Token | 123456(或服务端实际设置值) |
客户端连接必须匹配 |
1.2 你需要准备的
-
本地电脑:Windows/Mac/Linux,已运行需要穿透的Web项目(如Vue/React/Flask等)
-
浏览器:用于验证本地服务与外网访问
-
文本编辑器:修改配置文件
二、客户端配置与启动(本地电脑操作)
2.1 下载FRP客户端
-
访问GitHub Releases页:👉 https://github.com/fatedier/frp/releases
-
选择版本:务必找到
v0.67.0(必须与服务端完全一致) -
下载对应系统压缩包:
-
Windows:
frp_0.67.0_windows_amd64.zip -
Mac:
frp_0.67.0_darwin_amd64.tar.gz -
Linux:
frp_0.67.0_linux_amd64.tar.gz -
解压 到你喜欢的目录(路径不要含中文)。
2.2 编写客户端配置文件 frpc.toml
-
在解压目录中找到
frpc.toml文件(如果没有则新建)。 -
使用记事本/VSCode等打开,删除所有默认内容,粘贴以下配置:
toml
# 服务端配置(必填)
serverAddr = "43.142.181.41" # 你的VPS公网IP
serverPort = 7000 # 服务端bindPort
auth.token = "123456" # 必须与服务端frps.toml中的token一致!
# Web项目代理配置(HTTP类型)
[[proxies]]
name = "my-web-project" # 自定义名称,勿重复
type = "http" # Web服务用http
localIP = "127.0.0.1" # 本地服务地址
localPort = 8080 # ⚠️ 修改为你的本地项目实际端口!
customDomains = ["43.142.181.41"] # 直接用IP访问
# (可选)如果要用域名,改为customDomains = ["www.yourdomain.com"]
⚠️ 特别注意:
-
auth.token:必须与你服务端frps.toml中设置的token完全一致。你当前服务端若未修改,默认可能是123456。 -
localPort:必须修改为你本地项目正在运行的端口号(如3000、5000、80等),不是8080就一定成功。 -
customDomains:直接使用IP访问时,就填服务端IP。
2.3 启动FRP客户端
Windows系统:
-
在
frpc.exe所在文件夹,地址栏输入cmd回车。 -
输入命令并回车:
cmd
frpc.exe -c frpc.toml -
成功标志:出现
login to server success和start proxy success。
Mac/Linux系统:
bash
./frpc -c frpc.toml
保持命令行窗口不关闭,关闭即断开穿透。
三、验证与访问测试
3.1 本地自检(必须通过)
在你本地电脑浏览器访问:
text
http://localhost:8080 (将8080替换为你项目的实际端口)
✅ 必须能正常打开你的项目页面。若打不开,FRP映射必然失败,请先排查本地服务。
3.2 外网访问测试
在其他网络环境(如手机流量)的浏览器访问:
text
http://43.142.181.41:28080
✅ 成功:显示与本地访问完全一致的项目页面。❌ 失败:请按下一章“常见问题排查”逐步检查。
四、常见问题排查(按概率排序)
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
客户端报错 token doesn't match |
客户端auth.token与服务端实际token不一致 |
1. 登录VPS,执行 cat /path/to/frps.toml | grep token 2. 将查到的真实token填入客户端配置文件 |
外网访问 无法连接/超时 |
VPS防火墙未放行 28080端口(90%的案例) |
登录云服务商控制台 → 安全组/防火墙 → 添加入方向TCP:28080,来源0.0.0.0/0 |
外网访问 404/502 |
1. 本地服务未运行 2. 客户端localPort写错 3. 本地服务绑定非127.0.0.1 |
1. 确认 http://localhost:端口 能打开 2. 检查配置文件端口 3. 部分框架需监听 0.0.0.0 |
客户端启动报错 connect: connection refused |
1. VPS的7000端口未放行 2. 服务端未运行 |
1. 检查VPS安全组是否放行TCP 7000 2. VPS上执行 systemctl status frps 检查服务状态 |
访问管理后台 http://IP:7500 但无法登录 |
1. 7500端口未放行 2. 账号密码错误 | 1. VPS安全组放行TCP 7500 2. 检查服务端frps.toml中的webServer.user/password |
五、进阶配置与管理
5.1 将FRP客户端注册为Windows服务(后台运行)
避免每次手动启动命令行,推荐使用 winsw 工具将 frpc 注册为Windows服务,设置开机自启。
5.2 绑定自己的域名
-
购买域名(如
example.com)。 -
在域名DNS控制台添加 A记录,指向你的VPS IP
43.142.181.41。 -
修改
frpc.toml:toml
customDomains = ["www.example.com"] # 改为你的域名 -
访问时使用:
http://www.example.com:28080
5.3 配置HTTPS加密访问
-
在服务端
frps.toml中启用vhostHTTPSPort。 -
客户端配置
type = "https"并配置证书路径。(具体步骤较复杂,建议先跑通HTTP)
六、总结流程图

你现在正处于“B→C”连接成功的阶段,重点解决“C→D→E”的访问链路问题(通常是VPS防火墙未放行28080端口)。
如有其他卡点,请提供:
-
客户端命令行窗口的完整日志截图
-
VPS安全组/防火墙规则截图
-
本地访问
http://localhost:端口的截图
根据实际进度调整即可。
夜雨聆风
