智能助手网
标签聚合 路由

/tag/路由

linux.do · 2026-04-18 20:40:28+08:00 · tech

any路由器因为跟claude code有一些参数适配的问题,所以我们可以在本地架设一个简单的网关,将参数在本地拦截,然后修改一下,再传给any大善人,就可以绕过这些参数适配的小问题了。 claudecode最新版本适用,不需要回退版本 这个本地网关做了什么 在本地监听 127.0.0.1:1998。 把 Claude Code 的请求转发到上游any的端口。 自动补认证头(Authorization / x-api-key)。 对 haiku 请求额外修正:补 context-1m-2025-08-07,并加 thinking.budget_tokens=1024。 把请求和响应写到 gateway_requests.jsonl 方便排错。 极简启动步骤 先开网关 export ANTHROPIC_BASE_URL=“any大善人地址” export ANTHROPIC_AUTH_TOKEN=“你的真实token” python3 /Users/Apple/Desktop/code/claude_gateway.py 新开一个终端再开 Claude Code ANTHROPIC_BASE_URL=“ http://127.0.0.1:1998 ” claude --enable-auto-mode 截图为证: 网关代码如下(vibe写的,很多冗余,大佬可以自行修改): #!/usr/bin/env python3 import base64 import json import os import threading from datetime import datetime, timezone from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer from urllib.error import HTTPError, URLError from urllib.parse import urlsplit, urlunsplit from urllib.request import Request, urlopen LISTEN_HOST = os.getenv("CLAUDE_GATEWAY_HOST", "127.0.0.1") LISTEN_PORT = int(os.getenv("CLAUDE_GATEWAY_PORT", "1998")) UPSTREAM_BASE_URL = os.getenv( "ANTHROPIC_BASE_URL", "https://a-ocnfniawgw.cn-shanghai.fcapp.run" ) UPSTREAM_AUTH_TOKEN = os.getenv("ANTHROPIC_AUTH_TOKEN", "") UPSTREAM_TIMEOUT = float(os.getenv("CLAUDE_GATEWAY_TIMEOUT", "120")) LOG_PATH = os.getenv( "CLAUDE_GATEWAY_LOG", os.path.join(os.path.dirname(__file__), "gateway_requests.jsonl") ) LOG_LOCK = threading.Lock() def utc_now_iso() -> str: return datetime.now(timezone.utc).isoformat() def ensure_log_parent_exists() -> None: parent = os.path.dirname(LOG_PATH) if parent: os.makedirs(parent, exist_ok=True) def decode_body_for_log(body: bytes) -> dict: if not body: return {"encoding": "utf-8", "text": ""} try: return {"encoding": "utf-8", "text": body.decode("utf-8")} except UnicodeDecodeError: return {"encoding": "base64", "text": base64.b64encode(body).decode("ascii")} def append_log(record: dict) -> None: ensure_log_parent_exists() line = json.dumps(record, ensure_ascii=False) with LOG_LOCK: with open(LOG_PATH, "a", encoding="utf-8") as f: f.write(line + "\n") def build_upstream_url(base_url: str, incoming_path: str) -> str: base = urlsplit(base_url) incoming = urlsplit(incoming_path) incoming_path_only = incoming.path or "/" base_path = base.path.rstrip("/") if base_path: merged_path = f"{base_path}{incoming_path_only}" else: merged_path = incoming_path_only return urlunsplit((base.scheme, base.netloc, merged_path, incoming.query, "")) def rewrite_request_headers(headers: dict, path: str) -> dict: rewritten = dict(headers) if UPSTREAM_AUTH_TOKEN: has_x_api_key = any(k.lower() == "x-api-key" for k in rewritten) has_authorization = any(k.lower() == "authorization" for k in rewritten) if not has_x_api_key: rewritten["x-api-key"] = UPSTREAM_AUTH_TOKEN if not has_authorization: rewritten["Authorization"] = f"Bearer {UPSTREAM_AUTH_TOKEN}" # 先做骨架,后续按 any 规则逐步覆写。 return rewritten def rewrite_request_body(body: bytes, headers: dict, path: str) -> bytes: if not body: return body content_type = "" for k, v in headers.items(): if k.lower() == "content-type": content_type = v break if "application/json" not in content_type.lower(): return body try: payload = json.loads(body.decode("utf-8")) except (UnicodeDecodeError, json.JSONDecodeError): return body model = str(payload.get("model", "")).lower() if not model.startswith("claude-haiku"): return body beta_key = None for k in headers.keys(): if k.lower() == "anthropic-beta": beta_key = k break raw_beta = headers.get(beta_key, "") if beta_key else "" beta_features = [item.strip() for item in raw_beta.split(",") if item.strip()] if "context-1m-2025-08-07" not in beta_features: beta_features.append("context-1m-2025-08-07") merged_beta = ",".join(beta_features) if beta_key: headers[beta_key] = merged_beta else: headers["anthropic-beta"] = merged_beta payload["thinking"] = {"type": "enabled", "budget_tokens": 1024} return json.dumps(payload, ensure_ascii=False, separators=(",", ":")).encode("utf-8") class ClaudeGatewayHandler(BaseHTTPRequestHandler): protocol_version = "HTTP/1.1" def do_GET(self): self._handle_proxy() def do_POST(self): self._handle_proxy() def do_PUT(self): self._handle_proxy() def do_PATCH(self): self._handle_proxy() def do_DELETE(self): self._handle_proxy() def do_OPTIONS(self): self._handle_proxy() def do_HEAD(self): self._handle_proxy() def log_message(self, fmt, *args): return def _read_request_body(self) -> bytes: content_length = int(self.headers.get("Content-Length", "0") or "0") if content_length <= 0: return b"" return self.rfile.read(content_length) def _copy_request_headers(self) -> dict: headers = {} for key, value in self.headers.items(): key_l = key.lower() if key_l in {"host", "content-length", "connection", "accept-encoding"}: continue headers[key] = value return headers def _send_response(self, status: int, headers: dict, body: bytes) -> None: self.send_response(status) ignored = {"transfer-encoding", "content-length", "connection"} for k, v in headers.items(): if k.lower() in ignored: continue self.send_header(k, v) self.send_header("Content-Length", str(len(body))) self.send_header("Connection", "close") self.end_headers() if self.command != "HEAD" and body: self.wfile.write(body) def _handle_proxy(self): req_body = self._read_request_body() req_headers = self._copy_request_headers() req_headers = rewrite_request_headers(req_headers, self.path) req_body = rewrite_request_body(req_body, req_headers, self.path) upstream_url = build_upstream_url(UPSTREAM_BASE_URL, self.path) request_log = { "timestamp": utc_now_iso(), "client_ip": self.client_address[0] if self.client_address else "", "method": self.command, "path": self.path, "upstream_url": upstream_url, "headers": dict(self.headers.items()), "body": decode_body_for_log(req_body), "body_length": len(req_body), } try: upstream_req = Request( url=upstream_url, data=req_body if req_body else None, headers=req_headers, method=self.command, ) with urlopen(upstream_req, timeout=UPSTREAM_TIMEOUT) as resp: resp_status = resp.getcode() resp_headers = dict(resp.headers.items()) resp_body = resp.read() request_log["response"] = { "status": resp_status, "headers": resp_headers, "body": decode_body_for_log(resp_body), "body_length": len(resp_body), } append_log(request_log) self._send_response(resp_status, resp_headers, resp_body) return except HTTPError as e: err_body = e.read() if hasattr(e, "read") else b"" err_headers = dict(e.headers.items()) if getattr(e, "headers", None) else {} request_log["response"] = { "status": e.code, "headers": err_headers, "body": decode_body_for_log(err_body), "body_length": len(err_body), } append_log(request_log) self._send_response(e.code, err_headers, err_body) return except (URLError, TimeoutError, Exception) as e: error_payload = { "error": "gateway_upstream_error", "message": str(e), } error_body = json.dumps(error_payload, ensure_ascii=False).encode("utf-8") request_log["response"] = { "status": 502, "headers": {"Content-Type": "application/json; charset=utf-8"}, "body": {"encoding": "utf-8", "text": error_body.decode("utf-8")}, "body_length": len(error_body), } append_log(request_log) self._send_response( 502, {"Content-Type": "application/json; charset=utf-8"}, error_body, ) def main(): server = ThreadingHTTPServer((LISTEN_HOST, LISTEN_PORT), ClaudeGatewayHandler) print(f"[gateway] listening on http://{LISTEN_HOST}:{LISTEN_PORT}") print(f"[gateway] upstream: {UPSTREAM_BASE_URL}") print(f"[gateway] auth token configured: {bool(UPSTREAM_AUTH_TOKEN)}") print(f"[gateway] log file: {LOG_PATH}") server.serve_forever() if __name__ == "__main__": main() 3 个帖子 - 2 位参与者 阅读完整话题

