问:我刚装好宝塔,想开个8888端口给一个应用用,但外部就是访问不了,是不是我面板里哪里没点对?
宝塔面板运维求助实录,从端口放行到数据备份,客服小哥的大白话操作指南
答:新手最容易漏的就是这一步——你光在宝塔的“安全”菜单里放行端口是不够的,云服务器厂商的安全组(比如阿里云、腾讯云的控制台)也得同步放行,你打开宝塔左侧“安全”标签,找到“防火墙”,在“放行端口”里填上8888,协议选TCP,提交,然后去你的云服务商后台,找到实例的“安全组”,添加入站规则,端口范围写8888/8888,授权对象填0.0.0.0/0(如果你不想限制来源IP),两边都放行了,再用 telnet 你的服务器IP 8888 测一下,如果还不行,那就查一下系统防火墙(CentOS用 systemctl status firewalld 看状态,Ubuntu用 ufw status),确认没把它拦死。
问:我的网站突然打不开了,但宝塔面板能正常登录,这是咋回事?
答:先别慌,咱们按顺序排雷,第一步,看网站是不是停了——宝塔里找到“网站”列表,看那个站点的状态是不是“运行中”,如果不是就点“启动”,第二步,看端口——你网站用的80或443端口是否被占用或没放行,参考上面那条,去安全里检查,第三步,看日志——在“网站”里点击“日志”,或者直接去 /www/wwwlogs/ 目录,打开对应域名的错误日志,重点看有没有 403、500、Connection refused 这些字样,第四步,如果日志显示“数据库连接失败”,那去“数据库”菜单里看MySQL或MariaDB是否正常启动,实在不行就重启一下Nginx或Apache,就在“软件商店”里找到对应软件,点“重启”,注意:每次改完配置,记得在“软件商店”对应服务上点“重载配置”,别只点重启。
问:我用FileZilla连FTP,总提示“无法连接到服务器”,密码我确认没输错啊?
答:很多人一上来就以为是密码问题,其实80%是“被动模式”没设置好,宝塔里“FTP”菜单,确认你的FTP账号状态是“开启”,并且绑定的目录是存在的,去“软件商店”里找到Pure-Ftpd,点“设置”,看“监听端口”默认是21,没问题,重点来了——如果你的服务器有公网IP,但你的网络环境有防火墙(比如公司网或家用路由),你要在宝塔“安全”里放行21端口,还要放行一个端口范围(比如30000-31000),然后在Pure-Ftpd的“配置修改”里,找到 PassivePortRange 这一项,把它的值改成 30000 31000,保存后重启Pure-Ftpd,然后用FileZilla,在站点管理器里,传输设置选“被动”,如果还不行,把“被动模式”下的“使用服务器外部IP地址”设为你服务器的公网IP,最后测试时,把FileZilla的日志打开,看它报什么错——如果是“531”之类,多半是验证失败,重新重置一下FTP密码(密码别带特殊字符,& 和 ,极易出错)。
问:我想备份整个网站和数据库,宝塔里有什么一键办法吗?
答:有,而且我强烈建议你养成“先备份再折腾”的习惯,回到宝塔首页,上面有个“计划任务”按钮,点进去,建议你先手动备份一次:去“网站”里找到你的站点,点“备份”按钮,它会打包所有文件到 /www/backup/site/;再去“数据库”里,点对应数据库的“备份”,生成一个SQL文件到 /www/backup/database/。千万别把备份文件放在网站目录里,万一你网站被挂马,备份也被删了,想要自动化,就在“计划任务”里添加任务,类型选“备份网站”或“备份数据库”,周期按你需求填(比如每天凌晨3点),然后在“脚本内容”里保留默认即可,注意:宝塔的备份默认是保存在服务器本地的,如果你服务器挂了就全没了,所以最好再做一个“备份到云存储”——在计划任务里,类型选“推送备份”,配置OSS或腾讯云COS的存储桶信息,这样你的备份会同步到云端,这才叫真安全。
问:我改了宝塔面板的端口,现在登录不进去了,面板页面也不显示,怎么救回来?
答:这种情况我见得多了,别着急重启服务器,你只要通过SSH登录服务器(用你云服务商的网页VNC也可以),然后执行 /etc/init.d/bt default,这个命令会显示当前面板的默认登录地址、用户名和端口,如果你改的端口没生效,或者你忘了改成什么,执行 bt 命令,它会弹出一个交互菜单,选“修改面板端口”,重新设回8888,然后再去“安全”里把新的端口放行(或者旧的也别急着关),还有一个常见坑:你改了端口,但防火墙忘了放行,所以SSH里确认一下端口监听状态,用 netstat -tlnp | grep -E "888|面板端口",如果没监听,就手动启动 bt 菜单里的“启动面板”选项,改端口后一定要重启面板(bt 里选“重启面板”),然后浏览器用 新端口 来访问,不要加上任何路径。
问:我数据库被提示“表损坏”,用宝塔自带的修复工具修复了一下,但还是报错,怎么办?
答:宝塔自带的修复是“快修”,只重建索引和修复结构,如果还不行,说明有坏行,你进入“数据库”菜单,找到对应数据库名,点击“管理”进入phpMyAdmin,选中出错的那张表,执行 CHECK TABLE 表名; 看看报错详情,然后执行 REPAIR TABLE 表名; 再试,如果还是不行,大概率是硬盘有坏道或MySQL崩溃时写入了脏数据,这时候,你得先停掉MySQL(在“软件商店”里停止),然后去 /www/server/data/ 目录,找到对应数据库文件夹,把 .frm 和 .ibd 文件复制一份到别处,接着用命令行 innodb_force_recovery=1 临时启动MySQL——修改 /etc/my.cnf,在 [mysqld] 段下加这行,启动MySQL后,用 mysqldump 导出这个库的数据(导出后注释掉那行配置),再重新建库、导入,如果导出时还报错,就尝试用 --force 参数跳过坏行,做这一步前,一定要先备份整个 /www/server/data/ 目录,别怕麻烦,不然你数据全没了就哭不出来了。



发表评论