Ngrok công cụ kết nối an toàn giữa máy tính cá nhân và internet công cộng

Ngrok là một công cụ giúp tạo ra kết nối an toàn giữa máy tính cá nhân hoặc máy chủ của bạn và internet công cộng. Chức năng chính của ngrok reverse proxy là cung cấp một cách để truy cập các dịch vụ và ứng dụng chạy trên máy chủ hoặc thiết bị cục bộ của bạn từ bất kỳ nơi nào trên internet.

Khi sử dụng ngrok reverse proxy, bạn có thể mở các cổng và dịch vụ trên máy tính hoặc máy chủ của mình mà không cần phải cấu hình định tuyến hoặc mở các cổng truy cập công cộng. Điều này giúp cho việc phát triển và kiểm thử ứng dụng trở nên dễ dàng hơn, đặc biệt là khi bạn làm việc trên mạng không có sự kiểm soát như internet công cộng.

Một số tính năng của ngrok reverse proxy bao gồm:

  1. Truy cập từ xa: Bạn có thể truy cập các dịch vụ và ứng dụng chạy trên máy tính cá nhân hoặc máy chủ từ bất kỳ đâu trên internet.
  2. Bảo mật: Ngrok sử dụng kết nối an toàn giữa máy tính của bạn và máy chủ ngrok, đảm bảo rằng dữ liệu được truyền tải qua mạng một cách an toàn.
  3. Dễ sử dụng: Ngrok cung cấp giao diện dòng lệnh và giao diện đồ họa giúp bạn dễ dàng cấu hình và quản lý các kết nối reverse proxy.

Tóm lại, ngrok reverse proxy là một công cụ mạnh mẽ giúp bạn mở các dịch vụ và ứng dụng của mình ra internet một cách dễ dàng và an toàn, tiết kiệm thời gian và công sức trong quá trình phát triển và kiểm thử ứng dụng.

github : GitHub - inconshreveable/ngrok: Introspected tunnels to localhost

Ngrok hoạt động bằng cách tạo ra một kết nối an toàn từ máy tính hoặc máy chủ của bạn đến các máy chủ ngrok trên internet. Dưới đây là một phác thảo chi tiết về cơ chế hoạt động của ngrok:

  1. Khởi đầu: Bạn bắt đầu bằng cách cài đặt và khởi động ngrok trên máy tính hoặc máy chủ của mình.
  2. Xác thực: Ngrok yêu cầu bạn đăng nhập hoặc sử dụng mã thông báo xác thực để xác định danh tính của bạn. Điều này đảm bảo rằng chỉ có bạn mới có thể truy cập vào các dịch vụ của mình thông qua ngrok.
  3. Tạo kết nối: Sau khi xác thực, ngrok tạo ra một kết nối an toàn (thường sử dụng giao thức HTTPS) từ máy tính hoặc máy chủ của bạn đến máy chủ ngrok trên internet.
  4. Kết nối tới dịch vụ ngrok: Máy chủ ngrok nhận kết nối từ máy của bạn và tạo ra một đường hầm (tunnel) an toàn đến máy tính hoặc máy chủ của bạn thông qua internet công cộng.
  5. Quản lý đường hầm: Máy chủ ngrok quản lý đường hầm và cho phép các yêu cầu từ internet được chuyển tiếp đến máy tính hoặc máy chủ của bạn thông qua kết nối an toàn này.
  6. Truy cập từ xa: Bây giờ, các dịch vụ và ứng dụng của bạn có thể truy cập từ bất kỳ đâu trên internet thông qua đường hầm được tạo bởi ngrok.
  7. Mã thông báo: Máy chủ ngrok cung cấp một mã thông báo độc nhất cho mỗi kết nối, cho phép bạn quản lý và kiểm soát các kết nối này thông qua giao diện ngrok trên trình duyệt hoặc dòng lệnh.

Tóm lại, ngrok hoạt động bằng cách tạo ra một đường hầm an toàn từ máy của bạn đến internet, cho phép bạn truy cập các dịch vụ và ứng dụng của mình từ bất kỳ đâu mà không cần phải cấu hình định tuyến hoặc mở cổng truy cập công cộng.

Để kết nối đến Home Assistant (HASS) thông qua ngrok, bạn cần thực hiện các bước sau:

Bước 1: Tải và cài đặt ngrok

