如何在客户站点调试应用程序的防火墙问题?目前我们遇到一个问题,Apache和Tomcat(应用程序的一部分)会抛出错误,听起来好像防火墙阻止我们尝试接受或绑定到机器上的端口。
我们面临的问题是我们无法看到防火墙正在做什么,因为它是在公司层面进行管理的。是否有办法弄清楚我们是否被阻止或是否是特定于应用程序的问题。这是一个java应用程序。
答案 0 :(得分:2)
你可能会因为在这里提出属于超级用户或Serverfault的问题而感到悲痛。
简单回答:登录到尝试与他人通信的任何服务器,并使用telnet模拟请求:
telnet OtherServer PortNumber
如果您收到“拒绝连接”,则其他服务不存在或防火墙使其不可见。如果没有任何反应,你可能会碰到防火墙。如果你得到了一个联系(没关系,如果之后发生了任何有趣的事情),你就会完成。
编辑:是的,我知道这很简单。一个巧妙的虐待狂或非常不称职的防火墙设置可能会让请求进入您的服务器,但却无法回答该请求。但我从未遇到过这种情况。更常见的是简单的go / no go case。
如果您需要更多合格的建议,也许您可以从服务器复制一些错误消息和/或堆栈跟踪。
答案 1 :(得分:2)
如果您无法从运行在该服务器上的Apache或Tomcat绑定到Apache / Tomcat服务器上的端口,那么它更可能是另外两个问题之一:
lsof -i :port
和 netstat -ant | grep port
。
端口号低于1025,运行Apache / Tomcat的进程不是root。
答案 2 :(得分:1)
traceroute(适用于Windows的tracert)对于了解事物的发展方向是一件好事。
UPnP工具也很好看到防火墙。
答案 3 :(得分:0)
如果防火墙是在“公司级别”管理的,那么它听起来并不像是基于主机的防火墙(基于主机的“在您正在运行的计算机上”)。如果它不是基于主机的防火墙,则它无法阻止您绑定的尝试,您可以查看其他地方。
如果它是基于主机的......那么这是一个基于主机的侵略性防火墙。您可能更有可能没有管理员或root权限来绑定到端口。
如果你可以绑定到端口,但无法通信,你需要开始进行标准的防火墙测试 - “我可以从互联网上打一个静态的html页面吗?来自内部网?来自localhost?”
答案 4 :(得分:0)
这只是我的经验,但HTTP(S)上的防火墙问题的迹象是请求挂起了一段时间,然后超时连接时间超出异常。根据防火墙的不同,也可以立即拒绝连接。所以这就是我们不得不求助于调试防火墙问题。解决方案始终是网络管理员(我们与该团队建立了良好的关系)并要求他们让特定的IP地址进入。