−25%

Windows 按年付费,截至 10 月 31 日。 查看套餐

EQVPS

在 VPS 上保护自托管的 AI 智能体

2026年9月26日 · 1 分钟阅读 · EQVPS Team

传统的 Web 应用会按代码的指示行事。AI 智能体则会按代码的指示行事,再加上它读到的文本能说服它去做的任何事。给它一个 shell、一个 API 密钥和一笔预算,把它放到开放的互联网上,你就造出了一种新东西:一个可以被社会工程学操纵的进程。解决办法不是疑神疑鬼,而是系统管理员那条老习惯:最小权限,只不过这次用在了一个非常健谈的程序身上。

了解真正的威胁

下面的每一项,要么让这些事更不容易发生,要么让它们发生时代价更小。

1. 给智能体独立的机器和独立的用户

会执行代码或浏览网页的智能体,应该跑在一台单独的 VPS 上,而不是和生产数据库放在一起。在那台机器上,也绝不以 root 运行:

adduser --disabled-password --gecos "" agent
mkdir -p /home/agent/work && chown agent:agent /home/agent/work

不给 sudo,不给通往其他服务器的 SSH 密钥,不给它任何不需要的访问权限。

2. 用 systemd 把它关进沙箱

systemd 无需容器就能把一个进程圈起来。智能体可以读取系统,但只能写入自己的工作目录:

# /etc/systemd/system/agent.service
[Unit]
Description=AI agent
After=network-online.target

[Service]
User=agent
WorkingDirectory=/home/agent/work
EnvironmentFile=/home/agent/.agent.env
ExecStart=/home/agent/venv/bin/python run_agent.py
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/agent/work
PrivateTmp=yes
PrivateDevices=yes
MemoryMax=2G

[Install]
WantedBy=multi-user.target

ProtectSystem=strict 会让除 ReadWritePaths 以外的整个文件系统变为只读。MemoryMax 能防止单个失控任务拖垮服务器。用 systemd-analyze security agent 检查结果:它会给这个单元打分,并列出仍然敞开的地方。

3. 把密钥当作迟早会泄露

4. 限制它能买什么

如果智能体能花钱,上限就必须设在智能体之外。在 EQVPS,智能体通过 MCP 服务器或 REST API 从账户的预付余额中订购和续费服务器,所以余额就是一道硬性上限。只充值你愿意损失的金额,而不是你的全部预算。如果它不需要看到你的其他服务器,就给它一个单独的账户。

5. 在不可逆的操作前放一个人

删除数据、转账、推送到 main、给客户发邮件:让这些操作经过一个确认步骤;一条带“批准”按钮的 Telegram 消息就够了。只读工具可以自由运行;写入类工具要一点点赢得信任。

6. 收窄出口(如果你能接受的话)

出站流量的白名单能让窃取机密变得困难得多:

ufw default deny outgoing
ufw allow out 53          # DNS
ufw allow out 443/tcp     # HTTPS APIs
ufw allow out 80/tcp      # package mirrors
ufw default deny incoming && ufw allow 22/tcp && ufw enable

老实说,这是大多数人会放弃的一步:会浏览网页的智能体需要访问任意 HTTPS,这时按端口设置的白名单作用不大。对于只调用一组固定 API 的智能体,这一步是值得的。

7. 保留日志和退路

记录每一次工具调用及其参数。在让智能体尝试新任务之前先做快照:Managed Backups 提供每日还原点和按需快照,这样一个糟糕的下午只需还原一次,而不必重建一切。

坦诚的结论

以上没有哪一条能让智能体变得可以被盲目信任。它们做到的是让出错的代价变小:一个被攻破的智能体,在自己的机器上、以自己的用户身份运行,余额有上限、密钥权限受限,只能造成很小且可恢复的损失。这才是现实的目标。先从新 VPS 安全加固的基础做起,再加上前面这些针对智能体的防护层。

常见问题

在服务器上运行 AI 智能体最大的风险是什么?

提示词注入:智能体读到了一段并非它自己写的文本(网页、邮件、issue 评论),而这段文本让它去做你从未要求的事,比如打印环境变量或执行某条命令。本指南的其余部分,都是为了在这种情况发生时限制损失。

智能体应该以 root 身份运行吗?

绝对不要。给它一个没有 sudo 的非特权专用用户,并用 systemd 沙箱限制它能写入的位置。就算它被诱骗执行了破坏性命令,也只能损坏它自己的工作目录。

如何防止智能体花钱过度?

使用位于智能体之外的硬性上限:在模型服务商的密钥上设置消费上限,并为它能购买的一切使用预付余额。在 EQVPS,智能体从账户余额中付款,所以余额本身就是上限:只充值你能承受损失的金额,不要多充。

能彻底阻止提示词注入吗?

不能:目前还没有可靠的过滤手段。真正有效的是缩小影响范围:最小权限的工具、对破坏性或付费操作进行人工确认、不在智能体上下文中放任何机密,以及可供你审查的日志。

为智能体单独准备一台 VPS 值得吗?

值得,只要智能体会执行代码或浏览网页。一台小型专用机器能让它远离你的数据库、其他项目和凭据。万一被攻破,你只需重建一台服务器,而不是整套环境。

← 返回博客查看套餐与价格 →

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。