Trước tiên, bạn cần tải và cài đặt ngrok client lên máy chủ chạy HASS. Bạn có thể tải ngrok từ trang web chính thức của họ và làm theo hướng dẫn để cài đặt.

Bước 2: Đăng ký tài khoản và lấy mã token

Sau khi cài đặt ngrok, bạn cần đăng ký tài khoản trên trang web ngrok.com và lấy mã token của bạn. Mã token này sẽ được sử dụng để xác thực và kết nối ngrok client với dịch vụ ngrok.

Bước 3: Khởi động ngrok và tạo kết nối

  1. Mở terminal hoặc dòng lệnh trên máy chủ của bạn.
  2. Đăng nhập vào ngrok bằng mã token của bạn bằng cách chạy lệnh sau:

bashCopy code

./ngrok authtoken [YOUR_AUTH_TOKEN]

Thay [YOUR_AUTH_TOKEN] bằng mã token của bạn.
3. Sau khi xác thực thành công, bạn có thể tạo kết nối bằng cách chạy lệnh sau:

bashCopy code

./ngrok http [PORT]

Thay [PORT] bằng cổng mà HASS đang chạy. Mặc định, HASS thường chạy trên cổng 8123.
4. Ngrok sẽ tạo một URL public, cho phép bạn truy cập HASS từ bất kỳ nơi nào trên internet. URL này có dạng https://xxxxxxx.ngrok.io.

Bước 4: Truy cập Home Assistant qua ngrok

Bây giờ, bạn có thể truy cập HASS từ bất kỳ thiết bị nào có kết nối internet bằng cách sử dụng URL được tạo bởi ngrok. Mở trình duyệt web và nhập URL https://xxxxxxx.ngrok.io, trong đó xxxxxxx là phần subdomain của ngrok.

Lưu ý:

  • Khi chạy ngrok, cửa sổ terminal hoặc dòng lệnh phải được giữ mở để duy trì kết nối.
  • Ngrok cung cấp một phiên bản miễn phí với một số hạn chế về tính năng và thời gian kết nối. Nếu bạn cần tính năng cao cấp hoặc sử dụng thường xuyên, bạn có thể xem xét việc nâng cấp tài khoản của mình.

bạn có thể tự cài đặt và triển khai một máy chủ ngrok riêng và sau đó kết nối các ngrok client đến máy chủ ngrok của riêng bạn. Điều này có thể hữu ích nếu bạn muốn kiểm soát hoàn toàn quyền truy cập và dữ liệu của mình mà không phải dựa vào dịch vụ ngrok công cộng.

Dưới đây là các bước tổng quan để triển khai máy chủ ngrok riêng:

Bước 1: Tải xuống và cài đặt ngrok server

  1. Tải xuống mã nguồn của ngrok từ GitHub hoặc từ trang web của ngrok.
  2. Cài đặt các yêu cầu cần thiết, bao gồm Go programming language và các dependency khác.
  3. Xây dựng ngrok server từ mã nguồn đã tải xuống.

Bước 2: Cấu hình và khởi động ngrok server

  1. Tạo tệp cấu hình cho ngrok server, bao gồm cấu hình cho các domain, subdomain và chứng chỉ SSL nếu cần thiết.
  2. Khởi động ngrok server và đảm bảo rằng nó đang chạy và lắng nghe yêu cầu từ các ngrok client.

Bước 3: Kết nối ngrok client đến máy chủ ngrok riêng của bạn

  1. Trên mỗi máy tính hoặc máy chủ mà bạn muốn kết nối, cài đặt và cấu hình ngrok client.
  2. Chỉ định máy chủ ngrok riêng của bạn thông qua cấu hình ngrok client.
  3. Khởi động ngrok client và tạo kết nối với máy chủ ngrok của bạn.

Sau khi bạn đã thực hiện các bước trên, ngrok client sẽ kết nối với máy chủ ngrok riêng của bạn thay vì với dịch vụ ngrok công cộng. Điều này cho phép bạn kiểm soát hoàn toàn quyền truy cập và dữ liệu của mình trên một môi trường tự quản lý. Tuy nhiên, hãy nhớ rằng việc triển khai và quản lý máy chủ ngrok riêng yêu cầu kiến thức kỹ thuật và có thể đòi hỏi nhiều công sức hơn so với việc sử dụng dịch vụ ngrok công cộng.