防火墙
首先明确一点,服务器不论linux和windows本身都是带有防火墙的,而linux一般使用指令操作,而windows的服务器可以用使用可视化界面,必须开放80端口,80端口号是http默认端口,如使用tomcat,要测试tomcat是否能被外部访问,需要开放8080端口,然后使用公网ip:8080端口号访问。CentOS印象中默认没有开放8080端口
IP
第二点,明确ip之间的概念,外部访问都是访问的ip地址,而如果要在外部网络访问则需要使用的是公网ip,公网ip一般是需要资质申请,当然我们使用云服务器,云服务器会自带公网ip。
安全组
第三点,知道安全组的概念,安全组是云服务器特有的一层保护,安全组需要手动配置,即防火墙外的一层保护,安全组会提供出和入方向访问的控制,默认入的方向大多数端口号都是关闭的。如果我们要外部访问tomcat则需要开放tomcat对应的
8080
端口号,即配置在入的方向运行进入的地址,如果是要全部IP都能访问则需要配置0.0.0.0
。
域名
第四点,国内的服务器使用域名提供服务,域名都必须是先备案了的,所以没备案的现在阿里云的备案专区进行备案,才能进行下一步是DNS解析域名,这个域名才能用。
DNS
第五点,知道DNS服务器概念,其是用于解析域名的。即将域名和IP进行映射,当访问这个域名的时候会转发到对应的IP地址。阿里云提供了免费的DNS域名解析服务。到相应的页面配置即可。
测试排错
第六点,在备案域名以及配置DNS配置映射生效后,一般申请备案域名以及配置DNS都需要时间,确定生效无虞后,前面步骤都确定没问题后访问测试:
当然觉得tomcat安装太麻烦,以及避免输入端口号问题,可以直接安装nginx测试。
OK完成
顺便,排查tomcat无法外部访问思路
1.外部无法访问,首先确定tomcat启动情况,查看tomcat的日志,如果是tomcat没正常启动,则排查什么原因导致tomcat没有正常启动。
2.如果tomcat正常启动,外部访问公网IP:8080不通的,则在ssh连接中给内部,方式指令:curl localhost:8080
,看看是否加载出tomcat页面代码,或者直接查看防火墙情况,以及端口使用,定位是安全组问题还是防火墙问题。