linux.do · 2026-04-18 12:29:49+08:00 · tech

从 Any牌路由器 SubAgent 和 Haiku 模型无法正常调用的解决办法 继续讨论: 叼毛 就在今天 114 版本将npm包中的cli.js 之于node 的兼容运行部分 制品 全面更换成了 bun版 且学codex 把每个平台的制品都拆成了单独的分包 原本的 cli.js 的包现在改为了 包装脚本 cli-wrapper.cjs 用于拉取对应平台的 bun版二进制 其安装脚本 可以看到 基本是毁了 解包还出来 cli.js 也可以 但其目前的动作其实表明了 npm包的真废弃 不过也没有一步到位 因为最开始就是用bun构建但是兼容了node的 所以114目前解出来的 仍然可以 node来跑 只不过不确定后续动作 (等会整个仓库来分发新node版) 如果某日开始 cch的机制更进一步的 完全强硬实施(禁用的的环境变量移除掉) 或者 源码中直接将兼容node这部份包裹代码给移除 那时就是真正的废弃之时了 你让我强行用npm包我也不敢用了 (怕封号) 附一个乐子 有时候谣言是怎么传播的呢就很好奇 我们并未清楚那天穿山甲到底说了啥 25 个帖子 - 23 位参与者 阅读完整话题

