2009-11-20 100 views
2

如何在客户现场调试您的应用程序的防火墙问题?目前,我们遇到了Apache和Tomcat(应用程序的一部分)抛出的错误,听起来像防火墙阻止了我们尝试接受或绑定到机器上的端口。调试客户防火墙问题

对我们来说,问题在于我们无法看到防火墙在做什么,因为它是在企业级管理的。有没有什么方法可以确定我们是否被阻止,或者是否是特定于应用程序的问题。这是一个Java应用程序。

回答

2

您可能会因为在超级用户或服务器故障中提出问题而感到痛苦。

答案很简单:登录到正试图与另一通信的任何服务器,并使用telnet模拟请求:

telnet OtherServer PortNumber

如果收到“拒绝连接”,然后其他的服务不存在或防火墙正在让它看不见。如果什么都没有发生,你可能会碰到防火墙。如果你得到了一个连接(不必介意在这之后是否有什么有趣的事情发生),那么你正在接近。


编辑:是的,我知道这是很简单的。一个聪明的虐待或非常不合格的防火墙设置可能会让请求进入您的服务器,但却无法回答该请求。但我从未遇到过这种情况。更简单的去/不去的情况更常见。

如果您需要更多合格的建议,也许您可​​以从我们的服务器复制一些错误消息和/或堆栈跟踪。

+0

连接后,可能会在连接失败时遇到一些问题。我认为标准的奥术序列是Ctrl- [之后是“quit”。我无法在我的德语键盘上输入该字符,所以我只需要终止telnet进程:) – 2009-11-20 15:25:17

+1

Ctrl-],我认为 – 2009-11-20 15:57:14

+0

@Carl,开发人员不应该有德语kayboard布局,所有的支架类型都太遥远了: - ) – rsp 2009-11-20 16:32:33

0

如果防火墙是在“企业级”管理的,它听起来不像是基于主机的防火墙(基于主机的“在您运行的计算机上”)。如果它不是一个基于主机的防火墙,那么它就无法阻止你绑定的企图,你可以在别处寻找。

如果它是基于主机的......那么这是一个基于主机的防火墙。您可能更有可能没有管理员权限或超级用户权限来绑定端口。

如果您可以绑定到端口但无法通信,您需要开始进行标准防火墙测试 - “我可以从Internet上打一个静态html页面吗?从Intranet?从本地主机?”

0

这只是我的经验,但HTTP(S)上的防火墙问题的迹象表明,请求会挂起一段时间,然后超时并出现Connection Timed Out-flavored异常。根据防火墙的不同,也可以立即拒绝连接。所以这就是我们不得不求助于调试防火墙问题的方法。该决议总是要去网络管理员(我们已经建立了与该团队的良好关系),并要求他们让一个特定的IP地址。

2

如果您无法绑定到Apache /从您的Apache或Tomcat服务器运行的Tomcat服务器,那么它很可能是其他两个问题之一:

  • 该端口已被另一个应用程序绑定。我用来检查的几个工具是
  • lsof -i :port
  • netstat -ant | grep port

  • 端口号低于1025,运行Apache/Tomcat的进程不是root。

1

traceroute(tracert for Windows)是一件好事,可以看到事情的发展。

UPnP工具也非常适合在路上看防火墙。