ollama 服务可被所有 ip 访问

模型与算力

讲清 Ollama 监听全部网卡意味着什么、暴露后谁能碰到你的模型和机器,并给出一套从确认、收敛到验证的加固动作清单。

很多人为了在另一台设备上连本机的 Ollama,直接把它设成对外可访问,局域网甚至公网一扫描就能看到这个服务。这篇不吓唬人,只帮你判断自己是否已经处于暴露状态,再按步骤把监听范围收回来、把入口加一道验证,最后确认改动真的生效。

很多人为了让另一台设备连上本机的 Ollama,直接把它改成对外可访问。改完确实连上了,但同一网段甚至公网上任何一个会扫描端口的人,也能连上。这不是吓唬人:这类服务通常没有账号密码,能连上基本就等于能调用你的模型、能列出和删除本地模型。

下面按四步来:先搞清全网监听到底意味着什么,再花三分钟自查自己暴露到什么程度,然后做收敛,最后确认改动真生效。每步都给判断标准和可执行动作,你照着走一遍就行。

先搞清「可被所有 IP 访问」到底发生了什么

Ollama 默认只绑本机回环地址,外部设备连不上。一旦改成全网监听,它会绑在机器所有网卡上,同一网段、甚至公网只要路由可达就能直接请求这个端口。对外可达不等于一定会被攻击,关键看你所在网络:家用路由器后面、云主机公网 IP、公司办公网,风险差很多。

  • 默认状态:只监听本机回环地址,别的设备连不上,模型和机器都不对外
  • 全网监听后:同一网段能直连,公网可达的话扫描器也能看到这个端口
  • 通常没有鉴权:能连上基本等于能调用模型、列模型列表、拉取和删除本地模型
  • 可放宽的情况:完全隔离的内网测试机、临时验证且用完就关,但最好记下计划关闭的时间
  • 不能放宽的情况:云主机绑了公网 IP、路由器做了端口转发或 DMZ、办公网里有访客设备

三分钟自查:你现在暴露到什么程度

  1. 在服务所在机器上看监听地址确认它绑的是本机回环还是全部网卡,以及端口号。不清楚这些名词的话,先到 基础设施术语速查(/ai-dict/category/infra) 对一遍,看懂了再动手。
  2. 从另一台设备发一个最简单请求能通,说明暴露范围已经跨出本机;连不通,说明目前还安全。这一步比看配置更可靠,因为防火墙和 NAT 可能让配置看不出来。
  3. 检查网络位置看这台机器是否绑了公网 IP、路由器有没有做端口转发或把它放进 DMZ、云主机安全组是否放行了这个端口。任何一条成立,暴露面就从内网扩到公网。
  4. 列出同网段的其它设备同事电脑、访客 Wi-Fi、智能家居都在同一暴露面里。别只想着「我自己的另一台电脑」,要按最不可信的那台设备来评估。

加固动作清单:从收敛监听到加一道入口

动作做什么怎么验证
收敛监听能本机用就别全网监听;确实要别的设备访问,优先绑指定内网网卡地址改完从目标设备连一次,能通;从非目标网段连一次,不通
隔离入口用防火墙或安全组只放行可信来源段,公网入口全部关掉从公网地址扫一次端口,应当不可达
加鉴权层前面套一层带认证和限流的网关或反向代理,只由它连本地模型服务直接请求模型端口应被拒;经网关带凭证才能通
最小权限删掉不用的模型、关掉不需要的接口、改完重跑一遍自查外部设备再发一次请求,应当失败

收敛和隔离是第一步,别急着上复杂方案。很多人一上来就想搞全套网关,结果防火墙那条规则没改,公网端口还开着。先把监听范围收回来、再把公网入口关掉,最后才考虑加鉴权层。

改配置时容易踩的两个坑

  • 只改了应用配置,忘了云主机安全组或本机防火墙,端口实际仍然对外可达
  • 把监听地址写成全网卡后忘了回退,实验做完了服务还挂着,下次重启又自动生效
  • 多人共用一个无鉴权入口,谁调了模型、谁删了模型都查不到

哪些情况下这套做法要改一改

场景不适合直接套用的原因建议做法
团队多人共用一台推理机不能简单关掉对外监听,否则同事全用不了把入口收进带鉴权的网关,做身份区分,别共用无鉴权入口
已容器编排或平台化部署监听地址由编排层控制,乱改可能把调度打散先确认编排层怎么下发配置,再改
只在本地做实验最容易忘了恢复默认用完就恢复默认监听,别长期挂着
机器上还有其它对外服务单改 Ollama 可能漏掉整体暴露面把该机器所有对外端口列一遍,统一评估

判断标准很简单:如果外部设备本来就不该连这台机器上的模型服务,那全网监听就没有正当理由。反过来说,如果业务上确实需要外部访问,那就别只做「能连上」这一层,鉴权和限流得跟上。

改完之后一定要验证,而且是站在外部设备的角度去验证。自己机器上看着配置改对了,不代表公网真的不可达。具体端口放行规则和当前常见暴露面清单,可以去 工具目录(/tools/speed-test) 里找对应检测项,或到 中转站导航(/sites) 看有没有同类服务的排查思路可以借鉴。

下一步如果你手上正好有对外监听的机器,先别急着关,去站内把同类服务的暴露面检测项过一遍,确认哪些端口真的需要开放,再按本文的顺序收敛。顺带核对一下当时的模型和部署资料,避免改配置时把依赖关系打断。

常见问题

服务能被所有 IP 访问,是不是就已经被入侵了?

不是一回事。可达只说明存在入口,不代表已经被人利用。先按自查步骤确认暴露范围,再收监听、关公网入口、加鉴权,最后从外部复测一遍。如果期间发现模型列表被改、出现陌生请求或资源占用异常,就要进一步排查,必要时重建环境。

我只在自家 Wi-Fi 里用,是不是不用管?

家用网络里风险低一些,但仍要看两点:路由器有没有做端口转发,以及 Wi-Fi 里有没有访客设备或不被你控制的终端。如果只是为了自己手机连一下,用完后把监听恢复成仅本机,比长期开着省心得多。

改了监听地址,别的设备就再也连不上了,怎么兼顾方便和安全?

思路是只留一个受控入口。把模型服务收回本机监听,另起一个带鉴权和限流的网关或反向代理对外提供服务,其他设备只连网关。这样便利性保留,同时多了一道身份检查,也比全网裸露好排查问题。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。