linux.do · 2026-04-18 00:08:21+08:00 · tech

前文: any站opus 4.7的WebSearch无法正常使用 - #20,来自 Haleclipse 实际上 作为官转? WebSearch 是不可能不工作的 但很有可能他Pick了Haiku来调用这个 web_search 的tool 又因为 Haiku 会被两个原因直接报错 导致看起来不可用 所以就两个问题 : SubAgent 无法调用 Haiku 无法使用 (实际是可以使用的) fix script(only 2.1.111+): apply-claude-code-subagent-thinking-fix.zip (9.7 KB) 还包括 如下设置 (必配合填写)(如果你足够细心 会发现这个只影响打开Any时) 注意修复仅限Anyrouter 其他非官方是否同样也有此问题未知 同时使用官方可能会有影响(能工作肯定能 但是不知道多让思考了会有什么不好的地方,毕竟人官方直接区分对待了 没有无脑追加) claude --settings ~/.claude/settings.anyrouter.json 懂的人知道在干嘛 不懂我也就扔个旧文 Any牌路由器使用清障! 收工 一想到明天还要加班就好烦 26 个帖子 - 20 位参与者 阅读完整话题

www.ithome.com · 2026-04-17 19:45:27+08:00 · tech

IT之家 4 月 17 日消息,中兴新上架了一款星云 BE3600Pro+ 家用路由器,京东显示为 369 元,尝鲜价 349 元,子母路由套装 699 元,晒单返 10 元京豆。 京东 中兴(ZTE)星云 BE3600Pro+ 双 2.5G 网口家用路由器 WiFi7 双频并发无缝组网 349 元 直达链接 京东 中兴(ZTE)星云 BE3600Pro+ 套装全屋路由器 双 2.5G 网口 家用子母路由器 WiFi7 无缝组网(已配对) 699 元 直达链接 2026 年数码家电政府补贴持续进行中,IT 之家为大家汇总国补领券地址,买数码家电之前记得领取: 点此查看 。 数码补贴: 点此领券 手机 / 平板 / 3C 数码支持 8.5 折政府补贴,不超过 6000 元的产品至高立减 500 元。 家电补贴: 点此领券 6 类家电支持 8.5 折政府补贴,单品至高补贴 1500 元。 据官方介绍,这款路由器采用了中兴自研企业级全屋技术,搭载第四代 6 核企业级自研芯片(IT之家注:2 核 CPU+4 核 NPU)、5 个 FEM 信号放大器,内置 5 根中兴自研第三代“爬墙虎”天线,提供真 · 双 2.5G 网口 + 双千兆网口,支持双 WAN 双宽带接入,支持 IPTV 单线复用,还支持 NFC 一碰连。

