前几天在阿里云买了台服务器,装上centos,今天在配置tomcat的时候发现,localhost:8080是可以访问的,但是无法通过公网IP访问8080端口。马上就想到了防火墙的问题,查到centos有自己的默认防火墙firewall,于是stop。然后又把linux通用的iptables防火墙关闭。没成功。又得知安全组规则这个东西,是阿里在外部给服务器提供的一个防护,于是设置入站规则,加上允许8080端口。仍然没成功。到这里就以为不是防火墙的问题了,因为所有和防火墙相关的配置全部都设置了一遍。ping了一下主机,也是没有问题的。又继续搜了各种方案,期间查看设置了tomcat配置、端口占用、IP......,在一个QQ群中问了之后也说查看一下端口占用的问题,全都无一例外没有起作用。最后在另一个QQ群里某人建议下,用iptables -F清除防火墙规则,原以为应该没用,执行后发现成功了。
耗时三个小时,解决完毕。到这里事情就明了了,还是防火墙的问题!但是为什么在stop iptable之后还是没用,我就不得而知了,问了问QQ群里那个人,也说没碰到过。留待以后探究吧。
总结经验:一开始的思路是对的,但是在进行各种防火墙设置仍不起作用后就开始往端口占用、tomcat配置这些方面去了,其实通过localhost能正常访问、公网IP不能访问,就应该肯定上述方面没有问题,继续从防火墙着手。