mở cổng 80 trên Ubuntu AWS


11

Tôi đang chạy một máy chủ tomcat trên một ubuntumáy được lưu trữ trong một phiên bản AWS. Tôi có thể truy cập máy chủ thông qua public_ip:8080nhưng khi tôi thay đổi cổng nghe server.xmltừ 8080sang 80kết nối thì bị máy chủ từ xa từ chối.

Số cổng 80được bật trên AWS firewall.

Tôi đã kiểm tra ufwqua sudo ufw statusnhưng kết quả làinactive

ufwfront-end của cơ chế tường lửa cơ bản?

Làm thế nào tôi có thể kích hoạt cổng 80trên firewall?

Cảm ơn trước.

Ouptut của iptables -S:

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

Đầu ra của 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

Đầu ra của netstat -na |grep \:80trước khi thay đổi cổng thành 80:

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

Đầu ra của netstat -na |grep \:80sau khi thay đổi cổng thành 80:

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN

Đầu ra của trình duyệt trên cổng 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)

Phần định nghĩa cổng của server.xml

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

một phần của Catalina.out khi bắt đầu tomcat trên 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 

CẬP NHẬT 2:

Tôi đã cài đặt tomcat thông qua apt-getvì vậy nó là phiên bản đóng gói lại của tomcat. Ở đây nó nói rằng chạy tomcat với quyền root sẽ giải quyết vấn đề nhưng ở đây nó nói Tomcat should not be run under the root user.Không có cách nào khả thi để xử lý nó với thể hiện tomcat được đóng gói lại?

CẬP NHẬT 3:

Tôi đoán đây là câu trả lời cho câu hỏi của tôi


Vui lòng xem xét bao gồm các phần có liên quan của máy chủ của bạn, đầu ra của iptables -S và lý tưởng là đầu ra có liên quan từ netstat -punta với tomcat đang chạy.
Daniel Widrick

Nếu bạn đã cài đặt Tomcat bằng cách sử dụng apt-get, tôi chỉ muốn chỉ ra rằng việc thay đổi cổng trong server.xmlthường không đủ, bởi vì cổng 80 là một cổng đặc quyền. Bạn đã đăng ký catalina.outđể xem nếu bạn có bất kỳ thông báo lỗi?
David Levesque

Trước khi bạn thay đổi cổng trong server.xml, đầu ra của netstat -na | grep \: 80 là gì? Sau đó, sau khi bạn thay đổi cổng trong server.xml và khởi động lại cầu cảng, đầu ra của netstat -na | grep \: 80 là gì? Đây dường như không phải là một vấn đề tường lửa.
Meatflag

Tôi đang chạy debian wheezy và phát hiện ra rằng tôi cần chỉnh sửa / etc / default / tomcat7 thay vì /etc/init.d/tomcat7
Ruut

Câu trả lời:


11

Vâng, đúng vậy. Nó giống như một phiên bản dễ sử dụng của iptables. Hãy thử viết, để xem quy tắc tường lửa của iptables:

$ sudo iptables -L

Bạn có thể mở cổng 80 bằng cách sử dụng:

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

Tôi có thể mô tả dòng này cho bạn, nếu bạn cần nó. Chỉ nói với tôi :-)


sản lượng 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 Nó sẽ là hoàn hảo để mô tả dòng mục tiêu để mở cổng 80. Cảm ơn advence.
gesus

Tôi chạy lệnh của bạn và cổng 80 đang mở và tôi có thể truy cập trang web của mình. Sau đó, sau khi tôi khởi động lại, cổng được đóng lại, tôi phải mở lại mỗi lần. Có cách nào để mở nó vĩnh viễn? Tôi đang chạy Ubuntu 14.04 LTS trên VPS
KoKo 18/03/2015

Là một người mới trên AWS Server EC2 (Ubuntu) đã dành rất nhiều thời gian cho nhiều thứ. Tôi đã sử dụng lệnh của bạn để mở một cổng tùy chỉnh và nó hoạt động. Mặc dù tôi đã thêm cổng tùy chỉnh đó trong Nhóm bảo mật, phần trong nhưng vẫn không thể truy cập. Sau khi chạy lệnh của bạn, trang web của tôi đang chạy trên máy chủ cần thiết cho ứng dụng của tôi tại cổng tùy chỉnh. Thực sự hữu ích.
Hammad Hassan

6

Điều này làm việc cho tôi:

Chạy bằng root:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.