Linux VPS 设置允许 $_SERVER['REMOTE_ADDR'] 获取客户端 ip

Linux VPS 设置允许 $_SERVER['REMOTE_ADDR'] 获取客户端 ip

我有非托管 VPS 服务器。我尝试从 PHP 获取客户端 IP $_SERVER['REMOTE_ADDR'] ,但它总是为所有用户提供相同的服务器内部 IP。

我做了一些研发工作,并在服务器上安装了防火墙,然后我在另一台 VPS 服务器上检查了同样的情况,但这里给出了正确的客户端 IP。现在我确信我的第一个 VPS 上也有一些配置设置可以为我提供正确的客户端 IP。

请让我知道我必须在服务器上进行什么配置才能获得此功能。

编辑 -

我注意到的一个区别是——

在 VPS 1 上,它有非标准 ssh 端口 27560。其他可以通过端口 22 访问。我不确定这是否造成了问题。请提出建议。

答案1

不确定您使用的是哪种防火墙,但听起来它正在通过自身代理网络流量。如果它充当代理,则可能正在设置 $_SERVER['HTTP_X_FORWARDED_FOR'] 变量。如果是这种情况,您可以检查是否已设置该变量,如果已设置,则使用该变量。否则,请返回到 REMOTE_ADDR。

还要注意,客户端 IP 很容易被伪造,所以我希望在所有情况下获取正确的 IP 并不重要(即,我希望安全性不仅仅取决于此)。

相关内容