Files
karuo-ai/01_卡资(金)/金仓_存储备份/服务器管理/references/kr宝塔_网络与服务器卡顿_检查与处理.md

12 KiB
Raw Blame History

kr宝塔 · 网络卡 / 服务器卡 · 检查与处理

适用43.139.27.93kr宝塔2核4G。SSH 端口 22022密钥见 Steam/README_密钥与登录.md。


一、本机侧快速检查(无需登录服务器)

# 1. 网络连通
ping -c 3 43.139.27.93

# 2. SSH 端口是否可达
nc -zv -w 5 43.139.27.93 22022

# 3. 宝塔面板端口(若需)
nc -zv -w 5 43.139.27.93 9988
  • ping 丢包或延迟高 → 网络问题(运营商/云厂商/本地网络)。
  • 端口不通 → 安全组/防火墙未放行 22022 或 9988。

二、SSH 登录与服务器内诊断

2.1 登录

# 密钥路径(私钥权限须为 600
chmod 600 "/Users/karuo/Documents/开发/4、小工具/服务器管理/Steam/id_ed25519"
ssh -p 22022 -i "/Users/karuo/Documents/开发/4、小工具/服务器管理/Steam/id_ed25519" root@43.139.27.93

Connection closed by remote host:可能是服务器负载过高或 sshd 限流,稍后重试或从宝塔面板「终端」登录执行下列命令。

2.2 服务器内一键诊断(登录后执行)

echo "=== 负载 ===" && uptime
echo "=== 内存 ===" && free -m
echo "=== 磁盘 ===" && df -h / /www
echo "=== 连接数(ESTABLISHED) ===" && ss -ant state established | wc -l
echo "=== 连接汇总 ===" && ss -s
echo "=== CPU TOP5 ===" && ps aux --sort=-%cpu | head -6
echo "=== 内存 TOP5 ===" && ps aux --sort=-%mem | head -6

2.3 针对「网络卡」的检查

  • 连接数是否过多ss -ant state established | wc -l 若上千需关注。
  • Nginx/应用日志:看是否有大量请求或慢请求。
  • 带宽/流量:宝塔面板「监控」或 vnstat(若已装)。

2.4 针对「服务器卡」的检查

