Jan Local API Server 如何暴露到局域网并配置 Trusted Hosts 与 CORS?
Jan Local API Server 如何暴露到局域网并配置 Trusted Hosts 与 CORS【免费下载链接】janJan is an open source alternative to ChatGPT that runs 100% offline on your computer.项目地址: https://gitcode.com/GitHub_Trending/ja/jan默认情况下Jan 内置的 Local API Server 只监听127.0.0.1:1337只有本机可以访问。如果你的目标是让局域网内的其他设备文档举的例子是手机或另一台电脑也能调用这台机器上的 OpenAI 兼容接口需要把 Server Host 改为0.0.0.0并配合 API Key、Trusted Hosts 和 CORS 这几项配置来收敛暴露面。本文基于 Jan 官方文档 Local API Server 与 API Reference给出完整的配置路径和验证方式。前置条件已安装 Jan 并且其中至少有一个可用模型请求体里的 model ID 必须对应 Jan 中实际存在的模型。启动服务并打开配置面板进入SettingsLocal API Server点击Start Server。当日志出现JAN API listening at http://127.0.0.1:1337时说明服务已就绪这是文档给出的默认绑定下的就绪日志。点击该页面右上角的Configuration按钮打开服务端配置面板。文档说明这些配置控制的是服务器的网络可达性与基础行为面板中本次需要修改的项是 Server Host、API Key、Trusted Hosts以及 Advanced Settings 里的 CORS 开关。将 Server Host 改为 0.0.0.0Server Host 指定服务器监听的网络地址127.0.0.1默认仅本机可访问文档称之为个人使用下最安全的选项0.0.0.0局域网内的其他设备可以访问文档明确提示Use this with caution。把该项改为0.0.0.0后配合文档中的说明做两件配套的事设置 API Key填入任意字符串文档示例值a-secure-password请替换为你自己选定的密钥。配置后所有请求必须在Authorization: Bearer YOUR_API_KEY请求头中携带该密钥。文档明确建议绑定到0.0.0.0时不要留空——留空即关闭认证。配置 Trusted Hosts填入逗号分隔的主机名列表表示允许访问服务器的主机。这是文档中给出的、针对服务器暴露到网络场景的额外一层安全控制。其余与暴露到局域网直接相关的可选项Server Port默认1337可改为任意可用端口文档示例8000。如果端口被占用Jan 的 Local API Server 不会自动换端口绑定的端口不可用时服务会启动失败故障排查文档给出的处理方式是按操作系统用netstat检查 1337 端口占用情况然后在SettingsLocal API ServerConfigurationServer Port中更换端口。API Prefix默认/v1遵循 OpenAI 约定也可修改或留空。改了这个前缀所有端点路径都会跟着变。Request Timeout单位是秒指服务端等待本地模型响应的时长。在大模型跑慢硬件、出现请求超时的情况下调大。按需关闭 CORSAdvanced Settings 中的Cross-Origin Resource Sharing (CORS)默认开启。文档对它的描述是开启时允许运行在其他域名下的 Web 应用例如你正在开发的自定义 Web UI请求该 API 服务器如果 API 只会由非浏览器端程序访问例如脚本、命令行工具建议关闭以获得略好的安全性。也就是说你的局域网客户端如果是浏览器里的页面前端直接 fetch保持 CORS 开启如果都是脚本或服务端调用关闭即可。与 CORS 无关的另一项Execute Tools on Server默认关闭含义是经/v1/chat/completions触发的 MCP 工具调用改在服务器端执行客户端自行处理工具执行时应保持关闭。从局域网设备发起验证请求修改完配置后在局域网内的另一台设备上请求 Jan 主机。下面的命令改编自文档的 curl 示例其中LAN_IP需替换为 Jan 所在机器的局域网地址a-secure-password需替换为你在 API Key 中实际填入的值# 先列出可用模型 curl http://LAN_IP:1337/v1/models \ -H Authorization: Bearer a-secure-passwordAPI Reference 文档给出的GET /v1/models示例响应文档示例实际返回的模型列表取决于你加载的模型{ object: list, data: [ { id: jan-v3-4b-base-instruct, object: model } ] }确认模型 ID 后发起一次对话补全请求curl http://LAN_IP:1337/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer a-secure-password \ -d { model: YOUR_MODEL_ID, messages: [{role: user, content: Tell me a joke.}] }YOUR_MODEL_ID替换为 Jan 中实际存在的模型 ID。除/v1/chat/completions外服务端还支持 Anthropic 兼容的POST /v1/messages端点见 API ReferenceOpenAI Responses API/v1/responses文档标注为 coming soon。按现象排查文档建议在排查时保持Verbose Server Logs开启默认开启这样 Server Logs 视图里能看到每条请求、响应和服务端活动的详细日志。Local API Server 文档 给出的对照关系Connection Refused服务器没有在运行或客户端指向了错误的 host 或端口。检查服务是否启动、LAN_IP与端口是否正确。401 UnauthorizedAPI Key 没有出现在Authorization头里或者值不对。404 Not Found请求体中的modelID 与 Jan 中可用模型不匹配或请求 URL 写错检查 API Prefix 是否与你配置的一致。CORS Error浏览器端出现确认 Jan 设置里的 CORS 开关处于开启状态。需要注意的限制文档只说明了0.0.0.0会让局域网设备可访问并提示谨慎使用Trusted Hosts 被描述为暴露到网络时的额外安全层但没有给出该列表的语法细节或绕过行为API Key 是配置后所有请求都必须携带的共享密钥。如果你后续要让 SDK 接入OpenAI SDK 只需把base_url指向http://LAN_IP:1337/v1并传入同一密钥API Reference 中给出了 Python 与 TypeScript 示例。【免费下载链接】janJan is an open source alternative to ChatGPT that runs 100% offline on your computer.项目地址: https://gitcode.com/GitHub_Trending/ja/jan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考