深色模式
Claude的安装与配置
在cstone上购买一个主机并配置vps,这一步主要是为了搭建一个比较纯净的vpn环境,如果你已经有比较干净的vpn了,可以略过这一步:
检测自己的网络环境是否足够干净:https://ip.net.coffee/claude/:
- 如果DNS泄露,下载并安装workbuddy帮你处理
- 如果WebRTC UDP检测泄露,可以在Chrome中安装WebRTC network limiter插件;
- 最好将时区调整到和代理IP同样的时区;
- 最好将语言调整成和代理IP地区官方使用的语言。
访问cstone并购买一个vps(虚拟服务器):https://www.cstonecloud.com/login,选择基础1核1G版本即可,大概55元/月。
下载并安装workbuddy,使用下面的提示词参考让workbuddy帮你在服务器上配置vpn的服务,提示词中的部分参数注意按照你自己的服务器参数调整输入:
markdown
你是运维执行者。请在一台全新的 CstoneCloud Debian 12 VPS 上,按下面的规格一次性部署「Trojan-TLS VPN + 带密码 SOCKS5 + 订阅服务」,全部完成并验证通过后,按「最终输出」格式交付。中途不要停下来征询,只有 SSH 无法登录、端口被云厂商封禁、证书签发失败三种情况才停下并报告原因。
### 一、输入参数
- 服务器 IP:【38.x.x.x】
- SSH:`root@【IP】:22`,本地私钥 `~/.ssh/id_ed25519`
- 使用者标识:【你的名字的英文,比如xuxiaole】(用于 Trojan 用户 email、节点名、订阅路径)
- 节点名:【Cstone-你的名字】
- Trojan 端口:【9443】
- SOCKS5 端口:【10808】(若与已有服务冲突,改用 20000–60000 的随机高位端口)
- SOCKS5 来源限制:【不限制】
- 订阅端口:【443】
- 出口:全部直连,不配置 WARP
### 二、部署规格
1. **系统基线**
- `apt update && apt upgrade -y`,安装 `curl socat cron openssl python3 ca-certificates`。
- 开启 BBR:写入 `/etc/sysctl.d/99-bbr.conf`(`net.core.default_qdisc=fq`、`net.ipv4.tcp_congestion_control=bbr`),`sysctl --system` 后确认生效。
- 若启用了防火墙(ufw / nftables),放行 `80/tcp`、订阅端口、Trojan 端口、SOCKS5 端口(TCP+UDP)。
2. **IP 证书**
- 用 acme.sh 以 standalone 模式(占用 `80` 端口)为服务器 IP 签发 Let's Encrypt 短期 IP 证书;签发前先查当前 acme.sh 版本的官方文档确认 IP 证书 / shortlived profile 的准确参数,不凭记忆写参数。
- 证书安装到 `/root/cert/ip/`(`fullchain.pem`、`privkey.pem`),`--reloadcmd` 设为 `systemctl restart xray clash-yaml`。
- 确认 acme.sh 的 cron 自动续期已存在;`80` 端口保持空闲,不要被其他服务占用。
3. **Xray(`xray.service`)**
- 用 XTLS 官方安装脚本安装最新版 Xray,配置文件 `/usr/local/etc/xray/config.json`。
- inbound 1:Trojan,端口【Trojan 端口】,`security: tls`,证书指向 `/root/cert/ip/`,单个 client,`email` 为 `【使用者标识】@cstone-trojan`,密码用 `openssl rand -hex 16` 生成。
- inbound 2:SOCKS5,端口【SOCKS5 端口】,`auth: password`,`udp: true`;账号为 `socks_` + 6 位随机十六进制,密码 `openssl rand -hex 16`;若填写了来源限制,用路由规则或防火墙只放行指定 IP。
- outbound:`freedom` 直连为默认出口,另加 `blackhole`;路由屏蔽私网 IP 段(`geoip:private` → blackhole)。
- 改完配置先跑 `xray run -test -config /usr/local/etc/xray/config.json`,通过后再 `systemctl enable --now xray`。
4. **订阅服务(`clash-yaml.service`)**
- 用 Python 标准库写 `/usr/local/clash-yaml-server/server.py`(不引第三方依赖),HTTPS 监听【订阅端口】,复用 `/root/cert/ip/` 证书。
- 只响应路径 `/【使用者标识】`,其他路径返回 404。
- 按 User-Agent 返回:
- 默认(含 Clash / Clash Verge / Mihomo):Clash YAML,内容如下结构:
```yaml
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
proxies:
- name: "【节点名】"
type: trojan
server: 【IP】
port: 【Trojan 端口】
password: <Trojan 密码>
network: tcp
udp: false
sni: 【IP】
skip-cert-verify: false
proxy-groups:
- name: PROXY
type: select
proxies: ["【节点名】"]
rules:
- IP-CIDR,【IP】/32,DIRECT,no-resolve
- MATCH,PROXY
```
- UA 含 Shadowrocket / V2Ray / Quantumult / Surge / Loon:返回 base64 编码的 `trojan://<密码>@【IP】:【Trojan 端口】?security=tls&sni=【IP】&type=tcp#【节点名】`。
- Trojan 密码直接从 `config.json` 读取,不在 `server.py` 里再写一份,保证单一真源。
- 写 systemd unit,`Restart=always`,`systemctl enable --now clash-yaml`。
### 三、验收(全部通过才算完成)
在服务器上:
- `systemctl is-active xray clash-yaml` 均为 `active`;`ss -lntup` 能看到 Trojan、SOCKS5(TCP+UDP)、订阅端口在监听。
- `sysctl net.ipv4.tcp_congestion_control` 输出 `bbr`。
- `openssl x509 -in /root/cert/ip/fullchain.pem -noout -subject -enddate` 证书主体为该 IP、未过期。
在本机:
- SOCKS5:`curl -s --socks5-hostname <账号>:<密码>@【IP】:【SOCKS5 端口】 https://api.ipify.org` 返回【IP】;同样方式访问 `https://www.google.com` 返回 HTTP 200。
- SOCKS5 鉴权:不带账号密码访问应失败。
- 订阅:`curl -s https://【IP】:【订阅端口】/【使用者标识】` 返回合法 Clash YAML(证书校验通过,不加 `-k`);`curl -s -A Shadowrocket ...` 返回可解码的 `trojan://` 链接;错误路径返回 404。
- Trojan:把订阅导入本机 Clash Verge(或用 mihomo 临时实例)连通后,访问 `https://www.google.com` 返回 200、`https://api.ipify.org` 返回【IP】。验证完恢复本机原有代理配置。
### 四、凭据处理
- 所有密码在服务器上生成,不写进任何 Git 仓库、不放进 URL 参数。
- 本机为 macOS 时,存入钥匙串:
- `security add-generic-password -U -s baixucode-cstone-<标识>-trojan -a <标识>@【IP】:【Trojan 端口】 -w <密码>`
- `security add-generic-password -U -s baixucode-cstone-<标识>-socks5 -a <账号>@【IP】:【SOCKS5 端口】 -w <密码>`
- 非 macOS 时存入系统凭据管理器,并在最终输出里说明存放位置。
- 若本机存在 `~/baixucode/_infra.md`,按其中现有 Cstone 小节的格式追加本台服务器信息(只写钥匙串 service / account 名,不写明文密码)。
### 五、最终输出(严格按此格式)
```
【Cstone VPN 已就绪】
服务器:【IP】(Debian 12,出口直连)
VPN(Trojan-TLS)
- 订阅地址:https://【IP】:【订阅端口】/【使用者标识】
· Clash / Clash Verge / Mihomo:直接导入订阅
· Shadowrocket / Quantumult / Surge / Loon / V2Ray:直接导入同一订阅地址
- 单节点链接:trojan://<密码>@【IP】:【Trojan 端口】?security=tls&sni=【IP】&type=tcp#【节点名】
SOCKS5
- 地址:【IP】
- 端口:【SOCKS5 端口】
- 账号:<账号>
- 密码:<密码>
- 协议:TCP + UDP;来源限制:<不限 / 指定 IP>
- 一行格式:socks5://<账号>:<密码>@【IP】:【SOCKS5 端口】
凭据存放:<钥匙串 service 名 / 凭据管理器位置>
验收结果:<逐项列出上面验收的 pass/fail 与关键输出>
运维提示:修改配置先 `xray run -test -config /usr/local/etc/xray/config.json` 再重启;证书由 acme.sh 自动续期,需保持 80 端口空闲。
```下载并安装clash verge,使用虚拟网卡模式,
在通过clash verge 的规则模式,模拟一个美国的环境:
- 将默认语言设置为英文;
- 将时区调整到和VPN一致;
- 按照一下提示词调整clash verge的规则配置,以保障Claude按照预期走vpn流量
bash
你的任务:在这台电脑上把 Clash Verge Rev 配置成和我另一台电脑完全一致。全程直接修改配置文件,不要只给我操作说明。只有需要我在图形界面里点击或授权时才停下来告诉我。
## 0. 准备
1. 判断操作系统,找到 Clash Verge Rev 的配置目录(下文记作 $DIR):
- macOS:~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev
- Windows:%APPDATA%\io.github.clash-verge-rev.clash-verge-rev
- Linux:~/.local/share/io.github.clash-verge-rev.clash-verge-rev
2. 没有安装 Clash Verge Rev 时,先让我去 GitHub clash-verge-rev/clash-verge-rev 的 Releases 页面下载安装,内核选 verge-mihomo。
3. 改任何文件前,把 $DIR 下的 profiles/、profiles.yaml、dns_config.yaml、verge.yaml 备份到 $DIR/.bak-<当前日期时间>/。
4. 让我先在 Clash Verge 图形界面的"订阅"页导入订阅:
URL:【你的订阅地址】
名称:xuxiaole
打开自动更新,导入后设为当前订阅。
我确认完成后再继续。
5. 读取 $DIR/profiles.yaml,找到 name 为 xuxiaole 的 remote 订阅,记下它 option 里 rules 字段对应的 uid(下文记作 $RULES_UID)。再确认全局扩展的 uid 为 Merge(文件 Merge.yaml)和 Script(文件 Script.js)。
6. 修改配置文件前先完全退出 Clash Verge,避免它运行时把文件覆盖回去。
## 1. 订阅的规则扩展:写入 $DIR/profiles/<$RULES_UID 对应的文件名>
```yaml
# Profile Enhancement Rules Template for Clash Verge
prepend:
- DOMAIN-SUFFIX,gov.cn,DIRECT
- DOMAIN-SUFFIX,qcc.com,DIRECT
- DOMAIN-SUFFIX,qichacha.com,DIRECT
- DOMAIN-SUFFIX,tianyancha.com,DIRECT
- DOMAIN-SUFFIX,aiqicha.baidu.com,DIRECT
- DOMAIN-SUFFIX,tmkoo.com,DIRECT
- DOMAIN-SUFFIX,quandashi.com,DIRECT
- DOMAIN-SUFFIX,cnnic.cn,DIRECT
- DOMAIN-SUFFIX,cnnic.net.cn,DIRECT
- DOMAIN-SUFFIX,weixin.sogou.com,DIRECT
- DOMAIN-SUFFIX,beian.gov.cn,DIRECT
append: []
delete: []
```
订阅自己的 merge / script / proxies / groups 扩展保持空模板,不要改。
## 2. 全局扩展配置:写入 $DIR/profiles/Merge.yaml
```yaml
# 全局 Merge 只做普通 YAML 深合并,不解析 prepend-rules;分流规则一律写在 Script.js
profile:
store-selected: true
```
## 3. 全局扩展脚本:写入 $DIR/profiles/Script.js
```js
// 规则模式下的定向分流:
// 1) Anthropic / Claude 全域名强制走代理组,并拒绝其 UDP(节点 udp:false,防止 QUIC 从本地 IP 直出)
// 2) DeepSeek、滴滴、QQ 邮箱、百度、小米路由器、向日葵、微信直连
function pickProxyGroup(config) {
const groups = config["proxy-groups"] || [];
if (!groups.length) return null;
const names = groups.map((g) => g.name);
const preferred = ["PROXY", "EEVPN", "节点选择", "手动切换", "代理模式"];
for (const name of preferred) {
if (names.indexOf(name) !== -1) return name;
}
const selector = groups.filter((g) => g.type === "select")[0];
return (selector || groups[0]).name;
}
function prependMissing(rules, candidates) {
const missing = candidates.filter((rule) => rules.indexOf(rule) === -1);
rules.unshift.apply(rules, missing);
}
function main(config, profileName) {
const rules = config.rules || (config.rules = []);
prependMissing(rules, [
"DOMAIN-SUFFIX,deepseek.com,DIRECT",
"DOMAIN-SUFFIX,deepseek.cn,DIRECT",
"DOMAIN-SUFFIX,deepseek.ai,DIRECT",
"DOMAIN-SUFFIX,deepseekapi.com,DIRECT",
"DOMAIN-SUFFIX,didichuxing.com,DIRECT",
"DOMAIN-SUFFIX,xiaojukeji.com,DIRECT",
"DOMAIN-SUFFIX,didistatic.com,DIRECT",
"DOMAIN-SUFFIX,udache.com,DIRECT",
"DOMAIN-SUFFIX,mail.qq.com,DIRECT",
"DOMAIN-SUFFIX,imap.qq.com,DIRECT",
"DOMAIN-SUFFIX,pop.qq.com,DIRECT",
"DOMAIN-SUFFIX,smtp.qq.com,DIRECT",
"DOMAIN-SUFFIX,qqmail.com,DIRECT",
"DOMAIN-SUFFIX,foxmail.com,DIRECT",
"DOMAIN-SUFFIX,mailcdn.qq.com,DIRECT",
"DOMAIN-SUFFIX,ptlogin2.qq.com,DIRECT",
"DOMAIN-SUFFIX,baidu.com,DIRECT",
"DOMAIN-SUFFIX,baidu.cn,DIRECT",
"DOMAIN-SUFFIX,baidustatic.com,DIRECT",
"DOMAIN-SUFFIX,bdstatic.com,DIRECT",
"DOMAIN-SUFFIX,bdimg.com,DIRECT",
"DOMAIN-SUFFIX,bcebos.com,DIRECT",
"DOMAIN-SUFFIX,baidubce.com,DIRECT",
"DOMAIN,miwifi.com,DIRECT",
"DOMAIN-SUFFIX,miwifi.com,DIRECT",
"PROCESS-NAME,AweSun,DIRECT",
"PROCESS-NAME,AweSun_Helper,DIRECT",
"PROCESS-NAME,AweSun_Desktop,DIRECT",
"PROCESS-NAME,awesun-mcp-server,DIRECT",
"DOMAIN-SUFFIX,oray.com,DIRECT",
"DOMAIN-SUFFIX,oray.cn,DIRECT",
"DOMAIN-SUFFIX,oray.net,DIRECT",
"DOMAIN-SUFFIX,orayimg.com,DIRECT",
"DOMAIN-SUFFIX,sunlogin.cn,DIRECT",
"DOMAIN-SUFFIX,sunlogin.net,DIRECT",
"PROCESS-PATH-REGEX,^/Applications/WeChat\\.app/,DIRECT",
"DOMAIN-SUFFIX,weixin.qq.com,DIRECT",
"DOMAIN-SUFFIX,wx.qq.com,DIRECT",
"DOMAIN-SUFFIX,weixin110.qq.com,DIRECT",
"DOMAIN-SUFFIX,wechat.com,DIRECT",
"DOMAIN-SUFFIX,servicewechat.com,DIRECT",
"DOMAIN-SUFFIX,weixinbridge.com,DIRECT",
"DOMAIN-SUFFIX,wechatpay.com,DIRECT",
"DOMAIN-SUFFIX,tenpay.com,DIRECT",
"DOMAIN-SUFFIX,qpic.cn,DIRECT",
"DOMAIN-SUFFIX,qlogo.cn,DIRECT",
]);
// Anthropic / Claude 最后 unshift,确保位于规则表首位
const group = pickProxyGroup(config);
if (group) {
const domains = [
"claude.ai",
"claude.com",
"claudeusercontent.com",
"anthropic.com",
"anthropic.ai",
"anthropicusercontent.com",
];
prependMissing(rules, domains.map((d) => "DOMAIN-SUFFIX," + d + "," + group));
const orList = domains.map((d) => "(DOMAIN-SUFFIX," + d + ")").join(",");
prependMissing(rules, ["AND,((NETWORK,udp),(OR,(" + orList + "))),REJECT"]);
}
return config;
}
```
在 Windows 上,脚本需要按下面修改:
- 把 "PROCESS-PATH-REGEX,^/Applications/WeChat\\.app/,DIRECT" 替换为 "PROCESS-NAME,WeChat.exe,DIRECT"、"PROCESS-NAME,Weixin.exe,DIRECT"、"PROCESS-NAME,WeChatAppEx.exe,DIRECT" 三条。
- 向日葵的 4 条 PROCESS-NAME 规则,进程名都加 .exe 后缀。
- 安装后用任务管理器核对实际进程名,以实际名称为准。
在 Linux 上,删除微信和向日葵的进程规则,保留域名规则。
## 4. DNS 覆写:写入 $DIR/dns_config.yaml
```yaml
dns:
enable: true
ipv6: false
listen: :53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-range6: fdfe:dcba:9876::1/64
fake-ip-filter-mode: blacklist
fake-ip-filter:
- '*.lan'
- '*.local'
- '*.arpa'
- 'time.*.com'
- 'ntp.*.com'
- '+.market.xiaomi.com'
- localhost.ptlogin2.qq.com
- '*.msftncsi.com'
- www.msftconnecttest.com
- miwifi.com
- '*.miwifi.com'
- '+.oray.com'
- '+.oray.cn'
- '+.oray.net'
- '+.sunlogin.cn'
- '+.sunlogin.net'
- '+.orayimg.com'
default-nameserver:
- system
- 223.6.6.6
- 8.8.8.8
- 2400:3200::1
- 2001:4860:4860::8888
nameserver:
- 8.8.8.8
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
proxy-server-nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- tls://223.5.5.5
direct-nameserver: []
direct-nameserver-follow-policy: false
nameserver-policy:
'+.deepseek.com':
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
'+.miwifi.com':
- 192.168.31.1
miwifi.com:
- 192.168.31.1
fallback: []
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
- 0.0.0.0/32
domain:
- +.google.com
- +.facebook.com
- +.youtube.com
prefer-h3: false
respect-rules: false
use-hosts: false
use-system-hosts: false
```
192.168.31.1 是我家小米路由器的地址。这台电脑的局域网网关不是 192.168.31.1 时,删除 miwifi 相关的两条 nameserver-policy,然后告诉我。
## 5. 应用设置:只改 $DIR/verge.yaml 中的以下键,其他键保持原样
```yaml
clash_core: verge-mihomo
enable_tun_mode: true
enable_system_proxy: false
enable_dns_settings: true
enable_builtin_enhanced: true
auto_close_connection: true
enable_auto_launch: false
enable_external_controller: false
verge_mixed_port: 7897
verge_redir_enabled: false
verge_socks_enabled: false
verge_http_enabled: false
```
另外在 verge.yaml 的 profile_dns_settings 下,为 xuxiaole 订阅的 uid 加上 enabled: true。
内核相关设置可以在图形界面"设置 → Clash 设置"里核对:
- 模式:规则模式(mode: rule)
- 局域网连接:关
- IPv6:开
- 统一延迟:开
- TUN:gvisor 栈,开启 auto-route、auto-detect-interface,关闭 strict-route,dns-hijack 为 any:53
## 6. 启动与验证
1. 重新打开 Clash Verge。第一次开启 TUN 时需要安装服务模式,提示我在界面里授权。
2. 在订阅页右键 xuxiaole,选择"更新",触发重新生成配置。
3. 读取 $DIR/clash-verge.yaml,核对 rules 段(脚本生成的规则排在订阅规则扩展之前):
- 第 1 条是 AND,((NETWORK,udp),(OR,(...claude/anthropic 6 个域名...))),REJECT
- 第 2–7 条是 6 个 Claude / Anthropic 域名 → PROXY
- 接着依次是 DeepSeek、滴滴、QQ 邮箱、百度、miwifi、向日葵、微信的直连规则
- 然后是第 1 步的 gov.cn 到 beian.gov.cn 共 11 条直连规则
- 最后两条是 IP-CIDR,【你的服务器 IP】/32,DIRECT,no-resolve 和 MATCH,PROXY
同时核对 tun.enable 为 true,dns 段与第 4 步一致。
4. 实测以下 3 项:
- curl -I https://claude.ai 能通
- curl https://ipinfo.io 显示的出口 IP 是 【你的服务器 IP】
- 访问 baidu.com 走直连(在 Clash Verge 的"连接"页看到规则命中 DIRECT)
5. 最后汇报:改了哪些文件、规则核对结果、3 项实测结果,以及因操作系统不同做了哪些改动。如果你之前有被封禁的Claude账号,需要先清理掉Claude的使用痕迹,这一点可以让Codex/workbuddy代劳,不过关键的几点:
- 浏览器及其插件都需要退出登录,并清除Claude的使用痕迹。
- 删除设备指纹。
- 清理macOS 钥匙串,删掉 Keychain 里的 Claude Code-credentials 与 Claude Safe Storage。
- iPhone 必须彻底删除 App 重装。
通过https://ip.net.coffee/claude/ 检测环境的纯净度,尽量让所有项目都变绿。
登录claude.ai,注册一个Claude账号;
在本机电脑下载安装并登录Claude客户端。
(可选)注册、认证、充值一个境外银行卡,可选银行卡有biyapay(优先推荐),bybit,starryblu,bitget wallet:
- biyapay的注册教程参考:https://www.youtube.com/watch?v=Hjx1cCEu_bE
- 需要通过虚拟货币入金,最简单的方式就是找个有虚拟货币的人,你给他人民币,他给你U。
通过境外银行卡为Claude充值,接下来就可以开始使用了Claude code了。