开放端口的前提是打开防火墙。如果没有打开防火墙,没有必要开放端口。因为我们并不会受到什么限制
举例:应用的访问端口是 8080
在我们关闭防火墙的时候,无论什么时候,我们在页面上都是可以正常访问的。但是如果我们开启了防火墙,那么我们必须开放 8080 端口,否则应用虽然在虚拟机上在正常运行,但我们却无法通过网页正常访问
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
在应用正常运行的条件下,我们关闭防火墙时,在其他虚拟机执行 telnet 10.4.79.55 8080 是能通的。但是如果我们开启了防火墙,且没有开放 8080 端口,那么哪怕应用正常运行,在其他虚拟机执行 telnet 10.4.79.55 8080 也是不通的。当然,应用也页面上也无法正常访问。
值得注意的是,此时虽然外部的其他虚拟机执行 telnet 10.4.79.55 8080 不通,但是在应用所在的虚拟机上,无论是执行 telnet 10.4.79.55 8080 还是 telnet localhost 8080 都是通的
如果应用没有正常运行,宕掉了,那么无论端口策略如何,我们都是 telnet 不通应用所在虚拟机的 8080 端口的