Hướng dẫn sử dụng ngrok

ngrok

Lời mở đầu

  • Ngrok là gì, đơn giản là công cụ “phơi” máy chủ ở đằng sau tường lửa ra ngoài mạng internet thông qua một đường hầm bảo mật
  • Bạn có thể tải về và chạy chương trình trên máy tính và cung cấp cho nó cổng mạng dịch vụ, thường là cổng của web server. Nó sẽ kết nối đến dịch vụ đám mây ngrok, dịch vụ này sẽ nhận các lưu lượng dữ liệu trên một địa chỉ công cộng và chuyển tiếp lưu lượng truy cập thông qua quá trình ngrok chạy trên máy tính của bạn và sau đó đến địa chỉ cục bộ bạn chỉ định.

1. Một số tiện ích của ngrok mang lại.

  • Đường hầm bảo mật: ví dụ tạo một HTTPS URL công khai cho web site đang chạy cục bộ.
  • Không cần có thêm cổng chuyển tiếp: Không cấu hình cổng chuyển tiếp trên router hoặc lãng phí thời gian thiết lập các giải pháp DNS động. Ngrok hoạt động ở mọi nơi mà không có thay đổi, ngay cả khi một thiết bị thay đổi mạng.
  • Mật khẩu được bảo vệ: Đặt thông tin đăng nhập auth http để bảo vệ quyền truy cập vào đường hầm của bạn và những người bạn chia sẻ nó.
  • Đường hầm TCP: Phơi bày bất kỳ dịch vụ nối mạng nào với internet, thậm chí những trang không sử dụng HTTP như SSH.
  • Hỗ trợ Websocket: Chia sẻ ứng dụng web thời gian thực.
  • Nhiều đường hầm đồng thời: Chạy nhiều đường hầm đồng thời với một ngrok client.
  • Replay Webhook Requests: Dễ dàng phát triển tích hợp webhook bằng cách chỉ đơn giản là ‘phát lại’ yêu cầu webhook đến máy chủ của bạn.

ngrok có cho macOS, Windows, Linux – tải về tại ngrok download, sau khi tải về giải nén được file ngrok (ngrok.exe trên Windows)

Để gõ được lệnh ngrok bất kỳ đầu nên copy vào một thư mục có trong biến môi trường PATH, kiểm tra các thư mục đó bằng lệnh

echo $PATH
# Trên Windows thì gõ trong PowerShell
$env:Path

Để có hướng dẫn sử dụng lệnh ngrok, gõ:

ngrok help

ngrok cung cấp các gói: Free, Basic, Pro, Business. Trong đó gói miễn phí thì giới hạn tính năng như sau:

  • Cho tạo các đường kết nối http/tcp với Url sinh ngẫu nhiên (không chọn Url được)
  • Chỉ một tiến trình ngrok chạy trực tuyến
  • Tối đa 4 đường hầm trên tiến trình
  • 40 kết nối / phút

Bạn cần vào trang chủ https://dashboard.ngrok.com/, đăng ký và quản lý tài khoản của mình, tại đây sau khi đăng nhập, bạn vào mục Your Authtoken để lấy token đăng nhập

ngrok

Sau khi có token đăng nhập, ví dụ ở đây là 1c1H3F3ibijIQZaohho51qVxlAQ_518Pvso9gbTmhxRQ19y75, thì tiến hành gõ lệnh sau để kết nối tài khoản của bạn

ngrok authtoken 1c1H3F3ibijIQZaohho51qVxlAQ_518Pvso9gbTmhxRQ19y75

Giờ bạn đã có thể tạo ra các đường hầm để từ internet của thể truy cập đến máy bạn.

2. Cách cài đặt (Trên CentOS 7).

Cài đặt wget và unzip :

yum install -y wget unzip

Tải bản cài đặt ngrok :

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip

Giải nén ngrok :

unzip ngrok-stable-linux-amd64.zip

Sau khi giải nén xong , dùng lệnh sau để xem chi tiết về các lệnh được sử dụng bởi ngrok :

./ngrok help

3. Cách sử dụng ngrok.

  • Ở đây mình sẽ ví dụ với 2 dịch vụ là web server và ssh, các dịch vụ khác chúng ta thực hiện tương tự.

3.1. Phơi dịch vụ web ra ngoài internet sử dụng ngrok.

Cài đặt dịch vụ httpd:

yum install -y httpd

Khởi động dịch vụ :

systemctl start httpd
systemctl enable httpd

Tạo file index.html :

echo "<h1>Performed by Cloud365</h1>" >> /var/www/html/index.html

Khởi tạo một tunel để dịch vụ http có thể ra ngoài internet :

./ngrok http 80

Kết quả thu được như sau :

  • Như vậy là chúng ta đã tạo thành công một tunel để web server có thể truy cập được từ internet.
  • Truy cập vào web server để kiểm tra theo 2 đường link forward ở trên.
  • Kết quả :

3.2. Phơi dịch vụ SSH ra ngoài internet sử dụng ngrok.

Để tạo được một tunel ssh chúng ta cần phải đăng nhập vào tài khoản của ngrok. Để đăng nhập, chúng ta vào đường link này .

SSH sử dụng port mặc định là 22, mình cũng sử dụng port đó nên sẽ mở tunnel thông qua port 22 với giao thức tcp:

./ngrok tcp 22

Thông tin nhận được như sau :

  • Trong đó :
    • 0.tcp.ngrok.io => là host để ssh.
    • 11721 => là port ssh.

Chúng ta tiến hành ssh thử với các thông tin như bên trên:

Trang ngrok Web Interface

Khi ngrok đang chạy, nó cung cấp một trang quản quản lý, giám sát cho bạn ở địa chỉ http://127.0.0.1:4040/, tại đây bạn có thể biết các thông số, các kết nối đến web của bạn

Đặt user/password khi của cập

Bạn có thể yêu cầu bên ngoài internet truy cập cần nhập user, password bằng cách chạy lại lệnh, với tham số sau (ví dụ tên là name, password là pass):

ngrok http -auth "name:pass" 5000

Các kết nối tcp thực hiện tương tự. Ví dụ, để mở kết nối MySQL trên máy bạn, để kết nối từ bên ngoài được thị gõ

ngrok tcp 3306
This entry was posted in ngrok and tagged .

Leave a Reply