当前位置:论坛首页 > Linux面板 > 建议

【待反馈】设置了反向代理则面板记录不到操作用户的真实IP

发表在 Linux面板2024-10-25 14:31 [复制链接] 9 436

如题,如果是设置了反向代理访问面板则面板记录不到用户的真实IP,只能记录到反代服务器的IP
使用道具 举报 只看该作者 回复
发表于 2024-10-26 09:18:33 | 显示全部楼层
反向代理配置代码截图看看
使用道具 举报 回复 支持 反对
发表于 2024-10-26 17:05:48 | 显示全部楼层
您好,配置反向代理的配置中有获取客户端的真实 IP 的配置吗?
使用道具 举报 回复 支持 反对
发表于 2024-10-27 10:03:20 | 显示全部楼层
大炮运维V587 发表于 2024-10-26 17:05
您好,配置反向代理的配置中有获取客户端的真实 IP 的配置吗?

  1.       proxy_set_header X-Real-IP $remote_addr;
  2.       proxy_set_header X-Real-Port $remote_port;
  3.       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  4.       proxy_set_header X-Forwarded-Proto $scheme;
  5.       proxy_set_header X-Forwarded-Host $host;
  6.       proxy_set_header X-Forwarded-Port $server_port;
  7.       proxy_set_header REMOTE-HOST $remote_addr;
复制代码

有的
使用道具 举报 回复 支持 反对
发表于 2024-10-28 11:01:46 | 显示全部楼层
网站是否使用了CDN?
使用道具 举报 回复 支持 反对
发表于 2024-10-29 09:19:06 | 显示全部楼层
天天进步 发表于 2024-10-28 11:01
网站是否使用了CDN?

没有、通过head可以正确的获取到用户IP,但是宝塔面板不支持
使用道具 举报 回复 支持 反对
发表于 2024-10-29 09:25:56 | 显示全部楼层
qnnp 发表于 2024-10-29 09:19
没有、通过head可以正确的获取到用户IP,但是宝塔面板不支持

添加proxy_set_header X-Real-IP $real_ip;试试
使用道具 举报 回复 支持 反对
发表于 2024-10-30 17:46:59 | 显示全部楼层
大炮运维V587 发表于 2024-10-26 17:05
您好,配置反向代理的配置中有获取客户端的真实 IP 的配置吗?

请优化这段代码

文件位置:/www/server/panel/class/public.py:731

  1. def GetClientIp():
  2.     from flask import request
  3.     ipaddr =  request.remote_addr.replace('::ffff:','')
  4.     if not check_ip(ipaddr): return '未知IP地址'
  5.     return ipaddr
复制代码
使用道具 举报 回复 支持 反对
发表于 2024-10-30 17:47:30 | 显示全部楼层
天天进步 发表于 2024-10-29 09:25
添加proxy_set_header X-Real-IP $real_ip;试试

请优化这段代码

文件位置:/www/server/panel/class/public.py:731

  1. def GetClientIp():
  2.     from flask import request
  3.     ipaddr =  request.remote_addr.replace('::ffff:','')
  4.     if not check_ip(ipaddr): return '未知IP地址'
  5.     return ipaddr
复制代码
使用道具 举报 回复 支持 反对
发表于 2024-10-30 18:03:22 | 显示全部楼层
改成类似这样

  1. def GetClientIp():
  2.     from flask import request
  3.     ipaddr =  request.remote_addr.replace('::ffff:','')
  4.     if request.headers['X-Forwarded-For'] is not None:
  5.         ipaddr = request.headers['X-Forwarded-For']
  6.     elif request.headers['X-Real-IP'] is not None:
  7.         ipaddr = request.headers['X-Real-IP']
  8.     if not check_ip(ipaddr): return '~\~_IP~\~]~@'
  9.     return ipaddr
复制代码
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表