Conversation
|
考虑到不套 cdn nginx 的情况,我改成了现在这样 |
|
gRPC 那边用的是 这四个传输层都同时兼容这两种? |
不行,会有优先级问题、伪造问题,话说 gRPC 的话 CF 加的是 |
|
有人用 大家约定俗成的语义是 而 |
|
所以 gRPC 过 CF 加的到底是哪个?XHTTP stream-up/one 呢? |
|
不知道啊,那就 X-Real-IP 给 gRPC,其他还是 XFF? |
|
|
|
首先我得有一个 CF 账号。。。 |
|
当前代码是: 连接时如果用户没配 trusted,用 conn 的 IP 如果配了 trusted,不符合警告有人伪造;符合优先用 XRI,否则 XFF[0] 我看 nginx 默认值是 X-Real-IP |
|
盲猜 CF 给 gRPC 加的是 所以就只留它吧,搞两个问题太多 |
|
另外我搜到了几年前的讨论 v2fly/v2ray-core#1026 ,你测下每一级到底是往开头加还是 append,必须只信任最后一级加的 |
|
晚点我弄一下 |
约定俗成的都是用 |
|
看了下,虽然对于 XHTTP/3 应当是 UDPAddr,但是毕竟反代后的接收栈目前都是 TCP 所以还行吧
最后总结下这个 PR,对于 XHTTP & WS & HU & gRPC 服务端:若未配置 对于又有 CDN 又有 Nginx 又有直连,建议 Nginx 到 Xray-core 用 PROXY protocol 传递真实 IP,而不是把 CDN 的 XFF 顶掉 |
trustedXForwardedFor for X-Forwarded-Forsockopt.trustedXForwardedFor
#6258 (comment)