linux.do · 2026-04-17 15:21:29+08:00 · tech

IPv8才是IPv4的真正接班人。**4月14日,IETF公布了Internet Protocol Version8(IPv8)核心协议草案,实现对IPv4的100%向下兼容,有望破解IPv6迁移缓慢的行业痛点。**尽管IPv6已经推行超过二十年,但由于其与IPv4并不兼容,导致全球迁移进度未达预期。 IPv8最核心的设计亮点是100%向下兼容IPv4。草案明确,IPv4是IPv8的一个真子集。根据草案定义,IPv8采用64位地址空间,格式为r.r.r.r.n.n.n.n,由32位ASN路由前缀和32位主机地址组成。 当路由前缀字段(r.r.r.r)设为0.0.0.0时,该地址将直接按标准IPv4规则处理 。 这意味着现有IPv4设备、应用程序与底层架构无需任何修改、无需更换硬件,即可接入IPv8网络,且IPv8不设强制转型截止日,支持长期平滑演进,彻底消除企业升级的成本顾虑。 地址资源与路由架构得到显著优化。 IPv8的64位地址空间理论上可提供2^64(约1844.67亿亿)个独立地址,从根本上解决IPv4地址枯竭问题。 每个自治系统编号(ASN)持有者可获得42.9亿个主机地址,足以满足各类组织的规模化需求,无需依赖CGNAT技术。同时,草案规定BGP8路由表以ASN为单位绑定,结合/16最小前缀规则,有效抑制路由表膨胀,大幅降低核心路由器的处理压力。 IPv8重构了网络管理与安全体系。草案提出Zone Server(区域服务器)统一管理平台,整合了DHCP8地址分配、DNS8域名解析、NTP8时间同步、OAuth2 JWT身份认证、NetLog8网络遥测、WHOIS8路由验证等多项服务,告别传统网络服务碎片化管理的困境。 安全层面,IPv8采用"预设不信任"设计逻辑。所有向互联网传输的数据包,在出口路由器处必须经过DNS8解析与WHOIS8路由注册双重验证,设备需持有合法认证令牌才能正常通信。 此外,草案引入成本因子(CF)路由算法,综合时延、丢包、地理距离等维度,若传输速度超出物理光速极限,系统将立即标记异常,从源头防范路由欺诈与路径伪造,有效遏制僵尸网络、DDoS攻击等安全威胁。 草案还定义了BGP8、OSPF8、ICMPv8等升级路由协议,支持8to4隧道技术,可实现IPv8网络在IPv4-only网络中的穿透部署,保障过渡阶段的全场景互通。 草案明确,IPv6虽解决了地址枯竭问题,但未解决管理碎片化,且双栈部署成本较高,IPv8并非要取代IPv6,而是提供一种更具兼容性的升级方案。 目前,该IPv8草案仅技术提案,尚未成为IETF官方标准,也未获得产业界共识,未来六个月将面向全球业界开放讨论,其实际落地应用仍需进一步验证与完善。 11 个帖子 - 11 位参与者 阅读完整话题

linux.do · 2026-04-16 16:59:07+08:00 · tech

由于 any 路由器开了周限,也没有其它稳定便宜的渠道,在 L 站做了一些功课后,于上周订阅了 claude 5x max 开通方式 Google Play: 美区免税州订阅 付款方式: 工行星座卡 IP 信息 普通vps搭建的 vless 协议 账号信息 谷歌账号 – 新注册账号,当天被封禁后申诉解封 claude – 使用上述谷歌账号注册,使用接码平台解码 养号情况 – 使用同一 IP 在安卓 claude app 上断断续续聊了几天 存活时间 上周四下午 — 至今 使用方式 局域网一台电脑使用 singbox 配置 vless 节点, 全局模式, 但不开系统代理和 tun,仅对外提供 http/s proxy 清除主用电脑的 claude code 的全部信息,卸载并重装 在 .claude/settings.json 中配置代理 谷歌浏览器无痕模式同一 ip 网页授权登录 登录完成后未再使用过网页和 app(卸载) 仅在 claude code 中使用 周限额只用了 40% 以上信息用于个人记录,仅供参考,祝佬友们都能安全畅蹬 A/ 1 个帖子 - 1 位参与者 阅读完整话题

