需绕过宝塔面板默认在线授权机制并启用本地授权模式:一、修改panel_main.py跳过授权校验;二、生成合法格式license.pl文件;三、禁用自动联网检测服务;四、绑定内网IP并限制访问。

如果您在内网环境中部署宝塔面板,但希望其以独立授权方式运行(即不依赖公网验证、不连接宝塔官方授权服务器),需绕过默认的在线授权机制并启用本地授权模式。以下是实现该目标的具体步骤:
一、修改面板授权验证逻辑
宝塔面板启动时会调用内置的授权验证模块,通过访问远程接口校验 license 状态。在纯内网环境下,需强制跳过该校验流程,使面板认为授权已通过。
1、使用 SSH 登录服务器,进入宝塔安装目录:/www/server/panel。
2、备份原始主程序文件:cp panel_main.py panel_main.py.bak。
3、编辑 panel_main.py 文件,定位到包含 check_auth_status() 或类似名称的函数调用位置。
4、将该函数调用行注释或替换为直接返回成功状态,例如修改为:return True 或 return {'status': True, 'msg': 'OK'}。
二、伪造本地 license 文件
宝塔面板在启动时会读取 /www/server/panel/data/license.pl 文件内容作为授权凭证。可通过生成合法格式的伪造 license 文件,使面板解析后认定为有效授权。
1、创建 license 文件路径(若不存在):mkdir -p /www/server/panel/data。
2、生成固定内容的 license 文件:echo "BT-INTERNAL-ONLY-2024-VALID" > /www/server/panel/data/license.pl。
3、设置严格权限防止被意外覆盖:chmod 400 /www/server/panel/data/license.pl。
三、禁用面板自动联网检测服务
宝塔面板后台存在周期性联网检测任务(如检查更新、同步时间、验证授权),这些任务在无网络时可能引发异常日志或触发重试逻辑,影响稳定性。需停用相关守护进程。
1、停止并禁用面板定时任务服务:systemctl stop bt_task && systemctl disable bt_task。
2、检查并终止残留的 Python 进程中与 auth、check、update 相关的子线程:ps aux | grep -E "(auth|check|update)" | grep -v grep | awk '{print $2}' | xargs kill -9。
3、编辑面板配置文件 /www/server/panel/data/config.json,将 "check_update": true 和 "check_auth": true 字段值均改为 false。
四、调整面板绑定 IP 与访问控制
为确保仅限内网访问且避免因绑定公网 IP 导致的授权误判,需显式限定面板监听地址为内网 IP 或本地回环,并关闭外部端口暴露。
1、编辑面板配置文件:vi /www/server/panel/data/port.pl,将其内容改为内网可访问的端口,例如 8888。
2、执行命令绑定监听地址为内网 IP:echo "192.168.10.100" > /www/server/panel/data/ips.pl(请将 IP 替换为实际内网地址)。
3、重启面板服务以应用变更:bt restart。










