适用场景
网站的访问日志、登录记录里显示的都是 127.0.0.1 或客户端电脑的 IP,想看到真实访客 IP。适用于 HTTP/HTTPS 隧道。
前置条件
- 隧道协议是 HTTP 或 HTTPS。
- 客户端是最新版(老版本会提示需要升级客户端)。
- 能修改网站或 Nginx 的配置。
操作步骤
第 1 步:了解平台带上的请求头
HTTP/HTTPS 隧道会自动在每个请求里加上下面的请求头,无需在控制台设置:
| 请求头 | 内容 |
|---|---|
X-Real-IP |
访客真实 IP |
X-Forwarded-For |
访客真实 IP(平台会覆盖访客自己伪造的值) |
Forwarded |
标准格式的来源信息 |
X-WYC-Request-ID |
本次请求编号,排查问题时用 |
第 2 步:让 Nginx 读取真实 IP
网云穿客户端和 Nginx 在同一台电脑时,在 Nginx 的 server 或 http 段加入:
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;
real_ip_recursive off;
客户端在另一台电脑时,把 127.0.0.1 换成那台电脑的固定内网 IP。不要写成 0.0.0.0/0,否则任何人都能伪造 IP。
然后检查配置并重载:
nginx -t
nginx -s reload
成功后会看到 nginx -t 输出 syntax is ok 和 test is successful。
其他程序(如 Java、PHP、Node 框架)在“可信代理”设置里填客户端电脑的 IP,并读取 X-Forwarded-For 或 X-Real-IP。
第 3 步:验证
用手机流量访问网站,查看网站或 Nginx 的访问日志。
成功后会看到:日志里的 IP 是手机流量的公网 IP,而不是 127.0.0.1。
成功检查
- 日志里显示的是访客公网 IP。
- 换一个网络访问,日志里的 IP 跟着变化。
常见错误
| 现象 | 怎么办 |
|---|---|
日志里还是 127.0.0.1 |
程序还在读连接地址,按第 2 步配置可信代理 |
| 客户端提示需要升级 | 到 下载页 安装最新版客户端 |
| 公网入口前面还有自己的负载均衡 | 联系客服确认支持情况 |
同一个公司出口的多个人会显示同一个 IP,IP 不能代替账号登录。