linux.do · 2026-04-16 15:02:37+08:00 · tech

doubao-seed-2.0-pro 这个模型即豆包上的模型选择里的“专家” 目前在高峰期会被限流,会路由到快速模型,跟个人使用无关即使首次使用也会出现,是服务器总体负载相关,可能过几分钟就好了,今天11点触发了好多次,刚才14点50又触发了 提示当前流量高峰,为你切换到普通模型 之前国内模型随便用,很大原因是因为成本确实是相当于gemini的flash,gemini的flash也是随便用。随着模型能力提升跨入生产力门槛,想要在网页上正常使用会越来越难 2 个帖子 - 2 位参与者 阅读完整话题

www.ithome.com · 2026-04-15 17:20:00+08:00 · tech

IT之家 4 月 15 日消息,华为新上架了一款 5G CPE,型号为鸿蒙智选 H168-383 5G CPE UItra 6,京东显示为 1999 元,将于 4 月 29 日开售。 京东 鸿蒙智选 Brovi 5G CPE Ultra6 无线网络移动随身 wifi6 可插卡 4G/5G 全网通路由器 H168-383 1999 元 直达链接 2026 年数码家电政府补贴持续进行中,IT 之家为大家汇总国补领券地址,买数码家电之前记得领取: 点此查看 。 数码补贴: 点此领券 手机 / 平板 / 3C 数码支持 8.5 折政府补贴,不超过 6000 元的产品至高立减 500 元。 家电补贴: 点此领券 6 类家电支持 8.5 折政府补贴,单品至高补贴 1500 元。 这款 CPE 支持 5G-A 疾速网络,下行理论速率 11.7Gbps、上行理论速率 2.5Gbps;支持 5 载波聚合技术,支持 N79 等主流频段;支持 6500Mbps 级三频 Wi-Fi 6 网络;配备了 49 根天线系统,其中 26 根定向高增益天线强力加持(峰值增益 14dBi);提供一个 5G 网口和一个千兆网口;支持 NFC 一碰联网、华为智慧生活 App 管理。

linux.do · 2026-04-15 11:17:23+08:00 · tech

bro寝室里所用的宽带是需要我们去办理与宽带绑定的电话卡,在设备连接宽带时需在登录宽带账号的网页里输入手机号与密码后才可使用,沟槽的是单个账号只限两台设备,于是受某位L友的帖子的启发,去某海鲜市场上搞了一台刷好的路由器,连接墙上光猫的网口后设备在连接该路由器的网络之后会自动跳转到校园网登录页面,在输入账号密码后该网络就能使用了,因此实现了破解限制设备。但是近两天有个毛病,每过一个多小时左右网络会出现异常,设备都会显示无网络连接,很诡异的是过三四分钟后又自己回复了,由于本人在OpenWrt这一块不是很懂,希望有佬友看看这个"特性"是什么原因 6 个帖子 - 5 位参与者 阅读完整话题

linux.do · 2026-04-12 19:14:55+08:00 · tech

