2011-01-22 49 views
10

Tôi có một câu hỏi khác cho bạn. Tôi có phiên bản Amazon EC2 với mondodb được cài đặt. Nó hoạt động tốt ngoại trừ một điều - tôi không thể truy cập (kết nối với) nó từ bên ngoài (PC của tôi). Tôi nghĩ rằng vấn đề với nhóm bảo mật. Đó là một số loại tường lửa mặc định. Có ai biết cách cấu hình cá thể EC2 để truy cập vào mongodb không? Cảm ơn trước.Sự cố khi truy cập Mongodb trên Amazon EC2

Trả lời

10

Bạn cần thêm ngoại lệ nhóm bảo mật cho cổng 27017 nếu bạn đang sử dụng cấu hình mặc định để bạn truy cập từ bên ngoài. Để biết cấu hình nhóm bảo mật, vui lòng kiểm tra tài liệu amazon EC2. Và nếu bạn đang sử dụng một cổng khác trên Mongo, hãy thay đổi cổng nhóm bảo mật cho phù hợp.

--Sai

+0

Tôi biết tôi nên làm một cái gì đó như thế, nhưng tôi không thể tìm ra chính xác. – clumpter

+22

Hãy chắc chắn rằng bạn đã nhận xét ra 'bind_ip' từ 'mongodb.conf' –

+3

và sau đó đừng quên khởi động lại dịch vụ mongod –

39

Suy nghĩ cẩn thận trước khi thực hiện việc này. Nếu bạn mở các cổng, hãy chắc chắn rằng bạn giới hạn các số IP có thể truy cập nó, nếu không thì bất kỳ ai cũng có thể truy cập cơ sở dữ liệu của bạn. Bạn có thể bật xác thực trong MongoDB, nhưng nó không đặc biệt an toàn, chỉ cần một tên người dùng và mật khẩu. Bạn không nên có cơ sở dữ liệu của bạn mở ra internet, nó không phải là một ý tưởng tốt. Cách tốt hơn là mở cổng trong tường lửa EC2 là mở một đường hầm SSH để chuyển tiếp cổng, điều này đảm bảo rằng chỉ bạn mới có thể truy cập cơ sở dữ liệu và chỉ khi đường hầm SSH hoạt động.

Mở ra một thiết bị đầu cuối mới và chạy lệnh này (thay thế người dùng và máy chủ với người dùng mà bạn sử dụng khi SSH'ing đến máy chủ của bạn và tên của máy chủ):

ssh [email protected] -N -L 27017:127.0.0.1:27017 

Lệnh sẽ chuyển tiếp cổng 27017 trên máy tính của bạn đến cùng một cổng trên máy chủ. Để kết nối với cá thể MongoDB chỉ cần chạy mongo trong một thiết bị đầu cuối (nếu nó không hoạt động, hãy thử mongo --host 127.0.0.1 hoặc thậm chí mongo --host 127.0.0.1 --port 27017).

Nếu bạn chạy MongoDB trên máy cục bộ, bạn sẽ phải thay đổi cổng đầu tiên, vì máy chủ cục bộ đã sử dụng nó. Trong trường hợp đó chạy lệnh này để thay thế:

ssh [email protected] -N -L 27018:127.0.0.1:27017 

và sau đó kết nối với

mongo --port 27018 

(có thể thêm --host 127.0.0.1 nếu nó không hoạt động).

Khi bạn làm việc xong với cơ sở dữ liệu, hãy thoát mongo và nhấn ctrl-C trong thiết bị đầu cuối bằng lệnh SSH.

+0

Epic. Các magix của cổng forwardz. –

5

Ví dụ EC2 của bạn có phải là máy chủ Windows không? Nếu vậy, ngoài các Nhóm bảo mật của EC2, bạn cũng cần cấu hình Tường lửa của Windows để cho phép kết nối đến.

Đi đến Công cụ quản trị, Tường lửa Windows với Bảo mật nâng cao và định cấu hình Quy tắc mới cho phép kết nối đến trên cổng 27017 (cổng mongo mặc định) hoặc bất kỳ cổng nào bạn đã chọn.

+0

Cảm ơn anh bạn! Tôi đã gặp vấn đề này với phiên bản Windows EC2 của tôi. Bây giờ, tôi có thể truy cập vào nó! – Jobsamuel

Các vấn đề liên quan