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

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

Open
lantinglou opened this issue Feb 3, 2024 · 10 comments
Open

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

lantinglou opened this issue Feb 3, 2024 · 10 comments
Labels
bug Something isn't working

Comments

@lantinglou
Copy link

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

@lantinglou lantinglou added the bug Something isn't working label Feb 3, 2024
@skyhhjmk
Copy link

skyhhjmk commented Feb 4, 2024

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

@lantinglou
Copy link
Author

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

@skyhhjmk
Copy link

skyhhjmk commented Feb 4, 2024

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

@lantinglou
Copy link
Author

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

@skyhhjmk
Copy link

skyhhjmk commented Feb 4, 2024

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

@lantinglou
Copy link
Author

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

@skyhhjmk
Copy link

skyhhjmk commented Feb 4, 2024

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

https://github.com/yisier/nps

@lantinglou
Copy link
Author

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

@skyhhjmk
Copy link

skyhhjmk commented Feb 4, 2024

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

@lantinglou
Copy link
Author

谢谢我去看一下。

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

2 participants