如何通过反向 ssh 隧道将客户端的 IP 地址捕获到我的服务器。

如何通过反向 ssh 隧道将客户端的 IP 地址捕获到我的服务器。

我的家庭服务器上有一个反向隧道,以便我可以从外部世界访问它。我的家庭服务器位于防火墙后面。

当我访问 [mydomain]:8080 时,它通过已建立的连接(由我的家庭计算机启动)将我的 HTTP 请求转发到我的家庭计算机,在该计算机上它在端口 80 上创建到我的服务器的连接(从本地主机)。一切正常,只是现在所有 apache 的日志都显示请求来自 localhost。我真的很想了解有关谁连接到我的服务器的更多信息。

这是我用来创建反向隧道的命令:

autossh -i mykeyfile -N -f -g -R \*:8080:localhost:80 myuser@mydomain

我试过检查/var/log/auth.log它没有任何相关的内容。

答案1

  • 将您的隧道更改为远程监听localhost:8080而不是*:80.

  • Apache使用和指令安装mydomain并配置从 80 到 localhost:8080 的反向代理。ProxyPassProxyPassReverse

  • RequestHeader append使用指令告诉 apache 将客户端地址添加为标准 http 标头 X-Forwarded-For、X-Forwarded-Proto、X-Forwarded-Port

相关内容