AWS中EC2外网无法访问 web的问题
AWS中EC2安装apache或nginx外网无法访问问题、AWS中的坑
最近写了app想把它放在aws上边让别人下载,但是安装完apache发现外网访问不了,而且也ping不通,在网上找到的都没能解决我的问题,最后问了一下aws发现了问题所在,也是一个坑。
1、防火墙没有给对应端口开放,解决方法就是开放端口或者直接关闭防火墙
2、关闭selinux,这个问题我不太确定,因为在使用云服务器时会有这个问题,但是我用aws装apache之前安装了数据库,外网访问没有问题,apache访问不到时认为可能是这个问题所已就直接关了,之后就没有开,因为需要重启主机。希望先看其他的原因最后再考虑这个。
3、安全组规则。因为之前用过阿里云也有安全组规则,所以自然就想到aws肯定也有,aws默认开放了所有出站规则,所以我们只需要去设置出战规则即可,记得设置对应端口的出站规则。
这里我只提供一个解决思路,因为重点在下面,具体操作可以去网上很容易搜到。
0.0.0.0/0 是开放ipv4类型的地址
::/0 是开放ipv6类型的地址
到这里按理说应该就没问题了,以上的原因在网上很容易就搜到了,但是为什么我还写本篇笔记,原因就是这些都不能解决我的问题,期间也找到了各种各样的说法,有些年代久了点就不放上来了。
首先我先在本地用curl和telnet(具体怎么用网上一搜命令就有了)测试了链接是可以访问的,说明服务启动起来了,因为先用的apache,以为是apache的问题(只会基本使用,配置文件啥的深入的配置不太了解),所以换了nginx,还是不能用。
看到了没,需要去备案,但是我只是做一个文件下载,不值得去走一遍麻烦的备案流程。
最后有一个非常简单的解决办法,在配置文件里把默认的80或8080端口换一个其他的端口,然后在安全组规则里开放这个端口,使用的时候就是需要在ip后边加上端口号而已,对不做网站的我来说没有什么影响。
这是aws的一个坑,之前使用阿里云时没有这个问题,仅在这留个记录方便以后查找,同时也希望能帮到大家。