V2ray 服务端配置文件详解:从零理解 config.json 结构
如果你最近在折腾虚拟币,大概率会遇到一个尴尬:交易所 App 能打开,但行情页刷新转圈;链上钱包能广播交易,但区块浏览器查一笔确认数要等半分钟。原因不复杂——很多地区对金融类域名的 QoS 策略比普通网站严格得多。于是不少人开始自建 V2ray 节点,把行情、链上数据、社群消息的流量做分流。而自建节点的第一道门槛,不是买服务器,也不是选协议,而是看懂服务端那个 config.json。
这篇文章不打算给你一个“复制粘贴就能跑”的配置模板。那种东西网上太多了,但一旦出问题,你连日志都读不懂。我们要做的是:把 V2ray 服务端配置文件的每一层结构拆开,告诉你每个字段为什么存在、不写会怎样、写错了会报什么错。同时,我会把虚拟币场景下的实际需求嵌进去——比如为什么炒币用户特别在意 sniffing、为什么 routing 规则里要单独给币安和 OKX 留一条直连、为什么 mux 在链上数据同步时反而可能帮倒忙。
一、先搞清楚 V2ray 服务端到底在做什么
很多人把 V2ray 当成“翻墙工具”,这个理解太窄了。V2ray 本质上是一个模块化的网络代理平台。服务端 config.json 的核心任务只有三件事:
- 定义入口(inbounds):客户端从哪里连进来,用什么协议、什么端口、什么加密方式。
- 定义出口(outbounds):流量最终怎么出去,是直连、走代理、还是黑洞掉。
- 定义路由(routing):什么流量走哪个入口、哪个出口,以及要不要做域名嗅探、IP 分流。
在虚拟币场景里,这三件事对应得非常具体。入口决定了你手机上的 V2ray 客户端能不能稳定握手;出口决定了你访问币安 API 时是走美国节点还是日本节点;路由决定了你查以太坊浏览器时是直连还是绕道,直接影响你看到 gas 费的时间差。
二、config.json 的顶层结构:五个必须存在的字段
一个合法的服务端配置,顶层至少要有 log、inbounds、outbounds、routing、policy 这五个部分。少一个,V2ray 启动时就会给你颜色看。
2.1 log:别小看日志,它决定了你爆仓后能不能复盘
"log": { "access": "/var/log/v2ray/access.log", "error": "/var/log/v2ray/error.log", "loglevel": "warning" } access 记录每一次连接,error 记录错误。loglevel 有五个级别:debug、info、warning、error、none。很多教程让你设成 warning,理由是省磁盘。但如果你在跑网格交易机器人,或者用脚本监控链上大额转账,建议临时设成 info。为什么?因为当你的机器人突然报“连接超时”时,warning 级别不会告诉你到底是 DNS 解析失败还是 TLS 握手被重置。而这两种情况在虚拟币场景下的处理方式完全不同:前者要换 DNS,后者要换伪装域名。
另外提醒一句:日志文件别放在系统盘。虚拟币用户往往同时跑多个节点和监控脚本,日志量比你想象的大。挂载一个独立的数据盘,或者至少用 logrotate 做切割。
2.2 inbounds:入口配置,决定客户端能不能连上
服务端通常只开一个入口,但协议选择很关键。目前主流是 VMess + WebSocket + TLS,或者 VLESS + TCP + XTLS。对于炒币用户,我强烈建议用 VLESS + WebSocket + TLS,原因后面讲。
"inbounds": [ { "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "你的UUID", "flow": "xtls-rprx-vision" } ], "decryption": "none" }, "streamSettings": { "network": "ws", "security": "tls", "tlsSettings": { "certificates": [ { "certificateFile": "/etc/v2ray/cert.pem", "keyFile": "/etc/v2ray/key.pem" } ] }, "wsSettings": { "path": "/你的路径" } }, "sniffing": { "enabled": true, "destOverride": ["http", "tls"] } } ] 逐字段拆解:
- port:443 是最佳选择。不是因为它快,而是因为它最不显眼。虚拟币用户经常在公共 Wi-Fi 下操作,443 端口和普通 HTTPS 流量混在一起,不容易被针对性阻断。
- protocol:VLESS 比 VMess 轻量,没有额外的加密层,延迟更低。对于需要快速刷新行情的场景,几十毫秒的差距可能就决定了你挂单能不能排在前面。
- flow:
xtls-rprx-vision是目前最推荐的流控方式,能有效对抗 TLS-in-TLS 检测。如果你还在用xtls-rprx-direct,建议尽快换掉,那个已经被识别得很厉害了。 - decryption:VLESS 不需要额外加密,固定写
none。 - sniffing:这是虚拟币场景下的重点。开启后,V2ray 会从 TLS 握手包里提取 SNI,从 HTTP 请求里提取 Host。这样你才能在 routing 里根据域名做分流。比如让
binance.com走美国节点,让okx.com走日本节点,让etherscan.io直连。不开启 sniffing,routing 里的域名规则全部失效,只能按 IP 分流,而币安这种站点的 IP 经常变,按 IP 分流等于没分。
2.3 outbounds:出口配置,决定流量最终去哪
服务端通常配置两个出口:一个 freedom 用于直连,一个 blackhole 用于屏蔽。如果你要用链式代理,还可以加一个 socks 或 shadowsocks 出口。
"outbounds": [ { "protocol": "freedom", "settings": {}, "tag": "direct" }, { "protocol": "blackhole", "settings": {}, "tag": "blocked" } ] tag 是路由规则的抓手。后面在 routing 里写 "outboundTag": "direct",就是让匹配到的流量走直连。对于虚拟币用户,freedom 出口有一个隐藏参数值得关注:domainStrategy。默认是 AsIs,意思是按系统 DNS 解析结果直接连。但如果你在服务器上跑链上节点,比如以太坊的 geth,它需要频繁解析 mainnet.infura.io 这类域名。建议把 domainStrategy 设为 UseIP,强制 V2ray 自己解析域名,避免系统 DNS 被污染导致连到错误的 IP。
2.4 routing:分流规则,虚拟币用户的主战场
这是整个配置文件里最灵活、也最容易写错的部分。一个典型的虚拟币场景路由规则长这样:
"routing": { "domainStrategy": "IPIfNonMatch", "rules": [ { "type": "field", "domain": ["geosite:category-ads-all"], "outboundTag": "blocked" }, { "type": "field", "domain": ["binance.com", "binance.us"], "outboundTag": "direct" }, { "type": "field", "domain": ["okx.com", "oklink.com"], "outboundTag": "direct" }, { "type": "field", "domain": ["etherscan.io", "bscscan.com", "solscan.io"], "outboundTag": "direct" }, { "type": "field", "ip": ["geoip:private"], "outboundTag": "blocked" } ] } 逐条解释:
- 第一条:屏蔽广告域名。虚拟币用户经常访问各种行情站和空投查询站,这些站点的广告联盟往往包含恶意脚本,屏蔽掉能减少被钓鱼的风险。
- 第二、三条:币安和 OKX 的域名走直连。为什么?因为你的服务器如果在日本,而币安对日本 IP 的风控策略和美国 IP 完全不同。直连意味着用你本地的网络出口去访问,风控画像更稳定。当然,前提是你本地网络能正常访问这些交易所。如果本地被墙,那就不能直连,必须走代理。所以这条规则要根据你的实际网络环境调整。
- 第四条:区块浏览器直连。etherscan 这类站点对代理 IP 不太友好,经常弹验证码。直连能省去很多麻烦。
- 第五条:私有 IP 屏蔽。防止内网探测。
还有一个关键字段:domainStrategy。它有三个值:AsIs、IPIfNonMatch、IPOnDemand。对于虚拟币用户,推荐 IPIfNonMatch。意思是先按域名匹配,匹配不上再解析成 IP 去匹配 IP 规则。这样既能享受域名分流的精准,又能兜底处理那些没有域名的纯 IP 连接,比如某些链上节点的 P2P 连接。
2.5 policy:策略配置,影响连接数和缓冲区
"policy": { "levels": { "0": { "handshake": 4, "connIdle": 300, "uplinkOnly": 2, "downlinkOnly": 5, "statsUserUplink": false, "statsUserDownlink": false, "bufferSize": 10240 } }, "system": { "statsInboundUplink": false, "statsInboundDownlink": false } } 这些参数对虚拟币用户的实际影响:
- handshake:握手超时时间,默认 4 秒。如果你在跑高频交易脚本,建议改成 2 秒。超过 2 秒还没握手成功,说明线路质量已经不行了,早点断开重连比死等更划算。
- connIdle:连接空闲超时,默认 300 秒。对于需要保持长连接的 WebSocket 行情推送,这个值可以适当调大,比如 600 秒。但别太大,否则服务器资源会被僵尸连接占满。
- bufferSize:缓冲区大小,默认 10KB。如果你在同步链上数据,比如从 Infura 拉取大区块,可以调到 512KB 甚至 1MB。但注意,这个值不是越大越好,太大会增加内存占用,小内存 VPS 容易 OOM。
三、虚拟币场景下的三个进阶配置
3.1 mux:多路复用,用对了省资源,用错了掉行情
mux 在客户端配置里更常见,但服务端也有对应参数。它的作用是把多个逻辑连接复用到一个 TCP 连接上,减少握手开销。对于浏览网页,这很有用。但对于虚拟币行情推送,我建议关闭 mux。为什么?因为 mux 会导致队头阻塞。一个连接里混了行情推送和普通网页请求,网页请求卡住,行情推送也得等着。在币价剧烈波动时,几秒钟的延迟可能就是几个点的差距。
3.2 DNS:别让 DNS 泄露你的炒币习惯
服务端的 DNS 配置在 dns 字段里,虽然顶层不是必须,但强烈建议加上:
"dns": { "servers": [ { "address": "1.1.1.1", "domains": ["geosite:geolocation-!cn"] }, { "address": "8.8.8.8", "domains": ["binance.com", "okx.com"] } ] } 这样配置的好处是:访问交易所域名时用 Google DNS,避免本地 DNS 污染;访问其他境外站点用 Cloudflare DNS,速度快。注意,DNS 查询本身也会走路由规则,所以别把 DNS 服务器配成被屏蔽的地址。
3.3 流量统计:如果你要按流量计费给朋友用
虚拟币圈子里经常有几个人合租一台服务器的情况。这时候 stats 和 policy 里的统计开关就派上用场了。打开 statsUserUplink 和 statsUserDownlink,V2ray 会按用户记录流量。配合 API 接口,你可以写个脚本每天导出流量报表,按 USDT 结算。这比用第三方面板更安全,因为数据完全在自己手里。
四、常见错误与排查思路
最后说几个虚拟币用户最容易踩的坑:
- 启动报错 “failed to parse config”:90% 是 JSON 格式问题。少逗号、多逗号、用了中文引号。建议用
jq . config.json检查一遍。 - 客户端连上但无法访问币安:先看日志里有没有
sniffing相关报错。如果 sniffing 没开,routing 里的域名规则全部不生效,流量会走默认出口。默认出口如果是blocked,那就什么都打不开。 - 链上数据同步极慢:检查
bufferSize和connIdle。另外,如果你用了mux,先关掉试试。 - 交易所弹出验证码:说明你的代理 IP 被风控了。这时候要么换 IP,要么把该交易所的域名改成直连。但直连的前提是你本地网络能访问。
配置文件不是背出来的,是改出来的。每改一个字段,重启一次服务,看一次日志,观察一次行情刷新速度。慢慢地,你就会形成自己的配置模板——那个模板里,藏着你对自己网络环境的理解,也藏着你在虚拟币市场里对速度和安全的那点执念。
版权申明:
作者: V2ray是什么?
链接: https://whatisv2ray.com/v2ray-server-setup/v2ray-config-json-explained.htm
来源: V2ray是什么?
文章版权归作者所有,未经允许请勿转载。
热门博客
最新博客
- V2ray 服务端配置文件详解:从零理解 config.json 结构
- V2ray XTLS 性能优化技巧与最佳实践
- V2ray 的自适应网络功能是什么?动态调整机制解析
- V2ray 与 OpenVPN 在企业部署上的区别
- V2ray 客户端安装后如何导入二维码配置
- V2ray 的代理运行方式是什么?完整工作原理解析
- V2ray gRPC 在 DPI 检测环境下的表现分析
- V2ray 与 Clash 协议在不同节点下的性能差异解析
- Windows V2ray 全局代理与分流模式设置方法
- 什么是反向代理?服务器架构中的常见术语全面解读
- iOS 系统 V2ray 客户端配置文件 JSON 解析及优化
- V2ray WebSocket 优化设置提升稳定性的技巧
- V2ray 服务端生产环境部署最佳实践总结
- V2ray 服务器端口未开放导致失败解决方法
- V2ray 的多协议支持是如何实现的?原理全面解读
- V2rayN 节点导入与订阅更新全流程图文教程
- V2ray DNS over TLS 在审查绕过中的作用
- 安卓 V2ray 客户端订阅链接导入后的节点流量分配配置
- V2ray 在科学上网中的应用全面解析:原理、场景与实际使用方法
- Sing-Box 与 V2ray 在智能路由能力上的对比