Hướng dẫn how do i access mongodb from another computer? - làm cách nào để truy cập mongodb từ một máy tính khác?

Một phiên bản trước của hướng dẫn này được viết bởi Melissa Anderson.

Giới thiệu

MongoDB là một cơ sở dữ liệu định hướng tài liệu được sử dụng trong nhiều ứng dụng web hiện đại. Theo mặc định, nó chỉ cho phép các kết nối bắt nguồn trên cùng một máy chủ nơi nó đã cài đặt. Nếu bạn muốn quản lý MongoDB từ xa hoặc kết nối nó với một máy chủ ứng dụng riêng biệt, có một vài thay đổi mà bạn cần phải thực hiện với cấu hình mặc định.

Trong hướng dẫn này, bạn sẽ định cấu hình cài đặt MongoDB để cho phép truy cập một cách an toàn từ một máy tính từ xa đáng tin cậy. Để thực hiện việc này, bạn sẽ cập nhật các quy tắc tường lửa của mình để cung cấp quyền truy cập máy từ xa vào cổng mà MongoDB đang nghe các kết nối và sau đó cập nhật tệp cấu hình của nó để thay đổi cài đặt ràng buộc IP của nó. Sau đó, là bước cuối cùng, bạn sẽ kiểm tra rằng máy từ xa của bạn có thể làm cho kết nối với cơ sở dữ liệu của bạn thành công.

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn sẽ cần:

  • Một máy chủ đang chạy Ubuntu 20.04. Máy chủ này nên có người dùng quản trị không root và tường lửa được cấu hình với UFW. Thiết lập điều này bằng cách làm theo hướng dẫn thiết lập máy chủ ban đầu của chúng tôi cho Ubuntu 20.04.a firewall configured with UFW. Set this up by following our initial server setup guide for Ubuntu 20.04.
  • MongoDB được cài đặt trên máy chủ của bạn. Hướng dẫn này giả định rằng bạn đã cài đặt MongoDB 4.4 hoặc mới hơn. Bạn có thể cài đặt phiên bản này bằng cách làm theo hướng dẫn của chúng tôi về cách cài đặt MongoDB trên Ubuntu 20.04.
  • Một máy tính thứ hai mà bạn sẽ truy cập phiên bản MongoDB của mình. Để đơn giản, hướng dẫn này giả định rằng máy này là một máy chủ Ubuntu 20.04 khác, với người dùng hành chính không root và tường lửa UFW được cấu hình theo hướng dẫn thiết lập máy chủ ban đầu của chúng tôi cho Ubuntu 20.04. Tuy nhiên, các bước 1 và 2, mô tả quy trình thực tế để cho phép kết nối từ xa trên máy chủ cơ sở dữ liệu, sẽ hoạt động bất kể hệ điều hành máy từ xa đang chạy.

Lưu ý: Cuối cùng, trong khi không cần phải hoàn thành hướng dẫn này, chúng tôi thực sự khuyên bạn nên bảo mật cài đặt MongoDB của mình bằng cách tạo tài khoản người dùng quản trị cho cơ sở dữ liệu và cho phép xác thực. Để làm điều này, hãy làm theo hướng dẫn của chúng tôi về cách bảo mật MongoDB trên Ubuntu 20.04. Lastly, while it isn’t required to complete this tutorial, we strongly recommend that you secure your MongoDB installation by creating an administrative user account for the database and enabling authentication. To do this, follow our tutorial on How To Secure MongoDB on Ubuntu 20.04.

Ngoài ra, bạn có thể tham khảo các khuyến nghị chính thức của MongoDB về độ cứng bảo mật cũng như danh sách kiểm tra bảo mật của họ.

Bước 1 - Điều chỉnh tường lửa

Giả sử bạn đã làm theo hướng dẫn thiết lập máy chủ ban đầu tiên quyết và bật tường lửa UFW trên máy chủ của bạn, cài đặt MongoDB của bạn sẽ không thể truy cập được từ Internet. Nếu bạn có ý định sử dụng MongoDB chỉ cục bộ với các ứng dụng chạy trên cùng một máy chủ, đây là cài đặt được đề xuất và an toàn. Tuy nhiên, nếu bạn muốn có thể kết nối với máy chủ MongoDB của mình từ một vị trí từ xa, bạn phải cho phép các kết nối đến đến cổng nơi cơ sở dữ liệu đang nghe bằng cách thêm quy tắc UFW mới.

Bắt đầu bằng cách kiểm tra cổng cài đặt MongoDB của bạn đang nghe với lệnh

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
5. Lệnh này thường trả về một danh sách với mỗi tệp mở trong một hệ thống, nhưng khi kết hợp với tùy chọn

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
6, nó chỉ liệt kê các tệp hoặc luồng dữ liệu liên quan đến mạng.