现象 检查命令/位置 处理思路
CPU 高 topps aux --sort=-%cpu 结束异常进程或优化程序
内存不足 free -m 关停非必要服务、加 swap 或升配
磁盘满 df -hdu -sh /www/* 清日志、删临时文件、扩容
磁盘 I/O 高 iostat -x 1 3(若已装) 减少写操作、查大文件/日志
连接数爆炸 ss -sss -ant 限流、查攻击或异常客户端

三、常见处理动作(登录后执行)

# 清理系统日志(慎用,仅当磁盘紧张时)
# find /var/log -name "*.log" -mtime +7 -delete

# 重载 Nginx
nginx -s reload

# 查看宝塔/Node 相关进程
ps aux | grep -E 'nginx|node|pm2'

# 若使用 PM2查看列表
pm2 list

四、宝塔 API 远程检查(需白名单)

若本机 IP 已加入 kr宝塔 的「API 白名单」可用卡若AI 脚本批量看 CPU/内存/磁盘:

python3 "/Users/karuo/Documents/个人/卡若AI/01_卡资/金仓_存储备份/服务器管理/脚本/快速检查服务器.py"

未加白名单前会报「IP校验失败」需在 kr宝塔 面板:设置 → API 接口 → 接口密钥 → 将本机公网 IP 加入白名单


五、带宽使用情况(近期已查)

kr宝塔 为腾讯云广州 CVM实例 ID: ins-aw0tnqjo带宽 5M。可用脚本查看近 24 小时监控:

# 需安装 tencentcloud-sdk-python-monitor建议用 scripts 下 .venv_tx
/Users/karuo/Documents/个人/卡若AI/01_卡资/金仓_存储备份/服务器管理/scripts/.venv_tx/bin/python \
  "/Users/karuo/Documents/个人/卡若AI/01_卡资/金仓_存储备份/服务器管理/scripts/kr宝塔_腾讯云带宽与CPU近24h.py"

最近一次查询结论(近 24h

  • 公网出带宽:平均 2.95 Mbps最大 5.1 Mbps(已接近/顶满 5M 上限)
  • 公网入带宽:平均 4.4 Mbps最大 11.54 Mbps

带宽卡的主要原因:出带宽经常顶满 5M易造成访问慢、请求排队。建议升级带宽腾讯云控制台或工单、或在 Nginx/应用侧做限速与缓存,减少无效外网出流量。


六、直接处理「带宽卡」——在宝塔面板终端执行

以下整段复制到 kr宝塔 宝塔面板 → 终端 执行,用于排查并做基础限流。

6.1 一键诊断(连接数 + 端口分布 + TOP 进程)

echo "=== 连接数(ESTABLISHED) ===" && ss -ant state established | wc -l
echo "=== 各端口连接数 TOP ===" && ss -antn state established | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -rn | head -15
echo "=== 连接汇总 ===" && ss -s
echo "=== CPU TOP5 ===" && ps aux --sort=-%cpu | head -6
echo "=== 内存 TOP5 ===" && ps aux --sort=-%mem | head -6

6.2 按 IP 统计连接数(查是否单 IP 占满)

ss -antn state established | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

若某 IP 连接数异常多,可在宝塔「安全」或防火墙里对该 IP 限连接数或临时封禁。

6.3 Nginx 限速(可选,减轻带宽打满)

在对应站点的 Nginx 配置里增加(或让宝塔「网站」→「设置」→「配置文件」里加):

# 在 server 块内
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 20;           # 单 IP 最多 20 并发连接
limit_rate 500k;               # 单连接限速 500KB/s可按需改

改完后 nginx -t && nginx -s reload

6.4 列出占满带宽的程序 / 端口 / 网站及占用比例

在服务器上运行带宽占用排查脚本,会输出:监听端口与进程、按端口/进程的连接数占比(≈ 带宽占比、Nginx 站点、Node/PM2 进程、以及若已安装 nethogs 的实时带宽占比。

在 kr宝塔 宝塔面板 → 终端 执行脚本。两种方式任选:

  • 方式一:把脚本上传到服务器后执行
    bash /路径/kr宝塔_带宽占用排查.sh
  • 方式二:在本机打开脚本,全文复制到宝塔终端粘贴执行
    脚本路径:01_卡资/金仓_存储备份/服务器管理/scripts/kr宝塔_带宽占用排查.sh脚本会列出:
  • 【1】监听端口与进程可能占带宽的服务Nginx、Node、宝塔、SSH 等)
  • 【2】按端口连接数占比:各端口当前连接数及占比(近似该端口占用带宽比例)
  • 【3】按进程连接数占比:各 PID 连接数及占比(近似该程序占用带宽比例)
  • 【4】Nginx 站点:端口 → 域名/网站
  • 【5】Node/PM2 进程:常见占带宽应用
  • 【6】实时带宽:若已安装 nethogs采样 5 秒得到各进程实时 KB/s 占比

说明:无 nethogs 时,用「连接数占比」近似「带宽占比」;精确带宽以 nethogs 或宝塔「监控」为准。

6.5 可能占满带宽的程序 / 端口 / 网站清单kr宝塔 当前)

以下为服务器上正在监听的程序与端口,均可能产生带宽占用。实时「带宽占比」需在宝塔终端运行上面脚本或 nethogs -t

类型 程序/进程 监听端口 说明 / 对应网站
Web 入口 nginx 80, 443, 888, 19999 所有 HTTPS/HTTP 流量经此转发;站点见下表
Node 应用 next-server 3000, 3001, 3005, 3015, 3031, 3036, 3043, 3045, 3050, 3055, 3081, 3305 多个 Next.js 站点soul、zhiji、dlm、word、wzdj、玩值大屏、神射手、AITOUFA 等)
后端 API soul-api 8080, 8081 soul 相关接口
网关/内网 python3 8000(127.0.0.1) 卡若AI 网关等
面板/系统 BT-Panel 9988 宝塔面板
面板/系统 sshd 22022 SSH
数据库/缓存 redis-server 6379 Redis
数据库/缓存 mongod 27017 MongoDB
其他 pure-ftpd, master(25), containerd, dockerd 21, 25, 2375, 37455 FTP、邮件、Docker

端口 → 网站/域名(部分)80/443 上由 Nginx 按 server_name 分发到不同站点例如soul.quwanzhi.com、kr-ai.quwanzhi.com、soulapi.quwanzhi.com、www.quwanzhi.com、ckb.quwanzhi.com、dlm.quwanzhi.com、word.quwanzhi.com、wzdj.quwanzhi.com、zp.quwanzhi.com、zhiji.quwanzhi.com、wz-screen.quwanzhi.com、ai-tf.quwanzhi.com、kr_wb.quwanzhi.com、discuzq.quwanzhi.com、www.lkdie.com、feishu.lkdie.com 等(完整列表见 Nginx 配置目录 /www/server/panel/vhost/nginx/)。

带宽占比:当前瞬时连接数较少时,无法单次采样得到稳定占比。请在服务器上运行 6.4 的脚本 或执行 nethogs -t 采样 1030 秒即可得到各进程的实时带宽占比KB/s 或 %)。

6.6 502 Bad Gateway 修复(含 soul、wzdj、word

Node 项目 502(如 wzdj.quwanzhi.com、word.quwanzhi.com

# 本机执行,免 SSH
./01_卡资/金仓_存储备份/服务器管理/scripts/.venv_tx/bin/python \
  "01_卡资/金仓_存储备份/服务器管理/scripts/腾讯云_TAT_修复502_Node项目.py" wzdj word

若 word 仍 502在宝塔 Node 项目 中查看 word 的启动日志,可能是 MODULE_NOT_FOUND 或 Node 版本不匹配,按 references/Node项目未启动_MODULE_NOT_FOUND修复指南.md 修正启动命令。

含 soul 的 502

原因Nginx 能通但上游Node/后端)无响应或挂掉,导致 502。

方式一:宝塔 API需本机 IP 已加入 kr宝塔 API 白名单)

python3 "/Users/karuo/Documents/个人/卡若AI/01_卡资/金仓_存储备份/服务器管理/scripts/kr宝塔_宝塔API_修复502.py"

脚本会:重启 Nginx、并尝试重启名称含 soul 的 Node 项目。若报「IP校验失败」请到 kr宝塔 面板 设置 → API 接口 将当前公网 IP 加入白名单后重试。

方式二:在 kr宝塔 宝塔面板终端执行(不依赖 API 白名单)

# 1. 重载 Nginx
nginx -t && nginx -s reload

# 2. 重启 soul 相关 Node/PM2按你实际项目名调整
pm2 list
pm2 restart soul       # 或 souladmin、soul-api 等
# 若用宝塔「Node 项目」管理,请在面板里对该站点点击「重启」

方式三SSH(当连接可用时)

ssh -p 22022 -i "服务器管理/Steam/id_ed25519" root@43.139.27.93 "nginx -s reload; pm2 restart soul"

修复后刷新 soul.quwanzhi.com/admin 查看是否恢复。

6.7 腾讯云控制台可做

  • 升级带宽:云服务器 → 选择实例 ins-aw0tnqjo → 更多 → 网络/带宽 → 调整带宽。
  • 流量/带宽告警:云监控 → 告警策略,对「公网出带宽」设阈值(如 4 Mbps便于提前发现打满。

七、本次诊断结果摘要2026-02-20

  • 本机 → kr宝塔ping 正常22022 端口可达。
  • SSH:曾出现 Connection closed by remote host建议用宝塔面板终端执行上述命令。
  • 带宽:近 24h 公网出带宽最大 5.1 Mbps已顶满 5M是「带宽卡」的主要原因已提供腾讯云脚本与宝塔终端处理步骤。

下一步:在 kr宝塔 面板终端执行「六、6.1」诊断;若连接数或单 IP 异常,按 6.2/6.3 限流;长期可升级带宽或设告警。


八、高负载 / CPU 满 / 磁盘满 · 已执行处理卡若AI 默认自动)

当负载 100%、CPU 99%、磁盘 89% 时,已通过 SSH 自动执行:

  1. 结束高 CPU 进程:多次结束占用约 3539% CPU 的 npm start(会被宝塔 Node 项目自动拉起,需在面板中停用或重启对应项目)。
  2. 清理磁盘:删除 /www/wwwlogs 下 7 天前 .log;截断大于 50M 的网站日志;清理 /tmp 7 天前文件;删除 /var/log 7 天前 .log;截断 /var/log/oneav/oneav.log。网站日志由约 2G 降至约 258M磁盘由约 89% 降至约 87%(约 10G 可用)。
  3. 负载与 CPU 来源:当前负载主要来自多个 next-serverNode 站点)及反复被拉起的 npm start。要持续降压需在宝塔「网站」→「Node 项目」中停用或合并非必要项目,或升级为 4 核。

一键再执行(在服务器终端)

find /www/wwwlogs -name '*.log' -mtime +7 -type f -delete
find /www/wwwlogs -name '*.log' -type f -size +50M -exec truncate -s 0 {} \;
find /tmp -type f -mtime +7 -delete
find /var/log -name '*.log' -mtime +7 -type f -delete