本地部署大模型,被人跑成肉鸡挖矿了?这份安全手册请收好
本地部署大模型,被人跑成肉鸡挖矿了?这份安全手册请收好
很多朋友在本地服务器上用 ollama、llama.cpp 跑大模型,图的是数据不出站、调用自由。
但端口一开、密码一设成 123456,你的机器就可能被人盯上——变成肉鸡挖矿。
本文针对零基础用户,从检查、防范到清理,给出可直接执行的步骤。
第一步:先查自己是不是已经成了肉鸡
不管有没有中招,建议先做一次快速排查。
登录服务器,按顺序执行以下命令:
top或htop:观察 CPU / GPU 占用。正常跑模型时占用持续高位,但如果你没跑模型却看到接近满载,就要警惕。ps aux | grep -iE '(mine|xmrig|kdevtmpfsi|kinsing)':挖矿进程常用这类名字,也可以直接ps aux --sort=-%cpu | head -20看最高 CPU 消耗的进程。ss -tlnp:检查监听端口。大模型服务通常只开一个端口(如 11434),若出现陌生端口对外开放,可能是后门程序。cat /etc/cron*或crontab -l:查看定时任务,挖矿常通过定时任务做持久化。
如果发现可疑进程,先不要急着 kill,先看下一步。
第二步:如何从头开始安全部署大模型
还没中招的朋友,按这个清单来装“防护网”:
- 使用非 root 运行大模型服务。创建专属用户(如
useradd -m -s /bin/bash modeluser),然后切换到该用户启动 ollama 或 llama.cpp。即使被入侵,权限也被限制。 - 防火墙限制访问来源。如果只需要本地调,用
ufw deny 11434拒绝外网;如果需要远程,只放行特定 IP:ufw allow from 你的IP to any port 11434。 - 修改默认端口。在 ollama 中改环境变量
OLLAMA_HOST=127.0.0.1:2345,对外无法直接猜端口。 - 禁用 root 远程 SSH。编辑
/etc/ssh/sshd_config,设PermitRootLogin no,然后systemctl restart sshd。 - 定期更新系统与组件。
apt update && apt upgrade -y修补已知漏洞。
避坑指南:这些操作反而会帮倒忙
- 不要用
docker跑大模型时挂载/var/run/docker.sock并加--privileged,否则容器逃逸风险极高。 - 发现异常进程后,不要直接
kill -9主进程:可能触发守护进程复活。应当先systemctl stop对应服务,再查清源文件(ls -la /proc/进程ID/exe找到二进制路径),删除二进制并清理定时任务。 - 不要以为开了防火墙就万事大吉:如果大模型本身有 API 未授权访问(如 ollama 默认无认证),攻击者可直接调用模型接口做扫描或注入命令。建议加一层 nginx 反向代理做 IP 白名单或 Token 认证。
验证效果:确认挖矿已清除,服务正常
还原清之后,再次执行 top、ss -tlnp、crontab -l,确认无异常进程和端口。
然后启动大模型服务,观察 CPU/GPU 占用是否回归正常推理水平。
在客户端测试 API 是否可用。
高频问题解答
Q:如何区分正常的大模型推理进程和挖矿进程?正常推理时,进程名一般为 ollama、llama-cli、python 等,且 CPU/GPU 占用稳定;
挖矿进程名常含 xmrig、minerd、kdevtmpfsi 等,且会主动连接矿池 IP(可通过 lsof -i 查看连接地址)。
Q:我用的宝塔面板,有没有更简单的检查方法?有。
在宝塔面板的“任务管理器”中查看 CPU 占用率,或者在“安全”模块里查看“防火墙”中有无异常端口对外开放。
用“文件管理”检查 /etc/cron.d 和 /var/spool/cron 下有无可疑脚本。
Q:重装系统是不是最彻底的方法?是,但可以先尝试清理。
重装前务必备份重要数据并修改所有密码(包括数据库、SSH、API 密钥)。
如果你不确定清理是否彻底,重装 + 按本文第二步部署是最稳妥的。