【问题标题】:Is Apache Tomcat blocking the client IP address?Apache Tomcat 是否阻止了客户端 IP 地址?
【发布时间】:2014-09-19 10:25:45
【问题描述】:

我在 Tomcat 6.0 上部署了我的 Web 应用程序,机器的 IP 地址为 10.xx.xx.90。然后我从具有 ip 地址 (10.xx.xx.56) 的 m/c 向这个应用程序发出 http 请求(来自浏览器)。

我正在尝试使用以下代码在 servlet 过滤器中获取客户端 (10.xx.xx.56) 的 IP 地址。但我没有在标头信息中获取 remoteaddress 参数的任何值,并且 request.getRemoteAddr() 返回部署应用程序的机器的 IP 地址,即 10.xx.xx.90。两者之间没有负载均衡器或代理。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain    chain) throws IOException,
  ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
StringBuffer ipLog = new StringBuffer("FILTER_LOG").append(httpServletRequest.getRemoteAddr());
Enumeration<String> e = httpServletRequest.getHeaderNames();
if (e != null) {
  while (e.hasMoreElements()) {
    String header = e.nextElement();
    ipLog.append(header).append(" - ").append(httpServletRequest.getHeader(header));
  }
}
System.out.println(ipLog);

Tomcat 是否在此处阻止或更改客户端 IP 地址?如果是,那么我需要更改什么配置才能获得真实的客户端 IP 地址?

提前谢谢..

【问题讨论】:

  • @folkol "Tomcat 6.0",让我们仔细阅读问题!
  • 你在后面运行Tomcat吗? Apache 还是您实际上是在配置的端口上点击 tomcat?访问日志说什么 - 你能看到那里的远程 IP 吗?
  • 那么让我重新表述一下。您使用的是哪个确切版本的 Tomcat 6?我尝试在使用 Java 1.7.0_60-ea 的 Mac 上使用 Tomcat 6.0.41 记录远程 IP。这按预期工作。
  • @AndersR.Bystrup :我在配置的端口上点击 tomcat。标头信息打印为 FILTER_LOG 10.xx.xx.90content-type - text/xml; charset=UTF-8accept - text/*connection - closecache-control - no-cachepragma - no-cachehost - 10.xx.xx.90:8085content-length - 1052
  • @folkol : 我正在使用 apache-tomcat-6.0.20...我正在点击来自浏览器的请求

标签: java apache tomcat jakarta-ee servlets


【解决方案1】:

您实际上是通过代理连接

正如该问题的 cmets 中所述,客户端通过 隧道 连接到服务器,这意味着向服务器发出实际请求的是隧道的服务器端。

这就是为什么您将本地 IP 设置为“remoteAddr”

让 Tomcat 侦听公共接口或所有接口,并直接连接到服务器 IP,而不是通过您的隧道。

【讨论】:

  • 如果不通过隧道连接,我将无法访问服务器机器......我也可以在同一环境中运行的其他一些应用程序中使用上述方法检索客户端 IP。
  • 什么样的应用程序可以区分曾经通过 ssh 隧道路由的 HTTP 请求和来自 localhost 的请求?即使你确实有这样一个神奇的程序,问题是关于 Tomcat 是否以某种方式阻止或重写了客户端 ip,我相信我的答案已经解决了。
猜你喜欢
  • 1970-01-01
  • 2013-11-06
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2011-03-16
  • 2019-01-14
相关资源
最近更新 更多