最直接有效的方式是启用宝塔内置ip白名单,入口在安全模块底部,需先开启开关;支持单ip或cidr网段,多个用英文逗号分隔,且不拦截8443端口。

宝塔面板后台只允许指定IP访问
最直接有效的方式是启用宝塔内置的IP白名单,它作用在应用层,配置即时生效,且不依赖系统防火墙状态。很多人误以为要进「网站」设置里配,其实入口在左侧菜单最底部的安全模块——点进去后,必须先开启IP白名单开关,下方输入框才可用;不点开开关,填了也完全无效。
- 支持单IP(如
203.203.203.203)或CIDR网段(如192.168.1.0/24),多个用英文逗号分隔 - 备注栏建议写清楚用途(例如“北京办公室出口IP”),方便后续排查
- 启用后右上角会显示“IP访问限制已开启”,但注意:该功能**不拦截HTTPS端口
8443**,如需限制,请同步在防火墙或绑定IP中处理 - 若你用的是云服务器且安全组已放行
8888端口,仅开宝塔白名单还不够——攻击者可能绕过面板直接打到端口,这时得配合下一条
用firewalld在系统层封死非白名单IP连8888端口
宝塔白名单本质是服务内校验,而firewalld是在网络栈更底层拦截,两者叠加才能防住扫描器暴力试探。尤其当你无法修改安全组、或服务器长期暴露公网时,这步不能省。
- 先确认firewalld运行中:
systemctl status firewalld - 放行可信IP(示例):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="114.114.114.114" port port="8888" protocol="tcp" accept' - 拒绝其他所有:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="8888" protocol="tcp" reject' - 重载生效:
firewall-cmd --reload - 常见坑:漏掉
--permanent参数,重启后规则丢失;或没加protocol="tcp"导致规则不匹配
防盗链不是防IP,别混用
用户常把“限制IP访问面板”和“网站防盗链”当成一回事,其实二者完全无关。防盗链功能只控制HTTP请求头中的Referer字段,用于阻止别人在自己的网页里嵌你的图片/CSS/JS等静态资源,对后台登录、API调用、面板访问毫无影响。
- 路径是:网站 → 点击具体域名 → 左侧
防盗链→ 填写许可域名(如www.example.com) - 它不会拦住用
curl -H "Referer: xxx" http://your-ip:8888这种伪造请求,更不会拦面板登录页 - 如果你发现启用了防盗链却还能从别的站加载自己图片,大概率是勾选了
允许空HTTP_REFERER请求,这是默认开启的,属于合理设计,不是bug
别忽略面板绑定IP这个隐藏开关
比白名单和防火墙更彻底的方案,是让宝塔服务本身就不监听外网IP。执行bt 10进入设置,选择修改绑定IP,填入127.0.0.1或内网段(如 192.168.1.0/24),面板就会只响应来自本机或局域网的连接——连防火墙都省了。
- 适合内网管理场景,比如公司NAS或跳板机后面管多台服务器
- 填错会导致自己也登不上,务必提前确认当前SSH登录IP是否在白名单内
- 如果必须公网访问,又想兼顾安全,建议组合使用:绑定IP设为
127.0.0.1+ Nginx反向代理(带IP校验)+ 域名访问,这样8888端口根本不对外暴露
真正容易被忽略的点是:宝塔的安全模块白名单、网站里的访问限制、以及防火墙插件,三者独立运行、互不感知。开了A不一定等于B和C也生效,得一个个确认开关状态和生效范围。