Lệnh sau đây sẽ chuyển hướng đầu ra được tạo bởi

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
7 sang lệnh

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
8 tìm kiếm một chuỗi có tên

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
9:

  1. sudo lsof -i | grep mongo

Đầu ra ví dụ này cho thấy MongoDB đang nghe các kết nối trên cổng mặc định của nó,

curl -4 icanhazip.com
0:

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)

Trong hầu hết các trường hợp, MongoDB chỉ nên được truy cập từ các vị trí đáng tin cậy nhất định, chẳng hạn như một máy chủ khác lưu trữ một ứng dụng hoặc máy cục bộ được sử dụng để quản lý một thể hiện MongoDB từ xa. Một cách để định cấu hình điều này là chạy lệnh sau trên máy chủ MongoDB của bạn, mở ra quyền truy cập trên cổng mặc định MongoDB, trong khi rõ ràng chỉ cho phép địa chỉ IP của máy đáng tin cậy khác.

Chạy lệnh sau, đảm bảo thay đổi

curl -4 icanhazip.com
1 thành địa chỉ IP của máy tính từ xa đáng tin cậy mà bạn sẽ sử dụng để truy cập phiên bản MongoDB của mình.

Lưu ý: Nếu bạn không chắc chắn về địa chỉ IP của máy đáng tin cậy, bạn có thể chạy lệnh

curl -4 icanhazip.com
2 sau. Điều này sẽ truy cập trang web
curl -4 icanhazip.com
3, sẽ trả về địa chỉ IP của máy mà bạn chạy lệnh:
: If you aren’t sure of the trusted machine’s IP address, you can run the following
curl -4 icanhazip.com
2 command. This will access the website
curl -4 icanhazip.com
3, which will return the IP address of the machine from which you run the command:

curl -4 icanhazip.com

Ngoài ra, nếu đầu ra của lệnh trước đó cho thấy việc cài đặt MongoDB của bạn đang nghe trên một cổng không mặc định, hãy sử dụng số cổng đó thay cho

curl -4 icanhazip.com
0 trong lệnh này:

  1. sudo ufw allow from trusted_machine_ip to any port 27017

Trong tương lai, nếu bạn muốn truy cập MongoDB từ một máy khác, hãy chạy lại lệnh này với địa chỉ IP của máy mới thay cho

curl -4 icanhazip.com
1.

Bạn có thể xác minh thay đổi trong cài đặt tường lửa bằng

curl -4 icanhazip.com
6:

  1. sudo ufw status

Đầu ra sẽ cho thấy lưu lượng truy cập đến cổng

curl -4 icanhazip.com
0 từ máy chủ từ xa hiện được cho phép:

Output

Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW trusted_machine_ip OpenSSH (v6) ALLOW Anywhere (v6)

Bạn có thể tìm thấy cài đặt tường lửa tiên tiến hơn để hạn chế quyền truy cập vào các dịch vụ trong UFW Essentials: Quy tắc và lệnh tường lửa phổ biến.

Tiếp theo, bạn sẽ liên kết MongoDB với địa chỉ IP công khai của máy chủ để bạn có thể truy cập nó từ máy từ xa của mình.

Bước 2 - Định cấu hình BINDIP công khai

Tại thời điểm này, mặc dù cổng mở, MongoDB hiện đang bị ràng buộc với

curl -4 icanhazip.com
8, giao diện mạng loopback cục bộ. Điều này có nghĩa là MongoDB chỉ có thể chấp nhận các kết nối bắt nguồn từ máy chủ nơi nó đã cài đặt.

Để cho phép các kết nối từ xa, bạn phải chỉnh sửa tệp cấu hình MongoDB -

curl -4 icanhazip.com
9 - để liên kết thêm MongoDB với địa chỉ IP có thể đạt được bằng máy tính từ xa đáng tin cậy của bạn. Bằng cách này, cài đặt MongoDB của bạn sẽ có thể nghe các kết nối được thực hiện cho máy chủ MongoDB của bạn từ các máy từ xa.

Mở tệp cấu hình MongoDB trong trình soạn thảo văn bản ưa thích của bạn. Ví dụ sau sử dụng

  1. sudo ufw allow from trusted_machine_ip to any port 27017
0:

  1. sudo nano /etc/mongod.conf

Tìm phần

  1. sudo ufw allow from trusted_machine_ip to any port 27017
1, sau đó giá trị
  1. sudo ufw allow from trusted_machine_ip to any port 27017
2:

/etc/mongod.conf

. . .
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

. . .

