背景与需求
在实际运维中,许多服务器位于内网,未直接分配公网IP,但管理员希望通过公网访问宝塔面板进行管理。使用FRP(Fast Reverse Proxy)可以将内网宝塔面板端口映射到公网服务器,实现安全可靠的远程访问。
FRP原理简介
FRP是一款开源的反向代理工具,通过在公网服务器部署服务端,在内网服务器部署客户端,建立加密隧道,将内网端口暴露到公网。配合宝塔面板的访问认证,可有效控制风险。
部署步骤
一、公网服务器配置FRP服务端
- 下载FRP对应系统架构的版本,解压后得到frps和frps.toml(新版)或frps.ini(旧版)。
- 编辑服务端配置文件,设置绑定端口、认证令牌(token)以及面板访问端口。
[common]
bind_port = 7000
auth_token = 自定义强密码
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 另一密码
二、启动FRP服务端
在公网服务器运行./frps -c frps.toml(或对应命令)。建议使用systemd或supervisor守护进程,确保断线自动重启。
三、内网服务器配置FRP客户端
同样下载FRP客户端程序,编辑客户端配置文件,指定服务端地址、端口、认证令牌,并定义需要映射的本地宝塔面板端口(默认8888)。
[common]
server_addr = 公网服务器IP
server_port = 7000
auth_token = 与服务器相同的token
[bt-panel]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 8888
四、启动FRP客户端
在宝塔所在服务器运行./frpc -c frpc.toml(或对应命令)。此时通过公网IP:8888即可访问宝塔面板。
安全加固建议
- 修改宝塔默认端口:在宝塔面板设置中更改8888为其他高位端口,避免默认扫描。
- 启用安全入口:宝塔面板提供随机安全入口URL,建议开启,并仅通过FRP暴露。
- 使用HTTPS:FRP支持TLS加密,可在客户端与服务端配置启用TLS,或通过宝塔申请SSL证书后使用反向代理。
- 限制访问IP:在公网服务器防火墙中仅允许特定IP访问映射端口,减少暴露面。
- 定期更新:关注FRP和宝塔面板的版本更新,及时修复已知漏洞。
注意事项
此方案仅适用于技术测试或非核心业务场景。若生产环境使用,建议采用VPN、堡垒机或云平台提供的内网穿透服务。请勿将未加密的FRP直接暴露于公网,并务必设置高强度认证令牌。