去年趁双十一买了台 N150 小主机,四网口,16G 内存 + 500G SSD,到手 ¥938。原本计划只是替换掉老旧的 OpenWrt 路由器,没想到折腾到现在装了一堆东西,说说半年的真实体验。 为什么选 N150 家里之前用的是刷了 OpenWrt 的 R2S,性能基本到头了,跑 clash 透明代理勉强,碰到多设备同时用油管 4K 就开始掉包。 N150 是 Intel 新一代 Alder Lake-N 系列,相比 N100 主频更高、iGPU 稍强,同样四核低功耗,小主机形态卖得多,闲鱼价格也实惠。选它的理由: 四网口 :WAN + LAN 直接上,不用 VLAN 绕弯 功耗低 :软路由 7×24 小时开,电费是真实成本 性能富余 :跑完代理还剩大量算力,可以顺手跑点别的 系统怎么装 选的方案是 PVE 直通,跑 iKuai(爱快)做主路由,OpenWrt 做旁路。 iKuai 负责拨号、DHCP、带宽管理,OpenWrt 负责广告过滤和代理。这样 iKuai 崩了还能直连,OpenWrt 出问题不影响上网,容灾逻辑清晰。 装好之后直接用 lspci 确认网口,PVE 里直通给 iKuai 虚拟机,这步没什么坑。 功耗实测 用插排功率计量了一周: 场景 功耗 空载待机 约 8W 正常路由(5 台设备) 约 11W 高峰期(多设备跑满带宽) 约 14W 按 0.6 元/度、全年 365 天算: 12W 平均 × 24h × 365 = 约 105 度/年 ≈ ¥63/年 比之前 R2S(约 5W)是贵了点,但带来的性能完全不是一个量级。 实际效果 带宽跑满没有问题,200M 宽带压不住它。多设备同时 4K 没有掉包,CPU 占用一般在 15% 以下,大多数时间感觉在浪费算力。 广告过滤开了之后,某些视频网站的贴片广告基本消失,这个体验提升比我预期的大。 最近加了个小鸡做反代,顺手打通了远程 软路由跑起来之后一直有个遗憾:家里没公网 IP,在外面访问内网服务得绕 Cloudflare Tunnel,速度将就。 最近入了台小鸡(VPS),准备把它当反向代理出口——小鸡有公网 IP,用 frp 或者 Nginx 把流量打回家里的 N150,这样远程访问速度比 CF Tunnel 强不少,延迟可控。 配好之后的一个设想是:在外面用平板或者笔记本 vibe coding,编辑器连回家里的开发环境,算力留在本地,出门只带轻设备。目前还在折腾中,后续有进展再发帖。 踩的坑 网口驱动 :我这台有一个网口是 Realtek,PVE 直通偶尔掉驱动,换成 Intel 网口那两个就没问题了 iKuai 授权 :个人版免费但有功能限制,带宽管理高级功能要付费,我用不到所以没影响 整体来说非常满意。¥900多 买了台低功耗、性能够用、可以随便折腾的软路由,后续还可以往远程开发环境的方向扩展,比买一台专用软路由盒子划算多了。 有人用小鸡反代回家里做远程开发的吗?frp 和 rathole 哪个更稳,欢迎分享。 15 个帖子 - 10 位参与者 阅读完整话题

linux.do · 2026-03-18 23:17:19+08:00 · tech

