V2Ray 的核心配置文件 `config.json` 决定了流量如何被路由、加密和传输。很多用户在初次配置时,常因协议类型混淆、传输层参数错误或路由规则冲突导致连接失败或速度异常。本文聚焦于 V2Ray 核心参数的实际配置逻辑,详细拆解 inbound、outbound、routing 等关键模块的作用机制,并提供针对常见问题的排查与优化步骤。
理解配置文件的基本结构
V2Ray 的配置文件是一个标准的 JSON 格式文件,其结构清晰且层级分明。理解这一结构是正确配置的前提。一个典型的配置文件包含以下几个主要部分:
• log:日志配置,控制日志的输出级别和路径。
• dns:DNS 服务器配置,用于域名解析。
• inbounds:入站连接配置,定义客户端如何连接 V2Ray 服务端。
• outbounds:出站连接配置,定义 V2Ray 服务端如何连接目标网络。
• routing:路由规则配置,决定流量如何处理(直连、代理或分流)。
• policy:策略配置,控制连接的生命周期和资源限制。
• transport:全局传输配置,定义底层传输协议(如 TCP、WebSocket、mKCP 等)。
在配置时,需确保 JSON 语法正确,特别是逗号和括号的匹配。任何语法错误都会导致 V2Ray 无法启动。
Inbound 配置详解:接收流量的入口
Inbound 是 V2Ray 接收客户端连接的部分。最常见的协议类型包括 VMess、VLESS、Trojan 和 Shadowsocks。以下以 VMess 为例,解析关键参数:
“`json
“inbounds”: [
{
“port”: 443,
“protocol”: “vmess”,
“settings”: {
“clients”: [
{
“id”: “uuid-string”,
“level”: 1,
“alterId”: 64
}
]
},
“streamSettings”: {
“network”: “tcp”,
“security”: “tls”
}
}
]
“`
• port:监听端口。通常选择 443(HTTPS)或 80(HTTP)以降低被识别的风险,但需确保端口未被其他服务占用。
• protocol:协议类型。VMess 是 V2Ray 原生协议,安全性较高;VLESS 是无状态版本,性能更优;Trojan 基于 TLS,伪装性强。
• clients:用户列表。每个用户需要一个唯一的 UUID(`id`)。`level` 控制用户权限(0 为管理员,1 为普通用户),`alterId` 用于 VMess 协议的身份验证,值越大越安全但性能略降。
• streamSettings:传输层设置。`network` 指定传输方式(tcp、kcp、ws、h2 等),`security` 指定加密方式(tls、none)。使用 TLS 可防止中间人攻击,但需配置证书。
Outbound 配置详解:发出流量的出口
Outbound 定义 V2Ray 如何连接外部网络。通常只需配置一个出站,但可通过路由规则实现分流。
“`json
“outbounds”: [
{
“protocol”: “vmess”,
“settings”: {
“vnext”: [
{
“address”: “example.com”,
“port”: 443,
“users”: [
{
“id”: “uuid-string”,
“alterId”: 64
}
]
}
]
},
“streamSettings”: {
“network”: “ws”,
“wsSettings”: {
“path”: “/realpath”
},
“security”: “tls”
}
},
{
“protocol”: “freedom”,
“tag”: “direct”
}
]
“`
• vnext:目标服务器信息。`address` 是域名或 IP,`port` 是端口,`users` 包含认证信息。
• streamSettings:出站传输设置。若使用 WebSocket(ws),需配置 `wsSettings` 中的 `path`,该路径需与入站一致。
• freedom:直连协议。用于未被路由规则拦截的流量,直接连接目标地址。必须配置 `tag` 以便在 routing 中引用。
Routing 配置详解:流量分流策略
Routing 是 V2Ray 的核心功能之一,可实现智能分流,提升性能和隐私。
“`json
“routing”: {
“rules”: [
{
“type”: “field”,
“domain”: [“geosite:cn”],
“outboundTag”: “direct”
},
{
“type”: “field”,
“ip”: [“geoip:private”],
“outboundTag”: “direct”
},
{
“type”: “field”,
“protocol”: [“bittorrent”],
“outboundTag”: “direct”
},
{
“type”: “chinaserver”,
“outboundTag”: “proxy”
}
]
}
“`
• rules:规则列表,按顺序匹配。
• domain:按域名匹配。可使用 `geosite:cn` 匹配中国域名,`geosite:google` 匹配 Google 域名等。
• ip:按 IP 匹配。`geoip:private` 匹配私有 IP(如 192.168.x.x),避免代理内网流量。
• protocol:按协议匹配。如 `bittorrent` 可避免 P2P 流量走代理。
• chinaserver:特殊规则,匹配中国大陆 IP,通常用于直连。
Transport 配置详解:优化传输性能
Transport 配置可优化传输效率和隐蔽性。常见选项包括:
• TCP:默认传输,稳定但易被识别。可通过 `tcpSettings` 修改头部伪装(如 HTTP 伪装)。
• WebSocket:将流量封装为 WebSocket,易通过 CDN 和防火墙。需配置 `wsSettings` 中的 `path` 和 `headers`。
• mKCP:基于 UDP 的传输,低延迟但带宽有限。适合移动端。需配置 `kcpSettings` 中的 `mtu`、`tti`、`uplinkCapacity` 等。
• HTTP/2:高隐蔽性,需配置 `h2Settings` 中的 `host` 和 `path`。
常见配置错误与排查
| 错误现象 | 可能原因 | 解决步骤 |
|---|---|---|
| 连接超时 | 端口未开放、防火墙拦截、网络不通 | 检查端口是否在防火墙中放行;确认服务器 IP 和端口正确;测试网络连通性。 |
| 连接被拒 | UUID 错误、协议不匹配、端口错误 | 核对客户端与服务端的 UUID、协议类型、端口是否一致;检查 `streamSettings` 配置。 |
| 速度极慢 | 传输协议不当、节点负载高、距离远 | 尝试切换传输协议(如 WS 到 TCP);更换节点;检查服务器负载。 |
| DNS 解析失败 | DNS 配置错误、未设置 DNS | 在 `dns` 部分添加可靠的 DNS 服务器(如 8.8.8.8);确保 DNS 可达。 |
| 路由不生效 | 规则顺序错误、标签不匹配 | 检查 routing 规则顺序,确保 `direct` 规则在 `proxy` 之前;确认 outbound tag 一致。 |
高级配置技巧
• 多协议共存:可在同一端口监听多个协议,通过 `mux` 或 `domain` 区分。
• CDN 隐藏:使用 WebSocket + TLS + CDN,将流量伪装为正常 HTTPS 请求。
• 动态端口:通过脚本动态分配端口,增加被封风险。
• 负载均衡:配置多个 outbound,通过 routing 实现流量分发。
验证配置是否成功
• 语法检查:使用 `v2ctl config format` 命令验证 JSON 语法。
• 启动测试:运行 `v2ray -config config.json`,观察日志输出。
• 连接测试:使用客户端连接,检查是否能正常代理。
• 速度测试:访问测速网站,评估延迟和带宽。
总结
V2Ray 核心参数配置涉及多个模块的协同工作。正确配置 inbound、outbound、routing 和 transport 是实现稳定代理的关键。建议从基础配置开始,逐步优化传输和路由策略。遇到问题时,通过日志和排查步骤定位原因。配置过程中,需注意安全设置(如 TLS)和隐私保护(如 DNS 加密),以提升整体体验。