[ehang-io/nps]如果使用tcp隧道,应该怎么获取客户端IP地址呢

2024-08-15 544 views
6

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

回答

1

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

2

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

1

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

1

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

9

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

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

4

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

https://github.com/yisier/nps

0

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

3

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

8

谢谢我去看一下。