如何获取用户的真实IP地址?
操作存在一定风险,建议备份环境,并在不影响业务的时候进行。
方式一:安装toa模块
通用高防获取真实IP地址, 可以在您的源站服务器上加载云知芯专有的内核模块,让应用直接获取到源IP,这时候,再去查看日志,就是访问者的真实IP了。
由于经过加速,在日志中看到的访问者IP全部变为PathX的出口IP。
如果需要获取真实的客户端IP, 可以在您的源站服务器上加载云知芯专有的内核模块,让应用直接获取到源IP,这时候,再去查看日志,就是访问者的真实IP了。
Linux系统
64位的linux系统可运行"modprobe toa"尝试加载模块,成功后无需其他操作。
如提示未找到该模块,可按如下步骤进行手工编译与加载:
- 查看当前内核版本号,确认依赖"kernel-devel、kernel-headers"是否安装以及版本号是否与内核一致('uname -r && rpm -qa |egrep 'kernel-devel|kernel-headers'):
- 若一致,跳过步骤2,进行toa模块的编译安装
- 若不一致,如下图:
需要卸载后进行步骤2操作(rpm -e --nodeps kernel-devel kernel-headers)
- 若未安装依赖,如下图:
2. yum搜索是否有与当前内核版本对应的‘kernel-devel、kernel-headers’包
- 若有,则安装对用版本(yum install pkgname-version.x86_64)
- 若无,如下图
则打开网站http://rpm.pbone.net,点击左侧SEARCH标签,填入包名+版本号(如:kernel-devel-3.10.0-693.11.6.el7.x86_64),选择对应的系统发行版本(此处为CentOS7),点击搜索
搜索结果:
或使用谷歌用关键字“rpm.pbone.net kernel-devel-3.10.0-693.11.6.el7.x86_64”搜索
下载后rpm方式安装,kernel-headers的安装同理
确认安装结果('uname -r && rpm -qa |egrep 'kernel-devel|kernel-headers'),如下图:
3. 下载linux通用版的源码包,该版本支持Centos 6.9和Centos 7、ubuntu 14.04等绝大多数的linux发行版:
国内:
wget http://pathx.ufile.auto-ai.com.cn/linux_toa.tar.gz
国外:
wget http://toa.ufile.auto-ai.com.cn/linux_toa.tar.gz
4. 编译加载
yum install -y gcc tar -zxvf linux_toa.tar.gz cd linux_toa make mv toa.ko /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko insmod /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko
toa模块安装验证如下(lsmod |grep toa):
5. 添加开机模块自动加载
echo "insmod /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko" >> /etc/rc.local
- nginx 环境下,直接在nginx 日志中查看真实访问者地址
日志路径: /var/log/nginx/access.log
- apache环境下,直接在apache日志中查看真实访问者地址
日志路径:/etc/httpd/logs/access_log
- 其他web配置环境, 采用同样方法在相关web 日志文件中检查即可
方式二:搭配UWAF一起使用
如果不满足方式一的要求,还可以购买UWAF搭配一起使用。将域名先解析到高防,源站指定为uwaf的IP。 操作参见此处。