宝塔面板如何将网站访问日志用户IP变为真实用户IP

在宝塔面板中,如果您的网站使用了CDN(如 Cloudflare、腾讯云CDN、阿里云CDN 等)或代理,默认情况下访问日志记录的会是 CDN 节点 IP 或代理IP 而非真实用户 IP。
以下是 让日志显示真实用户 IP 的几种方法:

方法 1:修改 Nginx 配置(推荐)

适用于 Nginx 环境,适用于大多数 CDN(如 Cloudflare、腾讯云 CDN、阿里云 CDN 等)。
操作步骤

  1. 登录宝塔面板 → 软件商店 → Nginx → 设置 → 配置修改

  2. 在 http{ 块内添加以下代码(选择一种方案):

    # 方案一:允许所有IP,(不安全,不建议,仅用来短暂测试)
    set_real_ip_from 0.0.0.0/0; 
    real_ip_header X-Forwarded-For;  # 从 HTTP 头获取真实 IP
    real_ip_recursive on;
    
    # 方案二:定义 CDN/代理的 IP 段(建议用这种,安全性高)
    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 104.16.0.0/12;
    # 添加更多 CDN IP 段...
    
    # 从 HTTP 头获取真实 IP
    real_ip_header X-Forwarded-For; 
    real_ip_recursive on;
  3. # 方案三:内网/自建代理的情况下,将 IP 段改为实际内网 IP 段(博主是这种情况)
    set_real_ip_from 192.168.31.0/24;;
    real_ip_header X-Forwarded-For; 
    real_ip_recursive on;

    保存 并 重启 Nginx
    验证:查看 /www/wwwlogs/网站名.log,现在应显示真实用户 IP125


方法 2:调整日志格式(适用于高级需求)

如果 X-Forwarded-For 方式无效(如某些 CDN 使用 CF-Connecting-IP),可修改日志格式:

  1. 在 Nginx 主配置nginx.conf)的 http{ 块添加:

    log_format realiplog '$http_x_forwarded_for - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
    
  2. 在 网站配置文件 中修改 access_log 行:

    access_log /www/wwwlogs/网站名.log realiplog;
  3. 重启 Nginx 生效。


方法 3:使用宝塔防火墙(适合新手)

如果不想改代码,可用 宝塔自带的防火墙插件

  1. 安装 Nginx 防火墙(免费版或专业版)。

  2. 进入防火墙 → 站点配置 → 设置 → 开启 “使用 CDN” 选项。

  3. 保存后,日志会自动记录真实 IP。


方法 4:Apache 环境调整

如果使用 Apache,修改日志格式:

  1. 进入 Apache 配置 → 找到 LogFormat 行,修改为:

    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  2. 重启 Apache 生效。


验证是否生效

查看日志文件(/www/wwwlogs/网站名.log),确认 IP 是否为真实用户 IP(而非 CDN 节点 IP)。
示例日志格式:

123.123.123.123 - - [30/Jul/2025:14:30:00 +0800] "GET / HTTP/1.1" 200 1234 "-" "Mozilla/5.0..."

注意事项

  • CDN 兼容性:部分 CDN(如 Cloudflare)可能需要改用 real_ip_header CF-Connecting-IP;

  • 安全风险set_real_ip_from 0.0.0.0/0 允许所有 IP,建议改为 CDN 厂商的 IP 段(如 Cloudflare 的 IP 列表)。

  • 日志分析工具:可使用 GoAccess 或 AWStats 分析真实用户访问数据。

如果仍有问题,可检查 CDN 是否未正确回传 X-Forwarded-For,或提供具体 CDN 厂商以便进一步排查。

赞(5) 打赏
未经允许不得转载:新憧憬 » 宝塔面板如何将网站访问日志用户IP变为真实用户IP

以微光为引,点亮生活新可能,遇见更好的自己,让每一份憧憬都长出翅膀。

新憧憬社区可道云储存

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