Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

获取用户真实IP #140

Closed
ac-sc opened this issue Dec 23, 2023 · 20 comments
Closed

获取用户真实IP #140

ac-sc opened this issue Dec 23, 2023 · 20 comments
Labels
bug Something isn't working

Comments

@ac-sc
Copy link

ac-sc commented Dec 23, 2023

image
操作手册上写的获取用户真实IP,只需要在配置文件nps.conf中设置http_add_origin_header=true就行。但是我抓包还是没有查看到在请求头里添加 X-Forwarded-For 和 X-Real-IP 字段。
请问这个字段NPS是会自动加上去的吗,还是说需要由上游服务器来来添加,nps只进行转发。

@ac-sc ac-sc added the bug Something isn't working label Dec 23, 2023
@ac-sc
Copy link
Author

ac-sc commented Dec 23, 2023

查看了原作者项目下的issue,发现也有同样问题。部同学查看了源码发现https缺少添加header的函数。请yisier大佬看看呢 @yisier

@yisier
Copy link
Owner

yisier commented Dec 31, 2023

不是https缺少添加header的函数的问题,如果真这么简单就好了。
https 证书配置在客户端本地的话,nps 到客户端都是加密流量。

nps 支持 https 获取真实ip,
1.设置 https_just_proxy=false
2.在域名解析中设置 域名证书(证书路径)

image

@ac-sc
Copy link
Author

ac-sc commented Dec 31, 2023

不是https缺少添加header的函数的问题,如果真这么简单就好了。 https 证书配置在客户端本地的话,nps 到客户端都是加密流量。

nps 支持 https 获取真实ip, 1.设置 https_just_proxy=false 2.在域名解析中设置 域名证书(证书路径)

image

已经按照此步骤进行配置,抓包查看后发现只有http协议nps会插入 X-Forwarded-For 和 X-Real-IP 字段,可获取真实IP;但https未插入XFF,无法获取真实IP。

@lfcz
Copy link

lfcz commented Jan 3, 2024

这个问题困扰我好久了,不知道现在到底怎么才能完美解决

@lantinglou
Copy link

lantinglou commented Feb 4, 2024

同样被困扰,https下无法获得用户真实IP,有什么解决办法吗?

另外其他服务比如SSH,有办法获得用户真实IP吗?

@lfcz
Copy link

lfcz commented Feb 10, 2024

同样被困扰,https下无法获得用户真实IP,有什么解决办法吗?

另外其他服务比如SSH,有办法获得用户真实IP吗?

目前来看nps对于获取真实ip这个还没有很好的支持,而且前几天尝试重新部署这个版本的nps,发现出现连接不了的问题,而换回停更的版本却一切正常。客户端和服务端都是用的正确的,不是混用不兼容造成的无法连接

@huqitest
Copy link

http或者https的化可以通过nginx代理nps的proxy_port,用nginx的功能来加强自己的需求

@lfcz
Copy link

lfcz commented Feb 22, 2024

http或者https的化可以通过nginx代理nps的proxy_port,用nginx的功能来加强自己的需求

能否详细说一说

@Dkrismile81
Copy link

不是https缺少添加标头的函数的问题,如果真这么简单就好了。https 证书配置在客户端本地的话,nps到客户端都是加密流量。

nps支持https获取真实ip, 1.设置https_just_proxy=false 2.在域名解析中设置域名证书(证书路径)

图像

image
image
image
下面的是我的一部分配置
image
我已经将https_just_proxy=false设置为false,且
image
在页面添加了证书,但是还是失败了,请问大神我现在应该怎么做https访问的时候会将ip添加进header里面@yisier

@Dkrismile81
Copy link

不是https缺少添加header的函数的问题,如果真这么简单就好了。 https 证书配置在客户端本地的话,nps 到客户端都是加密流量。
nps 支持 https 获取真实ip, 1.设置 https_just_proxy=false 2.在域名解析中设置 域名证书(证书路径)
image

已经按照此步骤进行配置,抓包查看后发现只有http协议nps会插入 X-Forwarded-For 和 X-Real-IP 字段,可获取真实IP;但https未插入XFF,无法获取真实IP。

想问一下你,你这边后续解决这个问题了吗?

@ac-sc
Copy link
Author

ac-sc commented Apr 25, 2024

不是https缺少添加header的函数的问题,如果真这么简单就好了。 https 证书配置在客户端本地的话,nps 到客户端都是加密流量。
nps 支持 https 获取真实ip, 1.设置 https_just_proxy=false 2.在域名解析中设置 域名证书(证书路径)
image

已经按照此步骤进行配置,抓包查看后发现只有http协议nps会插入 X-Forwarded-For 和 X-Real-IP 字段,可获取真实IP;但https未插入XFF,无法获取真实IP。

想问一下你,你这边后续解决这个问题了吗?

暂时还没解决这问题,但有其它方式比如通过前置的NGINX插入XFF字段。但是如果NPS可以实现这功能就更好了。

@Dkrismile81
Copy link

不是https缺少添加header的函数的问题,如果真这么简单就好了。 https 证书配置在客户端本地的话,nps 到客户端都是加密流量。
nps 支持 https 获取真实ip, 1.设置 https_just_proxy=false 2.在域名解析中设置 域名证书(证书路径)
image

已经按照此步骤进行配置,抓包查看后发现只有http协议nps会插入 X-Forwarded-For 和 X-Real-IP 字段,可获取真实IP;但https未插入XFF,无法获取真实IP。

想问一下你,你这边后续解决这个问题了吗?

暂时还没解决这问题,但有其它方式比如通过前置的NGINX插入XFF字段。但是如果NPS可以实现这功能就更好了。

你现在是在NPS的前面又挂了一个NGINX吗?

@ac-sc
Copy link
Author

ac-sc commented Apr 25, 2024 via email

@Dkrismile81
Copy link

Dkrismile81 commented Apr 25, 2024 via email

@yisier
Copy link
Owner

yisier commented Jun 4, 2024

看下最新版 https 协议的改动

@ac-sc
Copy link
Author

ac-sc commented Jun 4, 2024

看下最新版 https 协议的改动

感谢!
我已经测试https协议转发到内网的http服务,可以获取真实IP。
但如果内网是https服务,好像是没实现。因为nps域名解析功能目前只能实现http-->http,或者https-->http。

@yisier
Copy link
Owner

yisier commented Jun 4, 2024

看下最新版 https 协议的改动

感谢! 我已经测试https协议转发到内网的http服务,可以获取真实IP。 但如果内网是https服务,好像是没实现。因为nps域名解析功能目前只能实现http-->http,或者https-->http。

https -> https 也可以,你应该是没配置好,本地配置证书,nps 管理的证书需要清空。
本地 https 是无法获取真实IP的

@Dkrismile81
Copy link

Dkrismile81 commented Jun 4, 2024 via email

@yisier yisier closed this as completed Jun 4, 2024
@lfcz
Copy link

lfcz commented Jun 4, 2024

看下最新版 https 协议的改动

感谢! 我已经测试https协议转发到内网的http服务,可以获取真实IP。 但如果内网是https服务,好像是没实现。因为nps域名解析功能目前只能实现http-->http,或者https-->http。

https -> https 也可以,你应该是没配置好,本地配置证书,nps 管理的证书需要清空。 本地 https 是无法获取真实IP的

意思是如果本地建站的话,想要实现https和获取真实IP,只能把证书部署在nps上,而不能部署在本地吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants