很多人是远程连不上 Ollama、或者想让局域网里另一台机器调用时才想起来 OLLAMA_HOST。默认它只听本机,改法不难,难的是填法五花八门:带不带 http、要不要写端口、0.0.0.0 和 127.0.0.1 差在哪。这篇把变量格式、生效方式、验证步骤和常见不适用场景一次讲顺。
远程连不上自己那台跑着 Ollama 的机器、或者想让局域网里另一台设备调用模型时,很多人第一反应是翻文档找 OLLAMA_HOST。默认情况下 Ollama 只在本机监听,外部根本连不进来,所以这个变量确实得改。但改法比想象中乱:有人写上 http 前缀、有人端口写重、有人在 0.0.0.0 和 127.0.0.1 之间反复横跳,最后服务起不来还以为装坏了。
这篇不重复安装步骤,只把 OLLAMA_HOST 这一个变量讲透:它管的是什么、三种场景怎么填、改完按什么顺序验证、以及哪些情况下你其实不该碰它。全程给判断标准和排查动作,具体端口和地址按你自己机器来定。
OLLAMA_HOST 到底管什么
一句话:它决定 Ollama 服务对外监听的地址和端口,也就是「谁能连上你机器上的模型」。不改就走本机默认,只有本机能访问。注意它管的是服务端的监听,不是客户端填的请求地址——客户端那边要写的是改完之后的那个新地址,两者别搞混。
- 监听地址
- 服务愿意在哪个网卡上接客。写本机回环地址就只有本机连得上,写全零地址表示所有网卡都听
- 端口
- 服务在哪个端口等连接。改端口后客户端地址里的端口必须跟着改,漏了就是经典的连不上
- 变量值格式
- 只写主机和端口这两段,协议头由客户端自己拼,服务端这边不需要你写
为什么格式最容易翻车?因为很多人下意识把浏览器里那串完整地址整段贴进去,结果服务启动时解析失败,进程直接起不来或者静默退回默认值。记住原则:变量里是「主机:端口」,不是完整网址。
三种改法:临时、开机自启、容器内
按使用时长选改法:只是想试一下能不能通,用临时方式;准备长期这么跑,写进环境变量文件并让服务重启时读到;跑在容器或云主机里,就在部署描述里设,别在容器里手动 export 完事。下面三种分别给动作和验证点。
- 临时验证在启动服务的那条命令前面带上变量前缀,只对当前这个终端会话生效。启动后看服务日志里打印的监听地址,跟你设的是否一致;关掉终端就失效,适合排查阶段。
- 长期生效把变量写进系统级或用户级的环境变量文件,然后重启 Ollama 服务让新值生效。这里有个坑:桌面客户端自动拉起的进程和你手动在终端启动的进程,可能读的不是同一份配置,改完两边都要确认。
- 容器或服务器在部署描述或启动参数里设变量,然后务必确认端口有没有从容器内部映射到宿主机。只改容器内监听、忘了映射,宿主机上照样连不上,这是最容易被忽略的一环。
三种改法都做完之后,用同一个动作收尾:去服务日志里核对实际监听地址。日志说是什么,才是真的什么,配置文件写了不代表进程读到了。
改完怎么验证,连不上按什么顺序查
验证要分两步走,先本机、再远端,这样能把「服务端没改对」和「网络不通」两类问题彻底分开。很多人一上来就从另一台机器试,失败了根本不知道是自己配错还是防火墙挡了。
| 现象 | 先查什么 | 再查什么 |
|---|---|---|
| 本机都连不上 | 服务是否带着新变量真正重启过 | 监听地址是否被收窄到本机不在的网卡上 |
| 本机能连、别的机器不能 | 进程监听地址是否只绑了本机回环 | 防火墙或安全组是否放行该端口 |
| 时好时坏 | 端口是否被别的程序偶尔占用 | 客户端配置里地址是否包含端口、写法是否统一 |
- 服务进程必须带着新变量重启过,光改文件不重启等于没改;
- 新端口别和机器上已有服务撞车,撞了服务会起不来或随机退让;
- 防火墙、安全组、云主机安全策略三层都可能拦,逐层确认放行;
- 客户端那边填的地址要带端口,并且和实际监听保持一致;
- 改完本机反而不通,八成是把监听收窄成了某个外部网卡地址,本机不在范围内。
排查顺序建议固定成:日志看监听 → 本机访问 → 远端访问 → 抓网络层。按这个顺序走,基本两三轮就能定位到是哪一层的问题。
什么情况下不建议动它
这个变量不是「改了更高级」,而是「开了扇门」。门开得越大,能进来的人越多,而模型接口通常不带账号体系,谁连上谁就能用你的机器跑推理。所以先判断自己属于哪种场景,再决定动不动。
单机自用、只在本机跑工具链,保持默认最省事,改了只会给自己增加暴露面。多人共用一台机器、或者确实要让外部设备调用,也别只改监听地址就完事:至少配一层反向代理、加访问控制、限制在内网范围。云主机上开放端口前先想清楚谁能连到,心里没数就先别开。
至于「哪种中转或自建方案更划算、各家接口价格差多少」,这类要横向比的数字不适合在这篇里下结论,去站内页面按当时的数据核对更靠谱。
下一步想知道不同接入方式在延迟和价格上的实际差别,可以到站内对比页按当时的数字自行核对,再决定是自建还是走中转。→常见问题
OLLAMA_HOST 的值要不要带 http:// 前缀?
通常不需要,只写主机加端口,协议部分由调用方自己拼。带上前缀多数情况下会解析失败或连到错误地址。拿不准就先用不带前缀的形式跑通一次,再回头确认你的客户端是不是会自动补协议。
改完 OLLAMA_HOST,为什么原来的程序连不上了?
最常见的原因是你把监听范围改小或改到了别的网卡上,本机默认地址不再被监听。另一个原因是改动只对当前终端生效,服务实际上是旧进程在跑。先确认服务是不是用新变量重启过,再对照客户端里填的地址和端口。
想让局域网里其他机器调用,应该填什么?
一般填允许外部访问的监听地址并带上端口,同时确保宿主机防火墙和云安全组放行该端口。但要清楚这样等于把模型接口开放给整个可达网络,接口本身通常没有账号校验,建议只在内网使用并配合访问控制。