Ubuntu AWS에서 포트 80 열기


11

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 :

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


server.xml의 관련 섹션, iptables -S의 출력 및 Tomcat이 실행중인 netstat -punta의 관련 출력을 포함하는 것이 좋습니다.
Daniel Widrick

을 사용하여 Tomcat을 설치 한 경우 포트 80이 특권 포트이기 때문에 포트 apt-get를 변경하는 server.xml것만으로는 충분하지 않다는 것을 지적하고 싶습니다 . catalina.out오류 메시지가 있는지 확인 했습니까 ?
David Levesque

server.xml에서 포트를 변경하기 전에 netstat -na | grep \ : 80 의 출력은 무엇 입니까? 그런 다음 server.xml에서 포트를 변경하고 jetty를 다시 시작한 후 netstat -na | grep \ : 80 의 출력은 무엇 입니까? 이것은 방화벽 문제가 아닌 것 같습니다.
meatflag 2019

데비안 wheezy를 실행 중이고 /etc/init.d/tomcat7 대신 / etc / default / tomcat7을 편집해야한다는 것을 발견했습니다.
Ruut

답변:


11

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

$ sudo iptables -L

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

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

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


의 출력 sudo iptables -L입니다 Chain 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 목적이 포트를 advence에서 80 감사를 열 수있는 라인을 설명하기 위해 완벽 할 것입니다.
gesus

명령을 실행하면 포트 80이 열려 있고 내 웹 사이트에 액세스 할 수 있습니다. 그런 다음 재부팅 후 포트가 다시 닫히고 매번 다시 열어야합니다. 영구적으로 열 수있는 방법이 있습니까? VPS에서 Ubuntu 14.04 LTS를 실행하고 있습니다
KoKo

AWS Server EC2 (Ubuntu)에서 새로운 사람이되는 데 많은 시간을 보냈습니다. 나는 당신의 명령을 사용하여 사용자 정의 포트를 열었고 작동했습니다. 보안 그룹에 해당 사용자 지정 포트를 이미 추가했지만 인바운드 섹션에 액세스 할 수 없었습니다. 귀하의 명령을 실행 한 후 내 웹 사이트는 사용자 정의 포트의 내 앱 필수 서버에서 실행됩니다. 정말 도움이됩니다.
Hammad Hassan

6

이것은 나를 위해 일했다 :

루트로 실행하십시오.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.