本地转发调试
集群里的服务(数据库、缓存、内部 API、内置 LLM 网关)默认不对公网开放。nae forward 把它们转发回你的开发机,让你在本地像访问 127.0.0.1 一样调试。
两种模式:
nae forward app <appid>—— 把应用的监听端口转发到本地(类kubectl port-forward)。nae forward llm—— 把内置 LLM 网关转发到本地,本地代码经环境变量直接调试。
两者都前台常驻、Ctrl-C 退出,且都需先 nae login(登录态失效会直接拒绝,不开转发)。
nae forward app
把应用的端口转发到本地一个端口,前台常驻。运行后本地直连这个端口,就等于连到了集群里的应用;Ctrl-C 退出。运行期实时显示「活动连接数 / 上行 / 下行」流量。
# 把应用容器端口转发到本地一个自动选择的空闲端口
nae forward app myredis
# 指定应用侧端口 6379、本地固定用 16379
nae forward app myredis --port 6379 --local 16379
| 选项 | 说明 |
|---|---|
--port <n> |
应用侧端口。缺省取应用的容器端口。 |
--local <n> |
本地监听端口。缺省自动选一个空闲端口(启动时会打印实际端口)。 |
启动后输出示例:
本地 127.0.0.1:16379 → 应用 myredis:6379
前台常驻转发中,Ctrl-C 退出。
活动连接 1 | ↑ 1.2KB | ↓ 3.4KB
随后用任意客户端连本地端口即可,例如:
redis-cli -p 16379 ping
psql -h 127.0.0.1 -p 15432 -U appuser appdb
说明:
- 只能转发你自己的应用。
- 一条命令可同时承载多条连接(流量行的「活动连接」即当前并发数)。
- 想同时转发多个应用,多开几条命令即可——给不同的
--local,或都让它自动选端口。
nae forward llm
把内置 LLM 网关转发到本地,前台常驻(和 forward app 一样,Ctrl-C 退出)。运行后本地代码用和应用内完全相同的两个环境变量直接调试,运行期间实时显示已代理请求数与流量。
nae forward llm # 前台常驻;另开一个终端,本地代码即可经环境变量调试
| 选项 | 说明 |
|---|---|
--local <n> |
本地监听端口。缺省自动选一个空闲端口。 |
启动后会写入两个全局环境变量(退出时自动清除):
| 变量 | 值 |
|---|---|
NAE_LLM_GATEWAY |
本地网关地址 http://127.0.0.1:<端口>。OpenAI 兼容客户端用 ${NAE_LLM_GATEWAY}/v1;Anthropic SDK 直接用 ${NAE_LLM_GATEWAY}。 |
NAE_LLM_API_KEY |
本次会话的临时本地令牌(由命令生成)。 |
本地调用与应用内一致——读同样两个变量即可:
from openai import OpenAI
import os
client = OpenAI(
base_url=os.environ["NAE_LLM_GATEWAY"] + "/v1",
api_key=os.environ["NAE_LLM_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
说明:
- 可用模型名见
nae llm或网页「LLM配置」页;流式与非流式都支持。 - 本地调试的用量与应用内调用一并计入你的月度额度。
- 转发只在本命令运行期间有效,
Ctrl-C退出即停止并清除环境变量。 NAE_LLM_API_KEY是仅本地可用的临时令牌,地址是127.0.0.1——拿到别处连不上集群。- 环境变量写的是用户级全局变量,需在另开的新终端窗口里生效,当前已打开的终端不会自动刷新。