Chuẩn bị dấu phẩy vào dòng này, sau đó là địa chỉ IP công khai MongoDB của bạn:

/etc/mongod.conf

. . .
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,mongodb_server_ip

. . .

Xin lưu ý rằng đây phải là địa chỉ IP của máy chủ mà bạn đã cài đặt MongoDB, chứ không phải địa chỉ IP của máy từ xa đáng tin cậy của bạn.not the IP address of your trusted remote machine.

Lưu và đóng tập tin. Nếu bạn đã sử dụng

  1. sudo ufw allow from trusted_machine_ip to any port 27017
0, hãy làm như vậy bằng cách nhấn
  1. sudo ufw allow from trusted_machine_ip to any port 27017
4,
  1. sudo ufw allow from trusted_machine_ip to any port 27017
5, thì
  1. sudo ufw allow from trusted_machine_ip to any port 27017
6.

Sau đó, khởi động lại MongoDB để đưa sự thay đổi này có hiệu lực:

  1. sudo systemctl restart mongod

Sau đó, cài đặt MongoDB của bạn sẽ có thể chấp nhận các kết nối từ xa từ bất kỳ máy nào mà bạn đã cho phép truy cập cổng

curl -4 icanhazip.com
0. Là bước cuối cùng, bạn có thể kiểm tra xem máy đáng tin cậy mà bạn cho phép thông qua tường lửa ở bước 1 có thể đạt đến phiên bản MongoDB đang chạy trên máy chủ của bạn hay không.

Bước 3 - Kiểm tra kết nối từ xa

Bây giờ bạn đã cấu hình cài đặt MongoDB của mình để nghe các kết nối bắt nguồn từ địa chỉ IP có thể định tuyến công khai và cấp quyền truy cập máy từ xa của bạn thông qua tường lửa máy chủ của bạn đến cổng mặc định Mongo, bạn có thể kiểm tra rằng máy từ xa có thể kết nối.

Lưu ý: Như đã đề cập trong phần Điều kiện tiên quyết, hướng dẫn này giả định rằng máy từ xa của bạn là một máy chủ khác chạy Ubuntu 20.04. Quy trình cho phép các kết nối từ xa được nêu trong Bước 1 và 2 sẽ hoạt động bất kể hệ điều hành mà máy từ xa của bạn chạy, nhưng các phương pháp thử nghiệm được mô tả trong bước này không hoạt động toàn cầu trên các hệ điều hành.: As mentioned in the Prerequisites section, this tutorial assumes that your remote machine is another server running Ubuntu 20.04. The procedure for enabling remote connections outlined in Steps 1 and 2 should work regardless of what operating system your remote machine runs, but the testing methods described in this Step do not work universally across operating systems.

Một cách để kiểm tra rằng máy tính đáng tin cậy của bạn có thể kết nối với thể hiện MongoDB là sử dụng lệnh

  1. sudo ufw allow from trusted_machine_ip to any port 27017
8.
  1. sudo ufw allow from trusted_machine_ip to any port 27017
8, viết tắt của NETCAT, là một tiện ích được sử dụng để thiết lập các kết nối mạng với TCP hoặc UDP. Nó rất hữu ích để thử nghiệm trong các trường hợp như thế này vì nó cho phép bạn chỉ định cả địa chỉ IP và số cổng.

Đầu tiên, đăng nhập vào máy chủ đáng tin cậy của bạn bằng SSH:

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
0

Sau đó chạy lệnh

  1. sudo ufw allow from trusted_machine_ip to any port 27017
8 sau, bao gồm tùy chọn
  1. sudo ufw status
1. Điều này giới hạn
  1. sudo ufw allow from trusted_machine_ip to any port 27017
8 chỉ để quét cho một trình nền nghe trên máy chủ đích mà không gửi bất kỳ dữ liệu nào. Nhớ lại từ hướng dẫn cài đặt tiên quyết rằng MongoDB đang chạy như một trình nền dịch vụ, làm cho tùy chọn này hữu ích để kiểm tra kết nối. Nó cũng bao gồm tùy chọn
  1. sudo ufw status
3 làm tăng độ âm của lệnh, khiến Netcat trả về một số đầu ra mà nó có thể không.

Chạy lệnh

  1. sudo ufw allow from trusted_machine_ip to any port 27017
8 sau từ máy chủ từ xa đáng tin cậy của bạn, đảm bảo thay thế
  1. sudo ufw status
5 bằng địa chỉ IP của máy chủ mà bạn đã cài đặt MongoDB:from your trusted remote server, making sure to replace
  1. sudo ufw status
5 with the IP address of the server on which you installed MongoDB:

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
1

Nếu máy chủ đáng tin cậy có thể truy cập trình nền MongoDB, đầu ra của nó sẽ chỉ ra rằng kết nối đã thành công:

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
2

