本地部署大模型,如何限制访问防止滥用?

本地部署大模型防滥用指南:三步限制访问权限

本地部署大模型(比如通过 Ollama、vLLM 或 LLaMA.cpp 跑起来的服务)默认可能监听 0.0.0.0:11434,意味着只要知道你的 IP 和端口,任何人都能发送请求。
如果暴露在公网,很容易被脚本扫到并掏空资源。
本文从零开始,讲清楚三种最实用的限制方法,你选一种就能保住自己的算力。

准备工作:确认你的大模型服务运行方式

操作前请确认你已经在本地跑起了模型服务。
以最流行的 Ollama 为例,默认服务端口是 11434,配置文件通常在 /etc/systemd/system/ollama.service(Linux)或 /etc/default/ollama
如果你用 Docker 部署,则关注容器启动参数。

打开终端执行以下命令,查看服务是否在运行:

sudo systemctl status ollama

如果显示 active (running),说明服务已运行。
接着用 netstat -tulpn | grep 11434 检查当前监听地址,若看到 0.0.0.0:11434 就说明有外部访问风险。

方法一:修改监听地址,只允许本地访问(最简单)

这是最安全的做法——让模型服务只绑定本机回环地址 127.0.0.1,完全拒掉外部网络。

操作步骤:

  1. 编辑 Ollama 服务配置文件(具体路径因发行版而异):
   sudo vim /etc/systemd/system/ollama.service

或者在 /etc/default/ollama 中增加环境变量。

  1. 找到 [Service] 部分,在 ExecStart= 行之前添加:
   Environment="OLLAMA_HOST=127.0.0.1"

如果你用 Docker 启动,参数改为 -e OLLAMA_HOST=127.0.0.1

  1. 重载 systemd 并重启服务:
   sudo systemctl daemon-reload
   sudo systemctl restart ollama
  1. 验证:再次运行 netstat -tulpn | grep 11434,监听地址应变为 127.0.0.1:11434。此时用其他机器 curl http://你的IP:11434 会超时或连接拒绝。

方法二:Nginx 反向代理 + IP 白名单(需要局域网或固定公网 IP)

如果你希望部分外部用户(比如同一局域网下的其他设备)也能访问,但其他人不能,可以用 Nginx 做反向代理,只放行特定 IP。

安装 Nginx(如果没装):

sudo apt install nginx -y

编写配置文件 /etc/nginx/conf.d/ollama.conf

server {
    listen 11434;
    server_name _;

    # 只允许下面两个 IP 访问,其余全部拒绝
    allow 192.168.1.0/24;   # 整个局域网
    allow 203.0.113.5;       # 你的固定公网 IP
    deny all;

    location / {
        proxy_pass http://127.0.0.1:11434;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

注意:本示例中 Nginx 自己监听 0.0.0.0:11434,但通过 allow/deny 限制来源。
同时 Ollama 仍然只监听 127.0.0.1:11434(确保方法一已配置),否则外部请求可以绕过 Nginx 直接访问服务。

测试并重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

验证方法: 从被允许的 IP 机器执行 curl http://你的IP:11434/api/tags 应返回正常;
从不允许的 IP 执行则会收到 403 Forbidden。

方法三:云服务器防火墙放行 + API 密钥校验(可选增强)

如果你的模型框架支持 API 密钥(例如 vLLM 启动时加 --api-key 参数),这是第二道防线。
即使 IP 被放行,没有密钥仍然不可用。

以 vLLM 为例:

python -m vllm.entrypoints.openai.api_server \
    --model /path/to/model \
    --api-key 你的随机密钥字符串 \
    --host 127.0.0.1 --port 8000

ginx 反向代理时,可以在 proxy_set_header 中透传 Authorization 头,或者在 Nginx 层用 auth_request 模块校验密钥。
但对零基础用户,最简单的是直接绑定 127.0.0.1 后,通过服务端防火墙只对受信任 IP 开放端口。

避坑指南 & 高频问题

Q:修改 OLLAMA_HOST 后重启失败?
检查 /etc/systemd/system/ollama.serviceEnvironmentFile 是否覆盖了变量。建议直接在 [Service] 中增加 Environment="OLLAMA_HOST=127.0.0.1"

Q:我已经有公网 IP,但不想让搜索引擎扫到端口?
只监听 127.0.0.1 是最彻底的,除非你确实需要从外部访问。如果确实需要外部访问,务必配合 Nginx 白名单和强密码/密钥。

Q:我用的是 Docker 部署 Ollama,怎么改?
运行容器时加 -e OLLAMA_HOST=127.0.0.1,同时端口映射只映射到 127.0.0.1:11434:11434(即在 -p 参数前加 IP,如 -p 127.0.0.1:11434:11434)。

效果验证:三步确认安全

  1. 在本地执行 curl http://127.0.0.1:11434/api/tags,应该返回模型列表。
  2. 在同一局域网的另一台机器上执行 curl http://你的局域网IP:11434/api/tags,如果用了方法一则超时,用了方法二且允许局域网则正常。
  3. 用手机流量(公网)访问你服务器的公网IP:11434,应该连接失败(除非你配置了公网白名单但未拦截)。

确认以上三步后,你的本地大模型服务就基本切断被滥用的路了。
建议定期检查监听状态和日志 sudo journalctl -u ollama 有无异常请求。

如果你正在处理本地部署大模型如何限制访问防止滥用的问题,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
服务器数据备份失败,教你排查备份故障
下一篇
服务器被挂黑链,教你批量清除并防护
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意