在Ubuntu AWS上打开端口80


11

我正在ubuntuAWS实例托管的计算机上运行tomcat服务器。我可以通过到达服务器,public_ip:8080但是当我将侦听端口server.xml从更改808080连接时,远程主机会拒绝。

端口号80已启用AWS firewall

我检查了ufw通过,sudo ufw status但结果是inactive

ufw底层防火墙机制的前端吗?

如何启用端口80firewall

预先感谢。

的输出iptables -S

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

输出 netstat -punta

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      785/mysqld
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      613/sshd
tcp        0      0 172.31.1.56:22          92.45.23.114:3913       ESTABLISHED 5825/sshd: ubuntu [
tcp        0      0 172.31.1.56:22          92.45.23.114:19374      ESTABLISHED 7320/sshd: ubuntu [
tcp        0      0 172.31.1.56:22          92.45.23.114:28051      ESTABLISHED 6901/sshd: ubuntu [
tcp        0    272 172.31.1.56:22          92.45.23.114:9327       ESTABLISHED 7428/sshd: ubuntu [
tcp        0      0 172.31.1.56:22          92.45.23.114:7597       ESTABLISHED 7034/sshd: ubuntu [
tcp        0      0 127.0.0.1:3306          127.0.0.1:45655         ESTABLISHED 785/mysqld
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      7275/java
tcp6       0      0 :::8080                 :::*                    LISTEN      7275/java
tcp6       0      0 :::22                   :::*                    LISTEN      613/sshd
tcp6       0      0 127.0.0.1:45655         127.0.0.1:3306          ESTABLISHED 7275/java
udp        0      0 0.0.0.0:68              0.0.0.0:*                           538/dhclient3

netstat -na |grep \:80将端口更改为之前的输出80

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

netstat -na |grep \:80将端口更改为后的输出80

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN

浏览器在端口上的输出80

ERROR

The requested URL could not be retrieved

The following error was encountered while trying to retrieve the URL: http://54.194.236.229/TransportationAutomation/personnel.xhtml

Connection to 54.194.236.229 failed.

The system returned: (111) Connection refused

The remote host or network may be down. Please try the request again.

Your cache administrator is webmaster.


Generated Fri, 14 Feb 2014 15:01:06 GMT by proxy (squid/2.7.STABLE7)

端口定义部分 server.xml

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

在启动tomcat时Catalina.out的一部分port 80

Feb 14, 2014 3:04:25 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.BindException: Permission denied <null>:80
  at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
  at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
  at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
  at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
  at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:815)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  at org.apache.catalina.startup.Catalina.load(Catalina.java:594)
  at org.apache.catalina.startup.Catalina.load(Catalina.java:619)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: java.net.BindException: Permission denied
  at java.net.PlainSocketImpl.socketBind(Native Method)
  at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
  at java.net.ServerSocket.bind(ServerSocket.java:376)
  at java.net.ServerSocket.<init>(ServerSocket.java:237)
  at java.net.ServerSocket.<init>(ServerSocket.java:181)
  at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
  at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
... 17 more 

更新2:

我通过安装了tomcat,apt-get所以它是tomcat的重新打包版本。这里说以root身份运行tomcat可以解决问题,但是这里Tomcat should not be run under the root user.没有重新包装的tomcat实例来处理它的方法吗?

更新3:

我想就是我的问题的答案


请考虑包括server.xml的相关部分,iptables -S的输出以及理想情况下在运行tomcat的情况下netstat -punta的相关输出。
丹尼尔·威德里克

如果使用来安装Tomcat apt-get,我只想指出更改端口server.xml通常是不够的,因为端口80是特权端口。您是否签入catalina.out了看是否有任何错误消息?
David Levesque 2014年

在更改server.xml中的端口之前,netstat -na | grep \:80的输出是什么?然后,在server.xml中更改端口并重新启动jetty后,netstat -na | grep \:80的输出是什么?这似乎不是防火墙问题。
meatflag 2014年

我正在运行debian wheezy,发现我需要编辑/ etc / default / tomcat7而不是/etc/init.d/tomcat7
Ruut 2014年

Answers:


11

是的。它就像iptables的易于使用的版本。尝试写,看iptables防火墙规则:

$ sudo iptables -L

您可以使用以下命令打开端口80:

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

如果需要,我可以为您介绍这一行。就告诉我嘛 :-)


的输出sudo iptables -LChain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 完美的,以描述旨在打开端口80的线。提前致谢。
gesus 2014年

我运行您的命令,并且端口80已打开,并且可以访问我的网站。然后,重新启动后,该端口再次关闭,每次都必须重新打开它。有没有办法永久打开它?我在VPS上运行Ubuntu 14.04 LTS
KoKo 2015年

成为AWS Server EC2(Ubuntu)的新人花了很多时间在很多事情上。我用您的命令打开了一个自定义端口,它起作用了。尽管我已经在“安全组”的“入站”部分中添加了该自定义端口,但是仍然无法访问。运行命令后,我的网站正在自定义端口的应用程序所需服务器上运行。真的很有帮助。
哈马德·哈桑

6

这为我工作:

以root身份运行:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.