使用Nginx接管XrayR后端的TLS
!本方法弊端太大,本文章已废弃不推荐使用。。
📢注意:本教程仅用于技术研究与学习交流,禁止任何违法用途。使用本教程的所有责任由使用者自行承担,作者不对因使用本教程导致的任何法律后果负责。
请严格遵守中国相关法律法规,包括但不限于《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国电信条例》等,不得利用本教程进行任何违反国家法律、危害网络安全或侵犯他人权益的行为。
若您在使用过程中涉及实际网络环境部署,请确保遵循当地法律法规,并获得必要的许可。如因违反相关规定导致法律责任,均与本教程作者无关。
- 首先,确保你已经安装了 nginx,然后编辑配置文件(一般是
/etc/nginx/nginx.conf
或/etc/nginx/conf.d/yourdomain.conf
)。
示例配置(假设你的 XrayR 运行在 127.0.0.1:10086):
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:10086;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
📌 注意
• ssl_certificate
和 ssl_certificate_key
需要替换成你自己的证书路径
• proxy_pass 指向你的 XrayR 监听的 HTTP 或 WS 端口(确保 XrayR 监听的是 127.0.0.1,避免公网暴露)
- 配置 XrayR
修改 XrayR 配置文件(一般是/etc/XrayR/config.yml
),让它 不再处理 TLS,而是监听 Nginx 代理过来的 HTTP/WS 流量。
示例如下:
Log:
Level: info
AccessPath:
ErrorPath:
DnsConfigPath:
Nodes:
- PanelType: "V2board"
ApiConfig:
ApiHost: "https://yourpanel.com"
ApiKey: "your_api_key"
NodeID: 1
NodeType: V2ray
ControllerConfig:
ListenIP: 0.0.0.0
EnableDNS: false
DisableSniffing: true
CertConfig:
CertMode: none # 这里设为 "none",TLS 交由 Nginx 处理
FallBackConfig:
Enable: false
V2rayConfig:
Vless:
Enable: true
Flow: ""
Vmess:
Enable: true
Trojan:
Enable: false
Shadowsocks:
Enable: false
📌 注意
• CertConfig.CertMode: none(XrayR 关闭 TLS)
• ControllerConfig.ListenIP: 0.0.0.0(如果 XrayR 和 Nginx 在同一台服务器上,建议改成 127.0.0.1)
• V2rayConfig 里 启用 VLESS / VMESS,但不使用 TLS
- 重新启动服务
最后,应用你的更改:
systemctl restart nginx
systemctl restart XrayR
ps:这个方法有一个缺点,如果你使用Xboard等工具来实现一键订阅,会出现无法使用节点的问题,需要手动在客户端开启TLS。