我在docker环境下安装好了frp内网穿透服务,访问内网中的网站,但我查看nginx的日志时,发现记录的ip全是内网ip,没有获取到真实的访问ip。
查了一下frp文档,文档中简单的说了下,需要在frpc.ini配置文件中 ,需要增加一行 proxy_protocol_version = v2,便可以开启记录真实ip的功能。
在frpc.ini中修改如下:
[https web] type = https local_port = 443 custom_domains = onet.yourdomain.com # 目前支持 v1 和 v2 两个版本的 proxy protocol 协议。 proxy_protocol_version = v2
以为万事大吉,重启frp,结果网站直接打不开了,建立连接失败,总感觉哪里少了些配置,网上翻了一遍,发现在nginx中还需要添加配置。
我的nginx也是docker跑起来的服务,在listen段添加proxy_protocol,然后配置real_IP_header为 proxy_protocol,具体如下:
server { listen 80 proxy_protocol; listen 443 ssl http2 proxy_protocol; real_ip_header proxy_protocol; real_ip_recursive on; set_real_ip_from 127.0.0.1; …… }
其中set_real_ip_from的ip为frp客户端的内网IP,我填写的是docker桥接网络的网关地址。
好了,保存nginx的网站配置文件后,重启Nginx,再查看nginx的日志,就已经可以获取用户的真实IP地址了。
标签: 网络
您阅读本篇文章共花了:
发表评论
评论列表 (已有1条评论)
牛批牛批牛批牛批。比gpt厉害😜