Giả sử bạn có phiên bản tương thích của shell

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
9 được cài đặt trên máy chủ từ xa của bạn, tại thời điểm này, bạn có thể kết nối trực tiếp với phiên bản MongoDB được cài đặt trên máy chủ máy chủ.

Một cách để kết nối là với URI chuỗi kết nối, như thế này:

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
3

Lưu ý: Nếu bạn đã làm theo khuyến nghị cách bảo mật MongoDB trên hướng dẫn của Ubuntu 20.04, bạn sẽ đóng quyền truy cập vào cơ sở dữ liệu của mình cho người dùng không được xác thực. Trong trường hợp này, bạn cần phải sử dụng một URI chỉ định tên người dùng hợp lệ, như thế này:: If you followed the recommended How To Secure MongoDB on Ubuntu 20.04 tutorial, you will have closed off access to your database to unauthenticated users. In this case, you’d need to use a URI that specifies a valid username, like this:

Output

mongod 82221 mongodb 11u IPv4 913411 0t0 TCP localhost:27017 (LISTEN)
4

Shell sẽ tự động nhắc bạn nhập mật khẩu người dùng.

Với điều đó, bạn đã xác nhận rằng máy chủ MongoDB của bạn có thể chấp nhận các kết nối từ máy chủ đáng tin cậy.

Sự kết luận

Bây giờ bạn có thể truy cập cài đặt MongoDB của mình từ một máy chủ từ xa. Tại thời điểm này, bạn có thể quản lý cơ sở dữ liệu MongoDB của mình từ máy chủ đáng tin cậy. Ngoài ra, bạn có thể định cấu hình một ứng dụng để chạy trên máy chủ đáng tin cậy và sử dụng cơ sở dữ liệu từ xa.

Nếu bạn đã định cấu hình người dùng quản trị và kích hoạt xác thực, bất kỳ ai có quyền truy cập vào máy chủ từ xa của bạn cũng có thể truy cập vào cài đặt MongoDB của bạn. Nếu bạn đã thực hiện như vậy, chúng tôi thực sự khuyên bạn nên làm theo hướng dẫn của chúng tôi về cách bảo mật MongoDB trên Ubuntu 20.04 để thêm người dùng quản trị và khóa mọi thứ hơn nữa.

Làm thế nào tôi có thể truy cập MongoDB từ bất cứ đâu?

Cho phép truy cập từ tất cả các địa chỉ IP..
Ở phía bên trái của màn hình dưới bảo mật, nhấp vào truy cập mạng ..
Nhấp vào nút Thêm địa chỉ IP màu xanh lá cây ..
Trong phương thức, nhấp vào nút cho phép truy cập từ bất kỳ nơi nào. Bạn sẽ thấy 0,0. 0,0/0 trong trường nhập danh sách truy cập ..
Nhấp vào nút Xác nhận màu xanh lá cây ..

Làm cách nào để kết nối với máy chủ MongoDB?

Làm thế nào để kết nối với MongoDB..
Tạo cơ sở dữ liệu trên MongoDB. Kết nối với vỏ MongoDB. Tạo cơ sở dữ liệu "TestDB". Tạo bộ sưu tập "người dùng" và chèn nó vào "TestDB" ..
Thiết lập người dùng. Kết nối với quản trị viên DB. Tạo quản trị viên người dùng. ....
Tạo kết nối với MongoDB trên CPD. Đặt thông tin cần thiết ..

Làm cách nào để truy cập cơ sở dữ liệu MongoDB?

Để mở vỏ MongoDB, hãy chạy lệnh Mongo từ dấu nhắc máy chủ của bạn.Theo mặc định, lệnh Mongo mở một vỏ được kết nối với một thể hiện MongoDB được cài đặt cục bộ đang chạy trên cổng 27017.Hãy thử chạy lệnh Mongo mà không có tham số bổ sung: Mongo.run the mongo command from your server prompt. By default, the mongo command opens a shell connected to a locally-installed MongoDB instance running on port 27017 . Try running the mongo command with no additional parameters: mongo.

Làm cách nào để truy cập MongoDB từ trình duyệt?

Theo mặc định, MongoDB bắt đầu tại cổng 27017. Nhưng bạn có thể truy cập nó trong trình duyệt web không phải ở cổng đó, thay vào đó, tại một cổng số 1000 nhiều hơn so với cổng mà MongoDB được bắt đầu.Vì vậy, nếu bạn trỏ trình duyệt của mình vào http: // localhost: 28017, bạn có thể thấy giao diện web MongoDB.point your browser to http://localhost:28017, you can see MongoDB web interface.