本文介绍了将业务接入游戏盾防护后,如何获取客户端的真实IP。

背景介绍

游戏盾是FullNat代理模式,经过游戏盾的请求,其客户端的IP地址会变成游戏盾的IP地址。针对有获取客户端真实IP需求的游戏盾用户,本文提供了获取客户端IP的解决方案。

实现原理

游戏盾通过TCP协议的Option字段来携带和传递客户端的IP信息,俗称TOA。由于游戏盾的TOA协议格式属于游戏盾专有,服务器需要集成游戏盾提供的TOA模块才能获取客户端IP信息。游戏盾TOA模块支持通过应用层Hook的方式(无需修改代码)进行集成。
  • Linux

    Linux服务器环境需要安装应用层Hook-Toa模块。更多信息,请参见Linux

  • Windows

    Windows服务提供了部分程序的应用层Hook-Toa模块。更多信息,请参见Windows

部署架构支持情况

场景 支持的架构 不支持的架构
四层TCP协议获取客户端真实IP
  • 游戏盾->阿里云服务器、非阿里云服务器
  • 游戏盾->阿里云SLB-4层转发->阿里云服务器
游戏盾->非阿里云SLB-4层转发->服务器
七层HTTP、HTTPS协议获取客户端真实IP
  • 游戏盾->阿里云服务器、非阿里云服务器
  • 游戏盾->阿里云SLB-4层转发->阿里云服务器
  • 游戏盾->阿里云SLB-7层转发(包含WAF、高防IP的7层接入)->阿里云服务器
  • 游戏盾->非阿里云SLB-4、7层转发->服务器
说明 游戏盾是四层转发,不托管HTTPS证书,无法查看您HTTPS数据流中的数据信息。所以,七层协议获取客户端真实IP不是通过XFF字段获取的,是通过在服务端的TOA模块适配直接获取客户端真实IP。