如果您为阿里云云外主机配置了DDoS高防,您可以使用本文介绍的方法来获取真实客户端源IP。

前提条件

本文介绍的方法支持以下操作系统:
  • Redhat Linux
  • Centos 6.x
  • Centos 7.x

注意事项

  • 建议您先在测试环境中进行测试,观察环境稳定后再部署正式上线。
  • 建议您保留原有的内核,如果出现重启失败,可以切换到原有内核进行恢复。

操作步骤

  1. 根据您的服务器系统,下载相应的内核安装文件。
  2. 安装内核。
    • Centos 7.x 系统

      定位到安装文件目录,执行以下命令:

      sudo yum localinstall kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm
      说明 建议您使用yum localinstall命令安装内核,避免可能的依赖问题。您也可以执行sudo rpm -ivh kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm命令进行安装。
    • Centos 6.x或Redhat Linux系统

      定位到安装文件目录,执行以下命令:

      sudo rpm -ivh kernel-2.6.32-220.23.2.ali_github.el6.x86_64.rpm
      sudo rpm -ivh kernel-firmware-2.6.32-220.23.2.ali_github.el6.x86_64.rpm
      说明 CentOS 6.2以上版本系统不需要安装kernel-firmware。
  3. 设置toa模块启动自动加载。
    1. 创建文件/etc/sysconfig/modules/toa.modules,文件内容如下:
      !/bin/bash
      if [ -e /lib/modules/uname -r/kernel/net/toa/toa.ko ] ;
      then 
      modprobe toa > /dev/null 2>&1
      fi                            
    2. 执行以下命令,授予创建toa模块可执行权限:
      sudo chmod +x /etc/sysconfig/modules/toa.modules
  4. 执行reboot命令,重启系统。

功能测试

安装完成后,主机应能正常获取真实客户端源IP。如果仍无法获取客户端源IP,可执行lsmod|grep toa命令检测toa模块加载情况。

如果toa模块未加载,通过执行modprobe toa命令手动加载。加载成功后,重新测试主机能否获取真实客户端源IP。

相关问题

  • 网络连接通过toa模块转换,对性能有多大影响?

    toa模块是部署在旁路的,因此对网络性能几乎没有影响。

  • 如果担心加载新的内核模块可能出现稳定性问题怎么办?

    建议保留原有的内核,如果出现重启失败,可以切换到原有内核恢复。另外,当前版本是在Github上开源的。