Tomcat启动没有错误但是没有监听8080端口。

9

我正在Centos 6.4上运行tomcat 6,并且成功启动。启动时没有出现任何错误。 catalina.log如下:

2012-08-11 14:23:42,941 | INFO  | main | o.a.c.http11.Http11NioProtocol | Starting Coyote HTTP/1.1 on http-xx.xx.xx.xx-8080
2012-08-11 14:23:42,960 | INFO  | main | o.a.catalina.startup.Catalina | Server startup in 121483 ms

并且ps -x显示它正在运行。

不幸的是,它在8080端口上没有响应,netstat -atnp | grep LISTEN也没有列出它。

有什么想法是什么导致了这个问题吗?


2
嗨 - "netstat -atnp" 不显示端口8080的监听器,不幸的是,并不意味着什么。建议:尝试使用“telnet localhost 8080”,然后输入“GET / HTTP/1.1”,并按下几次“ENTER”。看看是否连接成功。看看是否从Tomcat获得响应。并且双重检查您的Apache(不是 Tomcat)日志。 - paulsm4
telnet localhost 8080 失败,显示 连接被拒绝telnet <IP地址> 8080 在本地可以返回结果,但在远程无法连接。 - nash
4个回答

8

如果问题是端口未在iptables中配置,就像Nash所建议的那样,您可以按照以下方式进行配置:

vi  /etc/sysconfig/iptables

在文件中加入以下行:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

在退出时保存文件并重新启动iptables:

service iptables restart

6

@alfasin的回答是正确的,但对于CentOS 6来说,命令行并不起作用。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

您需要逐个释放链,采用以下模式:

-I INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-I OUTPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-I FORWARD -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

0

我认为以下操作也可以起作用。但是,这仅适用于CentOS。转到

vi  /etc/sysconfig/iptables

只需添加以下行并根据需要更改端口。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

按下键盘上的esc键保存文件,然后输入:wq。然后重新启动iptables:

service iptables restart

我觉得它会起作用。


0

这是iptables阻止了端口...

解决的快速方法是关闭iptables:

/etc/init.d/iptables save
/etc/init.d/iptables stop

通常情况下,iptables 应该启用但配置为打开所需的端口。关闭iptables而不使用替代方案是一种不良实践。
在我的情况下,机器没有执行任何敏感任务,且处于没有互联网访问的内部网络中,因此关闭iptables就足够了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接