3s内报403 你就 等 别瞎琢磨哪配错了 L站都快成Any牌路由器反馈地了 只要一波动一报错就有人问 “我不行 你行不行 你咋配的 为啥我不行 看看你配置 我4xx/5xx 我屯屯鼠 我是猪 ” 哇脑阔噶痛啊 某日 某 快问快答 下的系统推荐帖列表 (竟恐怖如斯) 现在!立刻!全方位!排除所有疑问 写一个说明书 必须傻瓜版 多问一句都叉(我)出去! 基础要点 不讲且不用 CCS 等辅助编辑工具 从未使用过CC 新安装 CC 后, 是没有 ~/.claude/settings.json 文件的 (安装指南请看 《 Claude Code 终极版 FAQ 指南 》 ) 同时 还可能被 登录引导 过程 拦截 受 ~/.claude.json 中顶层开关项 hasCompletedOnboarding 所控制和记录状态 顾名思义 false 即为 登录引导没有过 需要显示 反之 true 即为 已经经过 登录引导 无须再显示 所以 作为 官方服务来说 本就没有所谓的第三方API支持服务 弹出登录引导是正确且合理的行为设计 格局上来说 中国大陆不在服务支持范围 Claude Code 充其量就是一个客户端(发包器) 没有什么魔法 什么花都可以改出来,什么都能搓成你想要的样子 只要花点时间 (可以说是半开源) 此处显而易见的 你不使用官方规定提供的服务 直接打开 ~/.claude.json 搜索 hasCompletedOnboarding 如存在则直接修改值成true 如不存在则自行追加到JSON对象顶层 ~/.claude.json 傻瓜对照示例 (点击了解更多详细信息) 登录引导图示 (点击了解更多详细信息) 准备工作完成 能够正常进入看到CC的Prompt输入框 接下来是 供应商管理和必要的基础开关项 (国情如此 不得不要) 以空的不存在的 ~/.claude/settings.json 为例进行最小化讲解 (不存在就新建!别问为什么没有,没有触发到创建的逻辑自然没有) [!Note]+ ~/.claude/settings.json { "env": { "HTTPS_PROXY": "http://127.0.0.1:7890", "HTTP_PROXY": "http://127.0.0.1:7890", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", "CLAUDE_CODE_ATTRIBUTION_HEADER": "0", "DISABLE_INSTALLATION_CHECKS": "1", "ENABLE_TOOL_SEARCH": "1" }, "cleanupPeriodDays": 720, "model": "opus[1m]" } env对象属性值全部必须写为 字符串 而不是布尔值或者其他! 字符串内容通常使用 “1”=“yes”=“on” / “0”=“no”=“false” 为统一化 直接写 0/1 通用百分百错不了 HTTP_PROXY / HTTPS_PROXY : 对CC指定代理服务器配置 一劳永逸的常规配置项 告别无脑 tun tun CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC :详见 用CC,这个应该写进默认配置 该项为复合设置项 同时包揽: DISABLE_AUTOUPDATER 禁用自动升级 DISABLE_BUG_COMMAND 禁用显示 /bug 反馈 命令 DISABLE_ERROR_REPORTING 禁用错误报告行为 DISABLE_TELEMETRY 禁用遥测! 可以见得 实际上这里面最起作用的是 禁用遥测 这一开关项 但我们国情如此 另外两项附带的都没啥屁用 所以一包四 挺好~ 而自动升级也不是特别必要 因为自主控制升降级 也挺好 如果你需要 自动升级 那么只需让该项代换成 1项 → 3项 不写 DISABLE_AUTOUPDATER 多写另外三项 即可达成 CLAUDE_CODE_ATTRIBUTION_HEADER : 是否追加客户端类型区分文本 默认值是追加 详见: 出结论了,Claude Code 新版本随机插入 cch 参数,第三方缓存命中率从 90% 降至 30% - #9,来自 Haleclipse 该变量导出来控制是否不需要装填 billing header 到 请求体中 (默认不写就是会装填 所以写成"0",因为该值根本对我们根本没有什么作用) 该内容形如 {"anthropic-billing-header: cc_version=2.1.15.c7e; cc_entrypoint=cli"} DISABLE_INSTALLATION_CHECKS : 禁用安装方式检查 详见: A\ 又疯了 / 区别详细解释 最直观的就是略过检查 以去除 仍在使用所谓遗弃的 npm安装方式所被提示的 黄色警告文本显示 ENABLE_TOOL_SEARCH : 启用ToolSearch这一Tool,该Tool的能力是将Tool们全部延后加载 在需要时会自动先调用该工具进行Tool的搜索加载 (因为默认是直接加载到上下文窗口的) 可加可不加 最好不写 因为在 1M上下文窗口实际上不是特别有必要了 且实际上 Sonnet / Opus 4+ 才支持这种能力 为什么和什么时候需要显式指定? 详见: CC环境变量 搞点简单记录 而且Anyrouter上游账号不知道会打到哪批?很有可能并不能被支持 以下是非env 设置类开关项 cleanupPeriodDays 用于将默认三十天删除会话记录这一时间覆盖更长 意为不需要删除旧会话 详见 : 啥毙CC 不吐不快 model 该项同样属于可写可不写 因为REPL交互式TUI中的 /model 选择器会默认的将选择值写到这里 所以锁全局的意义不大(如果常更换模型的话)默认值: default 且此模块设计有别名系统 即 opus 早期版本可能可以指代 claude-opus-4-5-20251101 而并不需要去记忆具体的模型ID 当前版本为4.6 则 opus 会指代 claude-opus-4-6 默认值别名 default 在不同账户情况下 可能会指代给 sonnet别名 或者 opus别名 具体以打开的 列表项显示为准 全局的 ~/.claude/settings.json 基础开关控制项 说完 接下来就是 三方提供商设定 此处依赖 --settings cli参数来载入更高优先级的 Profile 覆盖值 以达成灵活的供应商切换和管理, 直接创建 ~/.claude/settings.xxxx.json 以下以 anyr0uter 为例进行讲解 创建 ~/.claude/settings.anyrouter.json [!Note]+ ~/.claude/settings.anyrouter.json { "env": { "ANTHROPIC_BASE_URL": "https://anyrouter.top", "ANTHROPIC_AUTH_TOKEN": "you-token-to-here" }, "model": "opus[1m]" } 应该写什么为什么这样写的 基础逻辑就是 --settings 参数为 整合全局内容覆盖项 只要我们不在全局中写 就可以调整到 Profile (provider) 中写 所以 这就可以解释 为什么 末尾 要写 “model” 这项模型别名指定 因为Any牌路由器已经很久不提供 Sonnet 模型了 所以根本无须考虑 切换使用 Sonnet模型 则直接锁定在推荐的 1M 模型上 但这只针对使用Anyrouter时 不会影响其他的Profile 非常灵活和方便 接下来再以一个 特别的案例对另一块迷惑误区点进行讲解: 创建 ~/.claude/settings.aliyun.json [!Note]+ ~/.claude/settings.aliyun.json { "env": { "ANTHROPIC_BASE_URL": "https://dashscope.aliyuncs.com/apps/anthropic", "ANTHROPIC_API_KEY": "you-token-to-here", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3.5-flash", "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3.5-flash", "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen3.5-plus" } } 可以看到 我们在此处为什么会去设定 默认模型路由 而 Anyrouter 不需要? 因为Any牌路由器 提供了 claude-haiku-4-5-20251001 的模型id 这与官方完全匹配 包括 claude-opus-4-6 也是与官方匹配 当然就不需要去覆盖指定 而使用阿里云百炼的时候 模型提供商并没有提供 haiku / sonnet / opus 对等的模型id 只是模型能力体量上我们知道且可以控制其代换的模型 所以把高能力模型id塞给 opus 快速且费率低的模型id塞给 haiku sonnet无所谓 随意指定 最后 我们撰写完成之后 就可以使用 claude --settings ~/.claude/settings.xxxx.json 加载打开不同的Profile (provider) 来使用不同的提供商配置 同样 末尾仍可以 追加 -r -c 等参数在载入不同的供应商配置时 选择继续上次会话 还是 恢复某个会话 Windows用户不理解 ~ (家目录指代) 的 请看 Claude Code 使用原生 `--settings` 选项配置多个自定义模型供应商 加以理解 Q:此处的BASE_URL 应该怎么填 格式怎样 A:CC默认会追加 /v1/messages 拼接 进行 LLM请求,所以 BASE_URL 就是指 抠掉这块之前的那部分 动动你的小脑瓜 不要想当然无脑 往上自己追加 /v1 后缀 Q: API无法连接 (API Error: Unable to connect to API (ECONNRESET))? A: 佬铁 核查网络抵达性啦 访问不到臣妾也没招w Q: 我怎么知道供应商提供了哪些模型ID呢? A: 通常呢 供应商会有一个 /v1/models 的端点,只要 GET请求 附带你的token到请求头中,打过去就能得到 一个 json结果 里面就是 提供的模型ID Q: 响应码 4xx (no body)? A: 切模型到 Opus 1M (盲猜Opus没米了) 就算提问也不要光说自己得到了什么响应码错误 , 没有响应码之神 可以透过响应码贯穿得知响应的message,这很重要 那么如何得知message呢 POST打一下也就知道了 如果有的话 比如现在没有米的情况是 Q: 用着用着弹xxx中断了是为何? A: 存在这么一种情况 Haiku模型他欠费了但主模型Opus是能通的 ,某时刻乍一上来的时候 通过 -c 继续会话 并不会触发 Haiku 调用 继续单独打到Opus上 则不会有什么问题 但是一旦触及到Haiku调用 就boom了。他很有可能是这种情况 以上全部为手脑并用撰写,零LLM参与 如果对你有一点帮助,点击我的头像点我一个 关注 下回能再见也说不定呢w 接下来会登场的是 (点击了解更多详细信息) 1176 个帖子 - 618 位参与者 阅读完整话题