Skip to content

[bug] grpc 不接受来自 X-Real-IP 的 ip 作为客户端 ip #1026

@rhjdvsgsgks

Description

@rhjdvsgsgks

你正在使用哪个版本的 V2Ray?

4.38.3

你的使用场景是什么?

使用 nginx 反代 v2ray 提供的 grpc ,使用 X-Real-IP 传入真实客户端地址

你看到的异常现象是什么?

v2ray log 中客户端地址显示为 127.0.0.1

你期待看到的正常表现是怎样的?

像 websocket 一样将 X-Real-IP 提供的地址作为客户端 ip

请附上你的配置

服务端配置:

{
  "sniffing": {
    "enabled": true,
    "destOverride": [
      "http",
      "tls"
    ]
  },
  "listen": "127.0.0.1",
  "port": 123,
  "protocol": "vmess",
  "settings": {
    "clients": [
      {}
    ],
    "disableInsecureEncryption": true
  },
  "streamSettings": {
    "network": "grpc",
    "grpcSettings": {
      "serviceName": "aaa"
    },
    "sockopt": {
      "tcpFastOpen": true
    }
  },
  "tag": "grpc"
}

客户端配置:

{
  "protocol": "vmess",
  "settings": {
    "vnext": [
      {
        "address": "x.x.x.x",
        "port": 443,
        "users": [
          {}
        ]
      }
    ]
  },
  "streamSettings": {
    "grpcSettings": {
      "serviceName": "aaa"
    },
    "network": "grpc",
    "security": "tls",
    "tlsSettings": {
      "serverName": "aaa.bb"
    }
  },
  "tag": "proxy"
}

请附上出错时软件输出的错误日志

服务器端错误日志:

客户端错误日志:

请附上访问日志

127.0.0.1:xxxxx accepted tcp:www.google.com:80 email:xxx

其它相关的配置文件(如 Nginx)和相关日志

nginx.site.conf

location /aaa {
        grpc_pass grpc://127.0.0.1:123;
        grpc_set_header Host $http_host;
        grpc_set_header X-Real-IP $remote_addr;
        grpc_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

grpc/grpc-go#3121

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions