Không thể truy cập trang web trên EC2 qua ip công cộng


10

Tôi có phiên bản vi mô Amazon EC2 với máy chủ window 2008 và đã triển khai một ứng dụng web mẫu ở đó sử dụng java và triển khai trên máy chủ tomcat 7. Tôi có thể truy cập nó cục bộ, nhưng khi tôi cố truy cập nó bên ngoài ví dụ AWS, hãy nói từ máy tính ở nhà của tôi bằng cách sử dụng DNS công cộng / địa chỉ IP công cộng / địa chỉ IP đàn hồi của ví dụ, nó cho tôi "Trang web là Không có sẵn".

Tôi đã trải qua rất nhiều câu hỏi tương tự trong diễn đàn này và tôi nghĩ rằng tôi đã thực hiện tất cả các thiết lập mà họ đang yêu cầu, nhưng vẫn không thành công.

Đây là những gì tôi đã làm / xác nhận.

1. localhost hoạt động, vì vậy ứng dụng lắng nghe trên cổng 80.

2. đã thêm quy tắc gửi đến cho HTTP trên cổng 80 cho mọi người trong nhóm bảo mật mà phiên bản của tôi đang sử dụng.

3. kiểm tra cài đặt tường lửa trên phiên bản windows, đảm bảo cổng 80 không bị chặn.

4. đã thử ngay cả khi tắt tường lửa, nhưng không thành công.

Tôi thực sự sẽ đánh giá cao nếu ai đó có thể giúp tôi về điều này.

Cảm ơn, NS


1
Telnet nói gì với bạn và theo dõi?
Pratap

Câu trả lời:


5

Tôi gặp vấn đề tương tự khi cài đặt JetBrains YouTrack trên phiên bản Windows Server 2012 ec2. Điều làm việc cho tôi là mở các cổng tường lửa Windows mà java đang sử dụng cụ thể và vô hiệu hóa cổng dịch vụ World Wide Publishing. Tôi cũng đã phải chạy dịch vụ YouTrack trong tài khoản LocalSystem thay vì tài khoản mặc định.

Thử cái này:

  • Tắt trang web mặc định trong IIS nếu nó đang được sử dụng

  • Chạy netstat -a -b để khám phá các cổng mà java.exe đang cố liên kết với ví dụ:

    TCP 0.0.0.0:80 THẮNG-9NFIG6IEPT6: 0 LẮNG NGHE [java.exe]

    TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 THÀNH LẬP [java.exe]

  • Mở trình quản lý kiểm soát dịch vụ và nhấp chuột phải vào dịch vụ của bạn và mở hộp thoại thuộc tính. Trên tab Đăng nhập với tên, chọn Tài khoản hệ thống cục bộ làm tài khoản mà dịch vụ chạy bên dưới. Điều quan trọng là người dùng này phải là Quản trị viên

  • Tôi rất khuyên bạn nên bật lại tường lửa.
  • Mở tab quy tắc trong tường lửa và vô hiệu hóa Quy tắc dịch vụ web toàn cầu (HTTP-In)
  • Tạo quy tắc mới cho Tomcat với TCP Port 80 và bất kỳ cổng nào khác mà nó có thể cần.

  • Lưu quy tắc và kiểm tra url của bạn từ bên ngoài máy chủ.


4

Bạn không nên tắt hoàn toàn cài đặt tường lửa. Điều này sẽ làm mất tính bảo mật của ứng dụng của bạn. Thay vào đó, sửa đổi các quy tắc tường lửa trong máy chủ windows để cho phép lưu lượng truy cập đến trên các cổng cụ thể.

Tôi gặp vấn đề tương tự khi tôi đã triển khai một ứng dụng trên Tomcat 8 trên máy chủ windows 2012 được cung cấp thông qua AWS EC2. Tôi có thể truy cập ứng dụng đã triển khai trên http: // localhost: 8080 từ trong VM nhưng không phải từ internet công cộng sau khi thay thế chuỗi localhost trong URL bằng địa chỉ IP công cộng của VM.

