ehang-io/nps

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

lantinglou opened this issue · 10 comments

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

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

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

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

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

抱歉我理解错了,尝试在后端(若为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;

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

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

https://github.com/yisier/nps

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

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

谢谢我去看一下。