nps icon indicating copy to clipboard operation
nps copied to clipboard

如果使用tcp隧道,应该怎么获取客户端IP地址呢

Open lantinglou opened this issue 1 year ago • 10 comments

使用TCP隧道映射的80和443端口,网站正常,但是获取不到客户端的IP地址。 其他TCP服务是否也获取不到客户的IP地址? 请问怎么处理?

lantinglou avatar Feb 03 '24 07:02 lantinglou

我的处理方法是使用nginx作为入口,反向代理TCP隧道的端口,这样可以将用户的ip信息加进http头中

skyhhjmk avatar Feb 04 '24 07:02 skyhhjmk

我的处理方法是使用nginx作为入口,反向代理TCP隧道的端口,这样可以将用户的ip信息加进http头中 http可以,但是测试过https不可以,有解决办法吗?

lantinglou avatar Feb 04 '24 07:02 lantinglou

有具体的报错吗,或者说描述一下https不可以是怎么一个不可以

skyhhjmk avatar Feb 04 '24 07:02 skyhhjmk

没有错误,只是获取不到用户真实IP,获取到的是npc客户端的IP

lantinglou avatar Feb 04 '24 07:02 lantinglou

抱歉我理解错了,尝试在后端(若为nginx)加入

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;

如果它获取到了错误的IP,请继续尝试将上述内容修改为:

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Real-IP;

skyhhjmk avatar Feb 04 '24 07:02 skyhhjmk

谢谢回复,不能在后端nginx加入这些参数,因为是给其他人用的,我进不了系统。只能在nps服务器或者nps系统上想办法。

lantinglou avatar Feb 04 '24 08:02 lantinglou

在我的技术能力内我认为不对后端nginx做出设置无法达到获取真实IP的目的,但你也许可以看看这个分支,这个分支修复了很多nps的bug,并且加入了更多技术细节

https://github.com/yisier/nps

skyhhjmk avatar Feb 04 '24 08:02 skyhhjmk

非常感谢,nps的作不是更新了?好久no update.

lantinglou avatar Feb 04 '24 08:02 lantinglou

是的,nps的原作者貌似已经停止更新,但幸运的是有大佬接手了开发工作并在另一个仓库继续维护

skyhhjmk avatar Feb 04 '24 08:02 skyhhjmk

谢谢我去看一下。

lantinglou avatar Feb 04 '24 08:02 lantinglou