Nó hoạt động tốt sau khi tôi thay đổi các quy tắc tường lửa để cho phép lưu lượng truy cập đến trên cổng 80 (cho http), cổng 443 (cho https) và cổng 8080 (đây là cổng mà ứng dụng web của tôi được triển khai theo mặc định trên máy chủ tomcat.

Tôi đã ghi lại cấu hình tường lửa và nhóm bảo mật tại liên kết dưới đây:

http://abhirampal.com/2015/08/04/firewall-config-for-java-web-app-hosted-on-aws-ec2-windows-2012-server/


1
Tuyệt vời, bạn đã cứu ngày của tôi <3
Thamaraiselvam

1

Bạn có thể đã cấu hình máy chủ web. Bạn có thể kiểm tra điều đó bằng cách kết nối với máy chủ thông qua:

telnet $IP 80

nếu bạn không gặp lỗi, bạn có thể kết nối. Trong trường hợp này, bạn đã không thiết lập máy chủ web chính xác.


Bạn nói đúng, tôi không thể kết nối qua telnet từ máy tính cục bộ của tôi đến ví dụ aws. Bạn có thể vui lòng giúp tôi làm thế nào tôi có thể sửa chữa nó? Tôi đã thử tìm IIS trên ví dụ aws và nó đang chạy.
user242725

Cảm ơn. Nó hoạt động sau khi tắt tên miền, tường lửa riêng và công khai. Nhưng không chắc chắn, làm thế nào tôi có thể bảo mật cá thể và đồng thời truy cập ứng dụng web của tôi bên ngoài ví dụ.
user242725

1

Một quy tắc cho cổng TCP 80 có thể cần phải được nhập vào Nhóm bảo mật AWS cho ví dụ của bạn.


1

Bạn có thể cần cung cấp cổng để nghe bất kỳ cuộc gọi công khai nào từ bảng điều khiển AWS.


Bảng điều khiển AWS có rất nhiều tính năng, có lẽ bạn có thể cụ thể hơn.
kmarsh


1

Hai điều cho tôi:

  1. Sửa đổi nhóm Bảo mật được đính kèm với phiên bản RDS của tôi để cho phép lưu lượng vào và ra

  2. Đặt quy tắc trong và ngoài nước trong RDS cho cổng ứng dụng

Các bước chi tiết:

  • Trên thanh trên cùng của bảng điều khiển AWS của bạn, nhấp vào Dịch vụ, chọn EC2

  • Trên menu bên trái của cửa sổ tiếp theo, trong các trường hợp, bấm vào các trường hợp để xem các thể hiện của bạn

  • Trong bảng có chứa phiên bản bạn muốn truy cập từ công chúng, hãy di chuyển sang phải vào cột có tên Nhóm bảo mật. Bấm vào nhóm bảo mật này.

  • Trong bảng hiển thị, cuộn xuống dưới cùng của bảng có mô tả về nhóm bảo mật và các tab khác như Inbound, Outting, Tags
  • Nhấp vào tab gửi đến. Nhấp vào chỉnh sửa. Theo mặc định, có một quy tắc (RDP).
  • Cho phép thêm hai
  • Nhấp vào nút Thêm quy tắc.
  • Chọn tất cả lưu lượng cho loại, tất cả cho giao thức
  • Để lại phạm vi cổng (0 - 65535), chọn nguồn làm Tùy chỉnh.
  • Tất cả những điều này áp dụng cho cả hai quy tắc 2) Đối với quy tắc đầu tiên, trong hộp văn bản xuất hiện sau nguồn, hãy đặt 0.0.0.0/0 3) Đối với quy tắc thứ hai, hãy đặt :: / 0 4)
  • Nhấn Lưu

    Bây giờ hãy đăng nhập vào AWS RDS của bạn để đặt quy tắc trong và ngoài nước thông qua tường lửa

  • Khởi chạy bảng điều khiển. Nhấp vào Hệ thống và Bảo mật (có thể là lần đầu tiên) và nhấp vào Windows Fire wall. Sau đó bấm vào Cài đặt nâng cao

  • Nhấp vào menu Nội quy bên trái.

  • Trong tab Hành động (ở bên phải), nhấp vào Quy tắc mới

  • Chọn Cổng và bấm tiếp theo

  • Chọn TCP (nếu không được chọn) và bên dưới Chọn Cổng cục bộ cụ thể.

  • Trong trường đặt số cổng của ứng dụng của bạn và nhấp vào tiếp theo

  • Chọn Cho phép kết nối và bấm tiếp theo.

  • Chỉ định tên quy tắc. Một cái gì đó giống như tên của ứng dụng của bạn cho mục đích dễ đọc và nhấp vào kết thúc

Sau đó cho phép cấu hình lưu lượng đi

  • Trên cùng một menu như đối với Quy tắc gửi đến, Chọn quy tắc Ngoài và làm theo quy trình tương tự như được mô tả cho quy tắc đến
  • Sau những cài đặt này, bạn phải có thể truy cập ứng dụng của mình từ bên ngoài

0

Vui lòng tham khảo các liên kết .. Nó sẽ được cụ thể hơn.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/USE-network-security.html

Bạn có thể cho phép liên lạc giữa tất cả các phiên bản được liên kết với nhóm bảo mật này hoặc giữa các phiên bản được liên kết với nhóm bảo mật khác và các phiên bản được liên kết với nhóm bảo mật này. Nhấp vào Thêm quy tắc, chọn Tất cả ICMP, sau đó bắt đầu nhập ID của nhóm bảo mật trong Nguồn; điều này cung cấp cho bạn một danh sách các nhóm bảo mật. Chọn nhóm bảo mật từ danh sách. Lặp lại các bước cho giao thức TCP và UDP. Nhấp vào Lưu khi bạn hoàn tất.


0

Đây chủ yếu là vấn đề với Tường lửa Windows. Tôi đã thử các bước tương tự như bạn đã làm nó không thành công. Khoảnh khắc tôi bật tường lửa thì vẫn ổn. Tôi nghĩ rằng bảo mật không bị ảnh hưởng vì chúng tôi đang cấu hình các quy tắc gửi đi.


-1

Đối với Instance WINDOWS - Nhấp chuột phải vào tên Instance EC-2, duyệt đến tệp .pem được tạo trong quá trình tạo Instance và nhấp vào Giải mã mật khẩu. Bạn sẽ nhận được tên người dùng và mật khẩu để kết nối qua Bắt đầu -> Chạy -> mstsc -> Windows IP với Windows xác thực là Quản trị viên và mật khẩu của nó

Đối với trường hợp LINUX -> Tải xuống puttygen và nhấp vào nút LOAD để chọn tệp .pem và sau đó nhấp vào nút GENERATE để tạo tệp ppk. Thông qua putty, nhập IP và trong Kết nối -> SSH -> AUTH -> Duyệt để chọn tệp .ppk và lưu các phiên putty.


Đây sẽ là một câu trả lời tuyệt vời nếu câu hỏi là "làm thế nào để tôi đăng nhập bằng khóa SSH". Nhưng câu hỏi là "làm thế nào để tôi truy cập một trang web từ trình duyệt của tôi".
Jenny D
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.