Frp下获取访客真实IP
因为我的博客一直放在本地设备上边,然后使用的是Frp
穿透出去,这样造成了外部访问的时候,返回来的都是内网IP在访问,也就造成了在使用Access
插件的时候,在后台控制页面显示的访问IP全是设备的内网IP(如下图),其实影响也不大,我也没太在意这个。不过今天偶然间看到有人在说这个问题,然后发现解决这个问题其实很简单,只需要在frp里增加一个Proxy Protocol
协议就可以了。
Frpc配置
这个非常简单,根据官方文档的说明
只需要在代理配置中增加一行
proxy_protocol_version = v2
即可开启此功能。
1 | # frpc.ini |
然后在Nginx
里边配置一下就可以了。
Nginx配置
同样根据官方文档的说明
本地的 HTTPS 服务可以通过在 nginx 的配置中启用
Proxy Protocol
的解析并将结果设置在X-Real-IP
这个 Header 中就可以在自己的 Web 服务中通过X-Real-IP
获取到用户的真实 IP
这里只需在监听的端口后边加上Proxy Protocol
并设置好real_ip
及其header
就可以了。
1 | server |
最后重启Nginx
和Frpc
服务就可以了。
之后就能正常获取到访问的真实IP了(如下图)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 尼禄猫!
评论
TwikooValine