Tôi chắc rằng bạn đã từng tìm cách chia sẻ trang web của mình từ “localhost” để mọi người có thể truy cập, hay show sản phẩm demo cho khách hàng mà ko phải mua thêm hosting. Một vài dịch vụ có thể làm việc đó như Ngrok, Localtunnel, Serveo,…
Tuy nhiên hạn chế của những dịch vụ kể trên với phiên bản miễn phí là không thể custom tên miền riêng của bạn, giới hạn số lượng request, thời gian hoạt động. Nếu bạn sử dụng mã nguồn wordpress thì các url của tệp tĩnh như css, js, hình ảnh sẽ bị lỗi 404.
Và rồi tôi đã vô tình va vào Cloudflare Tunnel. Lúc đầu cũng chả biết nó có đáp ứng đủ yêu cầu của mình không. Thôi thì cứ thử cho nhau một cơ hội.
Thật sự mình quá bất ngờ về những gì mà Cloudflare Tunnel làm được. Đã thế còn miễn phí nữa thì ai mà chịu cho nỗi.
Không luyên thuyên nữa, ở bài viết này mình sẽ hướng dẫn sử dụng Cloudflare Tunnel để chia sẻ trang web từ localhost.
Giới thiệu về Cloudflare Tunnel
Cloudflare Tunnel là một công cụ cho phép bạn kết nối các tài nguyên của mình với Cloudflare một cách an toàn mà không cần địa chỉ IP công khai.
Mọi request gửi, request nhận sẽ được lưu thông qua Cloudflare. Điều này giúp thiết bị của bạn giảm tải rất nhiều nếu như có sự cố như DDoS, vì Cloudflare sẽ gánh hết. Đồng thời nó cũng tạo cache ở người truy cập và mang lại tốc độ tốt không khác gì một dự án thực.
Hướng dẫn sử dụng Cloudflare Tunnel
Yêu cầu
Để Cloudflare Tunnel có thể hoạt động tốt nhất bạn cần chuẩn bị những thứ sau đây:
- Tên miền: Bạn cần có 1 tên miền để có thể sử dụng Cloudflare Tunnel. Bạn có thể đăng ký các tên miền giá rẻ io.vn, id.vn. Hoặc đăng ký tên miền miễn phí eu.org tại đây.
- Cấu hình tên miền ảo cho localhost: Các công cụ Wamp, Xamp, Laragon đều hỗ trợ tình năng này.
Ví dụ:- Tên miền thực là domain.com
- Tên miền để public website tôi sẽ dùng thêm subdomain là public.domain.com
- Xây dựng website dựa trên subdomain vừa tạo ở trên trong localhost.
Nhớ tạo tệp robots.txt để tránh các công cụ SERPs index những web phụ này nhé
User-agent: *
Disallow: /
Cài đặt và cấu hình Cloudflare Tunnel
Những bước kết nối tên miền với Cloudflare mình sẽ không nhắc lại ở bài viết này nhé.
1. Tại trang chủ cloudflare chọn Zero Trust.
2. Chọn Access → chọn Tunnels → bấm Create a tunnel.
3. Mục Name your tunnel điền tên tunnel của bạn (không có khoảng trắng) → bấm Save tunnel.
4. Chọn hệ điều hành theo thiết bị của bạn. Như của tôi là Windows 64-bit → bấm vào link tải Cloudflared.
5. Click đúp vào tệp Clouflared.msi vừa tải để cài đặt.
6. Mở CMD với quyền Administrator.
7. Copy và dán đoạn code vào CMD → nhấn Enter.
8. Nếu thành công nó sẽ hiện thông báo Connected → bấm Next.
9. Tại đây hãy điền vào các trường theo nhu cầu của bạn nhé.
10. Ở phần TLS bên dưới hãy bật mục No TLS Verify để không bị lỗi SSL.
11. Bấm Save tunnel và nếu bạn thấy Status báo HEALTHY tức Tunnel đã hoạt động.
Bây giờ bạn hãy sử dụng một thiết bị khác để kiểm tra.
Bật / Tắt Tunnel khi không sử dụng
Sử dụng CMD
Mở CMD với quyền Administrator và nhập lệnh bên dưới:
- Tắt:
sc stop cloudflared
- Bật:
sc start cloudflared
Bạn cũng có thể tạo thành tệp .cmd để tao tác nhanh hơn. Tuy nhiên, cần chỉnh thêm một chút để tệp có thể chạy tự động với quyền Admin.
- Chuột phải trên windows chọn New → Text Document
- Đổi tên tệp theo ý của bạn.
Ví dụSTOP Cloudflared.cmd
,STOP Cloudflared.cmd
. - Click chuột vào tệp bạn vừa tạo chọn Edit và điền nội dung bên dưới:
- Để tắt:
@echo off
>nul 2>&1 "%SYSTEMROOT%System32cacls.exe" "%SYSTEMROOT%System32configsystem"
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else (goto gotAdmin)
:UACPrompt
echo Set UAC = CreateObject^(“Shell.Application”^) > “%temp%getadmin.vbs”
set params = %*:”=””
echo UAC.ShellExecute “%~s0”, “%params%”, “”, “runas”, 1 >> “%temp%getadmin.vbs”
“%temp%getadmin.vbs”
del “%temp%getadmin.vbs”
exit /B
:gotAdmin
sc stop cloudflared
- Để bật:
@echo off
>nul 2>&1 "%SYSTEMROOT%System32cacls.exe" "%SYSTEMROOT%System32configsystem"
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else (goto gotAdmin)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "%~s0", "%params%", "", "runas", 1 >> "%temp%getadmin.vbs"
"%temp%getadmin.vbs"
del "%temp%getadmin.vbs"
exit /B
:gotAdmin
sc start cloudflared
Hãy chạy tệp này với quyền Administrator nhé.
Sử dụng Bản ghi CNAME DNS
Hoặc tắt bằng proxy (đám mây vàng) của bản ghi CNAME trong khu vực quản lý DNS Cloudflare.
Kết luận
Như vậy, thông qua những thông tin trình bày ở trên, chúng ta có thể thấy Cloudflare Tunnel là một công cụ hữu ích cho phép bạn chia sẻ trang web của mình từ localhost một cách dễ dàng và an toàn. Với nhiều lợi ích như bảo vệ DDoS tích hợp, cân bằng tải và đường hầm được mã hóa, việc sử dụng Cloudflare Tunnel sẽ giúp bạn an tâm hơn trong việc bảo vệ tài nguyên của mình.
Hy vọng bài viết này sẽ giúp ích cho bạn trong việc hiểu rõ hơn về Cloudflare Tunnel và cách sử dụng nó.
Tham khảo thêm tại: Cloudflare Tunnel.