membuka port 80 pada AWS Ubuntu


11

Saya menjalankan server kucing jantan pada ubuntumesin yang dihosting dalam instance AWS. Saya bisa mencapai server melalui public_ip:8080tetapi ketika saya mengubah port mendengarkan pada server.xmldari 8080ke 80koneksi ditolak oleh host remote.

Nomor port 80diaktifkan pada AWS firewall.

Saya memeriksa ufwmelalui sudo ufw statustetapi hasilnyainactive

Apakah ufwfront-end mekanisme firewall yang mendasarinya?

Bagaimana saya bisa mengaktifkan pelabuhan 80di firewall?

Terima kasih sebelumnya.

Ouptut dari iptables -S:

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

Output dari 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

Output dari netstat -na |grep \:80sebelum mengubah port ke 80:

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

Output netstat -na |grep \:80setelah mengubah port ke 80:

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN

Output browser pada port 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)

Definisi pelabuhan bagian dari server.xml

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

bagian dari Catalina.out saat memulai tomcat pada 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 

PEMBARUAN 2:

Saya menginstal tomcat melalui apt-getjadi itu adalah versi tomcat yang dikemas ulang. Di sini dikatakan bahwa menjalankan tomcat sebagai root akan menyelesaikan masalah tetapi di sini ia mengatakan Tomcat should not be run under the root user.Apakah tidak ada cara yang mungkin untuk menanganinya dengan instance tomcat yang dikemas ulang?

PEMBARUAN 3:

Saya kira ini adalah jawaban untuk pertanyaan saya


Silakan pertimbangkan untuk memasukkan bagian yang relevan dari server.xml Anda, output dari iptables -S, dan idealnya output yang relevan dari netstat -punta dengan tomcat berjalan.
Daniel Widrick

Jika Anda menginstal Tomcat menggunakan apt-get, saya hanya ingin menunjukkan bahwa mengubah port server.xmlbiasanya tidak cukup, karena port 80 adalah port istimewa. Apakah Anda check-in catalina.outuntuk melihat apakah Anda memiliki pesan kesalahan?
David Levesque

Sebelum Anda mengubah port di server.xml, apa output dari netstat -na | grep \: 80 ? Kemudian setelah Anda mengubah port di server.xml dan restart jetty apa output dari netstat -na | grep \: 80 ? Ini sepertinya bukan masalah firewall.
meatflag

Saya menjalankan debian wheezy dan menemukan bahwa saya perlu mengedit / etc / default / tomcat7 daripada /etc/init.d/tomcat7
Ruut

Jawaban:


11

Ya itu. Ini seperti versi iptables yang mudah digunakan. Cobalah untuk menulis, untuk melihat aturan firewall iptables:

$ sudo iptables -L

Anda dapat membuka port 80 dengan menggunakan:

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

Saya dapat menjelaskan baris ini untuk Anda, jika Anda membutuhkannya. Katakan saja :-)


output dari sudo iptables -Litu 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 Akan sempurna untuk menggambarkan garis yang bertujuan untuk membuka port 80. Terima kasih sebelumnya.
gesus

Saya menjalankan perintah Anda dan port 80 terbuka, dan saya dapat mengakses situs web saya. Kemudian setelah saya reboot, port ditutup kembali, saya harus membukanya kembali setiap kali. Apakah ada cara untuk membukanya secara permanen? Saya menjalankan Ubuntu 14,04 LTS pada VPS
KoKo

Menjadi orang baru di AWS Server EC2 (Ubuntu) menghabiskan banyak waktu untuk banyak hal. Saya menggunakan perintah Anda untuk membuka port khusus dan berhasil. Meskipun saya telah menambahkan port khusus di Grup Keamanan, bagian masuk tetapi masih tidak dapat mengakses. Setelah menjalankan perintah Anda, situs web saya berjalan di server aplikasi saya yang dibutuhkan di port khusus. Sangat membantu.
Hammad Hassan

6

Ini bekerja untuk saya:

Jalankan sebagai root:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.