🙋 用户
我在宝塔服务器上部署最新的frp服务端0.68.1版本 然后通过自定义域名的静态网站反代 在自己的笔记本电脑上安装最新frp的客户端 去作为微信小程序的服务器,具体配置应该怎么弄
🤖 DeepSeek
将最新版 frp (v0.68.1) 与 Nginx 配合,用于微信小程序本地开发是非常经典的方案。其核心思路是:在服务器上,让 Nginx 监听 80/443 端口并管理 SSL 证书,然后将请求转发给 frps 的 HTTP 端口;再由 frps 通过内网隧道,将请求精准地转发到你笔记本电脑上的开发服务。
你遇到的难点在于,微信小程序要求服务器域名必须是 80 (HTTP) 或 443 (HTTPS) 端口,而 frps 通常需要避开这些端口以避免冲突。
为了解决这个问题,我为你整理了基于 宝塔面板 + frp v0.68.1 (TOML 格式) 的详细配置步骤。
方案架构图
为了方便你理解,下面是整个请求链路的数据流向:

第一步:服务端(云服务器)配置
你需要在你的云服务器上完成以下三个软件的配置。
1. 下载与解压 frp 0.68.1
首先,通过 SSH 连接到你的服务器(宝塔终端),下载并解压最新版 frp。
bash
# 下载 Linux 版本wget https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_linux_amd64.tar.gz# 解压tar -xzf frp_0.68.1_linux_amd64.tar.gz# 进入目录cd frp_0.68.1_linux_amd64
2. 配置 frps (服务端)
新版 frp 使用 toml 格式配置。编辑 frps.toml 文件:
bash
vi frps.toml
将内容清空,并填入以下配置:
toml
# frps.toml# frp 服务端与客户端通信的主端口bindPort =7000# 指定一个 HTTP 端口,用于接收来自 Nginx 的请求# 注意:这个端口不要和宝塔面板中其他网站使用的端口冲突,建议使用一个不常用的高位端口vhostHTTPPort =7080# 身份验证,提高安全性auth.method ="token"auth.token ="your-strong-password-here"# (可选) 管理面板,方便你查看连接状态webServer.port =7500webServer.addr ="0.0.0.0"webServer.user ="admin"webServer.password = "your-admin-password"
注意:请务必修改 auth.token 为一个强密码。
3. 启动 frps 服务
为了方便管理,我们创建一个 systemd 服务。
bash
vi /etc/systemd/system/frps.service
写入以下内容:
ini
[Unit]Description=Frp ServerAfter=network.target[Service]Type=simpleUser=rootWorkingDirectory=/root/frp_0.68.1_linux_amd64ExecStart=/root/frp_0.68.1_linux_amd64/frps -c /root/frp_0.68.1_linux_amd64/frps.tomlRestart=on-failure[Install]WantedBy=multi-user.target
保存后,执行以下命令启动并设置开机自启:
bash
systemctl daemon-reloadsystemctl start frpssystemctl enable frpssystemctl status frps # 查看状态是否为 active (running)
宝塔安全组设置:记得在服务器的防火墙(安全组)和宝塔面板的安全页面中,放行端口 7000、7080 和 7500。
4. 配置 Nginx 反向代理 (关键步骤)
回到宝塔面板,进行以下操作:
- • 添加网站:在宝塔面板的“网站”页面,添加一个站点,域名填写你准备给小程序用的那个域名(例如 api.mydomain.com),PHP 版本选择纯静态。
- • 配置反向代理:
- 1. 点击新添加的网站名,进入“反向代理”选项卡。
- 2. 点击“添加反向代理”。
- 3. 代理名称:随意填写(如 frp_proxy)。
- 4. 目标URL:填写 http://127.0.0.1:7080 (这就是你在 frps 里设置的 vhostHTTPPort)。
- 5. 发送域名:填写 $host。
- 6. 保存。
- • 申请 SSL 证书:在网站的“SSL”选项卡,为你的域名申请并部署免费的 Let‘s Encrypt 证书(小程序强制要求 HTTPS)。
现在,你的服务器端已经就绪。
第二步:客户端(你的笔记本电脑)配置
你的笔记本上需要运行 frpc,将本地的开发服务器(如端口 8080)映射到服务器上。
- 1. 下载 frp 客户端:访问 frp 发布页面 下载对应操作系统的最新版客户端。例如 Windows 下载 frp_0.68.1_windows_amd64.zip,Mac 下载 frp_0.68.1_darwin_amd64.tar.gz。
- 2. **编写配置文件 (frpc.toml)**: 下载解压后,在文件夹中找到或创建 frpc.toml,写入如下内容: toml
# frpc.tomlserverAddr ="你的云服务器公网IP"serverPort =7000auth.method ="token"auth.token ="your-strong-password-here"# 必须与服务端保持一致[[proxies]]name ="wechat-miniprogram"type ="http"# 代理类型为 httplocalIP ="127.0.0.1"localPort =8080# 你本地实际运行的服务端口customDomains =["api.mydomain.com"] # 你已解析并配置了 SSL 的域名
- 1. 启动客户端:
- • Windows: 在文件夹地址栏输入 cmd 回车,然后运行 .\frpc.exe -c frpc.toml。
- • Mac/Linux: 在终端中运行 ./frpc -c frpc.toml。
- • 如果看到 start proxy success 的日志,说明连接成功。
第三步:测试与最终校验
- 1. 本地服务检查:确保你笔记本上运行着微信小程序的开发后端(例如接口地址是 localhost:8080/api/test)。
- 2. 远程访问测试:打开你的浏览器,访问 https://api.mydomain.com/api/test。
- • 如果能正常返回数据,说明整个链路已经打通。
现在,你可以将微信小程序的服务器配置里的 request合法域名 设置为 https://api.mydomain.com,然后愉快地进行本地开发调试了。
遇到问题?排错指南
- • 访问域名出现 404:检查 Nginx 的反向代理配置是否正确指向了 http://127.0.0.1:7080。
- • **frpc 连接失败 (connection refused)**:检查服务器安全组和宝塔面板防火墙是否都放行了 7000 端口。
- • 连接成功但访问无响应:检查你的本地服务是否真的在 localhost:8080 正常运行,并且可以被其他程序访问(注意有些防火墙会拦截)。-2
- • 配置了 HTTPS 但小程序报错:小程序强制要求 TLS 版本,请确保在宝塔申请的 SSL 证书状态正常,且没有使用自签名证书。
转载请注明:小雨科技 _武汉网站建设_武汉小程序搭建 » 宝塔frp小程序内网穿透配置教程


