本地部署大模型,如何设置访问白名单?

本地部署大模型之后,通常需要把 API 端口暴露到局域网甚至公网,让其他人也能调用。
但直接开放端口等于把控制权交给所有人——任何人都能乱发请求,轻则消耗硬件资源,重则可能被恶意利用。
设置一个访问白名单(IP白名单),只允许可信的 IP 地址连接,是成本最低也最有效的安全手段。

前置准备:确认你的模型服务端口和当前服务器环境

不管你是用 Ollama(默认端口 11434)、vLLM(默认端口 8000)还是其他框架,第一步都是确认你正在监听的端口号。
登录服务器,执行以下命令查看:

ss -tuln | grep LISTEN

找到模型服务的端口号(比如 0.0.0.0:11434),记下它。
接着确认服务器的网络类型——如果用的是 Ubuntu(带 ufw)或 CentOS(带 firewalld),操作会有些差异。
如果连最简单的防火墙都没有,推荐先安装 ufw(Ubuntu)或 firewalld(CentOS)。

核心操作:两种途径实现访问白名单

途径一:通过系统防火墙只放行特定 IP

这是最通用、最直接的方法,不管应用本身是否支持白名单,都可以用。
推荐使用 ufw(Ubuntu)或 iptables(通用)。

如果使用 ufw(Ubuntu/Debian):

sudo ufw allow from 192.168.1.100 to any port 11434

这台服务器就只允许 192.168.1.100 这个 IP 访问端口 11434。
如果需要允许多个 IP,重复执行这条命令,把 IP 换成你需要的。
最后别忘了开启防火墙:

sudo ufw enable

如果使用 iptables(通用,包括 CentOS 原生模式):

# 先清空默认规则(小心操作,不要断开自己的SSH)
sudo iptables -P INPUT ACCEPT
sudo iptables -F

# 允许本机回环
sudo iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接(避免断连)
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 只允许指定IP访问11434
sudo iptables -A INPUT -p tcp --dport 11434 -s 192.168.1.100 -j ACCEPT

# 阻止其他所有IP访问11434
sudo iptables -A INPUT -p tcp --dport 11434 -j DROP

注意顺序:先放行白名单,最后再拒绝其余。
如果规则反了,所有人都会被挡在外面。

途径二:通过应用配置限制监听 IP

部分大模型框架支持只监听特定 IP,这样就无需依赖防火墙。
以 Ollama 为例,启动时可以加上 --host 参数:

ollama serve --host 192.168.1.100

这样 Ollama 只监听本机上的 192.168.1.100 地址,其他 IP 无法直接连接。
但这个方法有局限:如果你的服务器有多个网卡(比如内网和外网),你需要确定用哪个 IP。
更安全的做法是结合防火墙双重限制。

避坑指南:新手最容易掉进去的四个坑

第一个坑:忘记放行自己的管理 IP。
如果你通过 SSH 远程操作,千万要在防火墙规则里加上 ESTABLISHED,RELATED 的放行(上面 iptables 示例已包含),否则新规则生效瞬间 SSH 会断开。
如果不小心被踢出去,只能通过面板的 VNC 或带外管理进服务器刷新规则。

第二个坑:重启后防火墙规则失效。
使用 iptables 直接添加的规则是临时的,重启后消失。
要把规则保存下来:Ubuntu 执行 sudo iptables-save > /etc/iptables/rules.v4,CentOS 执行 sudo iptables-save > /etc/sysconfig/iptables
如果用 ufw,规则默认持久化,无需额外操作。

第三个坑:只设置了防火墙,忘记关掉应用默认的 0.0.0.0 监听。
检查应用启动命令,确认它没有同时绑定 0.0.0.0 和 127.0.0.1 以外的地址。
如果应用本身输出了多网卡监听,防火墙规则仍然有效,但最好把应用也限制在单一 IP 上。

第四个坑:多规则冲突导致预期外的允许或拒绝。
建议从头清理已有规则再重新设置,或者每加一条规则就测试一次连通性。

效果验证:确认白名单生效

从白名单允许的机器上测试:

curl http://你的服务器IP:11434/api/tags

应该能正常返回模型列表。
然后再从一台未在白名单中的机器上测试,预期会超时或收到拒绝连接的错误(Connection refused 或 Read timed out)。
如果后一个测试成功返回了数据,说明白名单没有生效,请检查防火墙规则顺序或应用绑定地址。

最后建议打开模型服务的日志功能,查看每次连接的来源 IP。
比如 Ollama 会在终端输出访问日志,确认只有白名单 IP 出现。
如果你发现日志里不断有陌生 IP 在尝试连接,那就是白名单生效正在帮你挡掉攻击。

如果你正在处理本地部署大模型的访问白名单,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
安全无小事,多一层白名单等于多一份安心。

分享到:
上一篇
服务器带宽被占用,教你限制用户上传下载速度
下一篇
Docker 容器数据备份,如何定期自动备份?
1
系统公告

泽御云五一特惠活动🔥

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