AWS ec2 – 打开端口8080

我有一个AWS EC2实例。 我已经安装了tomcat,现在想通过端口8080上的浏览器访问它。当我尝试这样做时,浏览器挂起。 我已将8080添加到默认安全组 。 我看到你可以为不同的地区开放不同的港口,我已经为每个地区增加了港口。

这是我迄今为止所做的:

//install tomcat # sudo yum install tomcat6 //open port on server # sudo iptables -A INPUT -i eth0 -p tcp --sport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT //start tomcat # sudo service tomcat6 start //and rule to AWS security group for port 8080 AWS dashboard > ec2 > security groups > default group > inbound rule: 8080 (HTTP*) 0.0.0.0/0 //check via cli that tomcat is running on port 8080 # udo fuser -v 8080/tcp (successful response) 8080/tcp: tomcat 16353 F.... java //check via browser http://ec2-instance-dns:8080 (browser tries to load page indefinitely) 

您还需要在AWS-config-panel中的安全组中添加端口。

在这里输入图像说明

默认情况下,AWS EC2实例具有不允许访问除SSH之外的其他安全组。 您必须去configuration安全组,以允许您希望允许哪些stream量进入​​实例。 您遇到的浏览器挂起是因为AWS防火墙没有configuration为允许端口8080 / tcp通过,所以它正在丢弃数据包,而您的浏览器正在等待TCP握手的响应,这是永远不会发生的。

消除尽可能多的移动variables…禁用iptables防火墙。 如果有效,那么你的安全组configuration正确,你的iptables规则有--sport 8080而不是--dport 8080--dport 8080 。 如果你从EC2实例本身运行它,那么你的udo ...命令可能会利用loopback接口,所以它会忽略任何影响eth0的iptables规则。

我通常尝试切换SELinux“禁用”,并重新启动或只是做

echo 0> / sys / fs / selinux / enforce

那么如果修复了这个问题,请在SELinux中允许这个端口