Ubuntu AWS에서 포트 80 열기 127.0.0.1:45655

ubuntuAWS 인스턴스에서 호스팅 되는 머신에서 Tomcat 서버를 실행하고 있습니다. 서버를 통해 연결할 수 public_ip:8080있지만 청취 포트 를 연결 server.xml에서 연결로 변경하면 원격 호스트가 거부합니다.808080

포트 번호 80가 활성화되어 AWS firewall있습니다.

나는 검사 ufw를 통해 sudo ufw status하지만 결과는inactive

ufw기본 방화벽 메커니즘의 프론트 엔드는?

포트 80firewall어떻게 활성화 합니까?

미리 감사드립니다.

의 Ouptut 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 :

나는 바람둥이를 apt-get다시 포장 한 바람둥이를 통해 바람둥이를 설치 했습니다. 다음 은 루트로 Tomcat을 실행하면 문제를 해결할 수 있다고하지만, 여기 가 말한다 Tomcat should not be run under the root user.인스턴스 바람둥이 재 포장로를 처리 할 수있는 가능한 방법은 없을까?

업데이트 3 :

나는 이것이 내 질문에 대한 대답 이라고 생각한다



답변

네 그렇습니다. 사용하기 쉬운 iptables 버전과 같습니다. iptables 방화벽 규칙을 보려면 작성하십시오.

$ sudo iptables -L

다음을 사용하여 포트 80을 열 수 있습니다.

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

필요한 경우이 줄을 설명 할 수 있습니다. 그냥 말해 🙂


답변

이것은 나를 위해 일했다 :

루트로 실행하십시오.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080