共计 602 个字符,预计需要花费 2 分钟才能阅读完成。
frp穿透后的应用获取真实ip
在博客安装了统计的插件,看到的数据中,访客地区全是未知,应该是ip获取不到的问题。所以研究了一下frp的获取真实ip。
开启
在frp客户端的 [[proxies]]
模块添加一行代码:
transport.proxyProtocolVersion = "v2"
(注意,这是新版frp的写法)
nginx配置
在代理设置中,需要添加:
# 这个也很重要
set_real_ip_from 0.0.0.0/0;
# Nginx 将递归查找真实 IP 地址,直到找到不是内部地址的 IP
real_ip_recursive on;
real_ip_header proxy_protocol;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
然后在 server
模块:
listen 443 ssl proxy_protocol;
代码中获取
以 nodejs
为例,大致就是 req.headers['x-real-ip']
即可获取到真实ip。
参考链接
一开始没有加 set_real_ip_from
一直不生效,后来参考了 这篇文章 发现了这个设置,加上去才可以。
正文完