Hướng dẫn thực hành · MikroTik

Trong trang này

Cloudflare WARP: cài sau mạng nền

WARP trong dự án dùng WireGuard và định tuyến IPv4 chọn lọc trên RouterOS 7. Đây là tích hợp cộng đồng, không phải ứng dụng Cloudflare One Client chính thức chạy trên MikroTik. Không dùng trên RouterOS 6.

1. Điều kiện và quyết định có cần cài

2. Tạo WARP thường ngay trên web

Mở Tạo WARP. Chọn dịch vụ cần đi qua tunnel; có thể thêm domain hoặc IPv4/CIDR, mỗi dòng một đích. Tên address list trong RouterOS là WARP_LIST. Không nhập mạng LAN, private IP, IP endpoint hay các probe giám sát; bộ tạo chặn các IP/CIDR trùng này.

Đọc điều khoản Cloudflare, tích đồng ý rồi bấm Tạo WARP mới. Trình duyệt dùng Web Crypto X25519 để tạo keypair, chỉ gửi public key qua API cùng domain tới Cloudflare. Private key không gửi lên server và không lưu localStorage. Worker không lưu account token/response vào database hoặc log payload. Giới hạn 2 lượt/phút/IP tại điểm xử lý Cloudflare; đây là chống bấm lặp cơ bản, không phải quota toàn cầu tuyệt đối.

Khi có profile hợp lệ, phần xem trước sinh lệnh và mở nút Copy cấu hình/Tải .rsc. Đổi dịch vụ hoặc thêm domain sẽ dùng lại tài khoản vừa tạo. Tải/copy trước khi đóng trang; tải lại trang làm mất private key trong bộ nhớ. Không có chức năng khôi phục key từ server. Cấu hình chứa key nên phải lưu riêng tư.

Nếu trình duyệt không hỗ trợ X25519 hoặc API từ chối/timeout, trang báo lỗi, không tự tạo profile giả và không tự gửi lại yêu cầu. Với timeout, đăng ký có thể đã diễn ra nhưng chưa nhận response. Dùng command trên macOS bên dưới nếu cần. API client WARP không phải API public có cam kết ổn định, nên khả năng đăng ký có thể thay đổi.

3. Tải bộ công cụ dự phòng

Tải bộ WARP không chứa khóa riêng, giải nén vào thư mục riêng tư. Đọc README.md trong gói. Các file đi cùng nhau: warp_config.py, hai launcher .command, script gỡ và README.

Không tải profile do người lạ chia sẻ. Các file *.conf, .rsc đã sinh và Clipboard chứa private key; không đẩy lên Git hoặc gửi nhóm chat.

4. Cách A: tạo tài khoản WARP thường trên macOS

Mở Tao_Acc_WARP_Mikrotik.command. Nếu macOS chưa cho chạy, mở Terminal, gõ bash rồi kéo đúng file .command vào cửa sổ và Enter; kiểm tra đường dẫn trước khi chạy. Không dùng lệnh bỏ bảo mật toàn máy.

Script kiểm tra wgcf, dùng Homebrew cài nếu chưa có; wgcf register --accept-tos đồng ý điều khoản Cloudflare và đăng ký tài khoản mới mỗi lần chạy. Đọc điều khoản trước; không chạy liên tục để thử. Sau đó nó tạo profile trong thư mục tạm, kiểm tra key/address/endpoint, lưu mikrotik_warp_generated.rsc quyền 0600 và copy vào Clipboard.

Nếu đăng ký lỗi, dừng và kiểm tra thông báo của wgcf/network. Không tạo endpoint hoặc public key phỏng đoán. Việc có file RSC chỉ xác nhận sinh file, chưa xác nhận Cloudflare chấp nhận tunnel. wgcf upstream.

5. Cách B: chuyển profile WireGuard có sẵn

Nếu đã có profile hợp lệ của chính bạn, dùng Tao_Cau_Hinh_WARP_Tu_Profile.command, nhập đường dẫn đầy đủ tới .conf. Công cụ xử lý profile tại máy, không nhận JWT và không đăng ký thiết bị Zero Trust. Nó phân giải hostname endpoint qua DNS khi cần.

Trên macOS có thể dùng CLI trong thư mục đã giải nén:

python3 warp_config.py /duong/dan/profile.conf /duong/dan/mikrotik_warp_generated.rsc

Profile phải có [Interface] PrivateKey, IPv4 /32, [Peer] PublicKey, Endpoint host:port. Công cụ từ chối khóa sai độ dài/base64, địa chỉ sai và port ngoài 1–65535. Khi dùng nhiều peer/profile kiểu khác, cần chuyển về profile WARP một peer đúng chuẩn trước, không tự chọn đại endpoint.

Với Zero Trust, theo lựa chọn của chủ dự án, chỉ sử dụng Tao_Acc_WARP_Zero_Trust_Mikrotik.command trên máy anh để tạo tài khoản/profile. File command này không đưa lên web, không commit và không nằm trong ZIP public; vẫn là helper thử nghiệm dùng API đăng ký client, chưa xác nhận end-to-end. Chạy từ thư mục Cloudflare WARP trên máy, đọc hướng dẫn đăng nhập của helper, giữ JWT/profile/RSC riêng tư. Sau khi có profile, dùng bộ chuyển profile ở trên để nhận cấu hình routing đã sửa; không nhập lại RSC cũ do helper tạo. Web không nhận JWT Zero Trust.

Cloudflare One Client có MASQUE và WireGuard, nhưng chuyển profile WireGuard không đồng nghĩa có đầy đủ device posture, DNS proxy hay chính sách của client chính thức. Tài khoản phải được tổ chức cho phép dùng WireGuard và enrollment phù hợp.

Nguồn: Cloudflare One Clientthiết lập tunnel.

6. Nạp cấu hình trên router

  1. Backup router, giữ phiên MAC WinBox tại chỗ. Đọc file sinh ra để biết những object sẽ được thay: wg-warp, to-warp, WARP_LIST, rule comment WARP và watchdog WARP.
  2. Xác nhận không có cấu hình khác dùng những tên này. Cài lại sẽ thay cấu hình WARP cũ, không phải tạo tunnel thứ hai.
  3. Mở Files trong WinBox, tải mikrotik_warp_generated.rsc lên router. Kiểm tra đúng tên file, không đăng ảnh chứa Source/private key.
  4. Với file tải từ web, tên mặc định là mikrotik-warp.rsc; đổi tên trong lệnh bên dưới cho đúng file đã tải. Mở New Terminal và import:
/import file-name=mikrotik_warp_generated.rsc
  1. Đọc output. Nếu lỗi, dừng và kiểm tra phần đã chạy; khối không tự hoàn tác. Nếu không lỗi, thực hiện mục 7 rồi xóa file nhập khỏi Files; giữ bản backup riêng trên máy nếu cần.

Không dán lại cấu hình nền generator sau WARP; generator dành cho router trắng. Thay đổi LAN hoặc thêm VLAN sau này phải giữ danh sách LAN đúng.

7. Kiểm tra trước khi sử dụng

Trong WireGuard > Peers, xem peer của wg-warp: Last Handshake phải mới, Rx/Tx tăng khi thử traffic. Không chia sẻ private key. Đọc thêm:

/interface wireguard peers print
/ip route print where routing-table=to-warp
/ip firewall mangle print stats where comment~"WARP"
/tool netwatch print detail where comment="WARP-Watchdog"
/ping 1.1.1.2 count=5

1.1.1.2/32 là canary được ép qua tunnel trong main, không phải DNS mặc định hay probe của PPPoE Monitor. Route blackhole dự phòng ngăn canary đi nhầm WAN khi interface mất; Netwatch dùng kết quả để bật/tắt rule đánh dấu WARP.

Sau cài, đóng/mở lại ứng dụng Telegram/trang cần test để tạo kết nối mới. Các kết nối đã FastTrack hoặc mang mark PCC từ trước không tự đổi tunnel. Counter WARP phải tăng; website thường vẫn dùng WAN. Nếu ping đạt nhưng HTTPS treo, kiểm tra MTU/MSS, endpoint, DNS và chính sách Cloudflare; ping một IP không chứng minh mọi dịch vụ hoạt động.

8. Khi chạy chung với PCC, cảnh báo và QoS

9. Thêm đích và gỡ bỏ

Thêm domain cụ thể nếu thật sự cần:

/ip firewall address-list add list=WARP_LIST address=tenmien.com

Domain không bao gồm mọi subdomain. CDN dùng IP chung có thể làm dịch vụ khác cùng IP đi tunnel; client dùng DoH có thể phân giải IP khác router. Kiểm tra counter/địa chỉ đích thực tế, không chỉ tên website.

Khi gỡ, mở mikrotik_warp_remove.rsc trong gói đã tải, đọc rồi import tại chỗ. Nó gỡ object thuộc WARP, dừng watchdog trước, không gỡ điều kiện FastTrack connection-mark=no-mark mà PCC cần. Không cam kết phục hồi mọi sửa đổi thủ công trước đó; đối chiếu backup nếu có rule tùy chỉnh.

Sau gỡ: kiểm tra không còn wg-warp, route to-warp, watchdog WARP; web thường và từng WAN vẫn chạy. Bài test mất tunnel và rollback chi tiết nằm trong kiểm thử hệ thống.

10. QoS download WARP sau giải mã

Trang tạo WARP và hai command local có tùy chọn Giới hạn download WARP (Mbps). 0 tắt; số nguyên 1–10000 bật queue FQ-CoDel tên WARP Download. Mức nhập là mức giới hạn thực, không tự nhân 95%. Đo tốc độ WARP ổn định trước rồi chọn thấp hơn khoảng 5–10%; không lấy tổng tốc độ 4 WAN làm tốc độ một tunnel.

Ví dụ chuyển profile sẵn có với giới hạn 80 Mbps:

python3 warp_config.py /duong/dan/profile.conf /duong/dan/mikrotik_warp_generated.rsc --download-mbps 80

Bộ sinh đặt packet mark warp-download ở forward, chỉ gói từ wg-warp ra interface list LAN; queue parent global xử lý tải xuống đã giải mã. Không đưa tunnel vào WAN list, không sửa mark download-wanN, không bật/tắt FastTrack toàn router. Traffic đã mang connection-mark WARP phải được loại khỏi FastTrack như cấu hình nền yêu cầu.

Đây là giới hạn download riêng cho tunnel, không phải ngân sách tổng chung WARP + WAN thường. Queue WARP không biết tunnel đang chạy trên WAN vật lý nào; không tự đổi mức khi failover sang ISP chậm hơn. Sau đổi ISP, đo lại và chỉnh mức phù hợp đường chậm nhất nếu cần. Upload vẫn do cấu hình WAN hiện có xử lý lớp ngoài; không có giới hạn upload WARP riêng. PCQ target LAN chính vẫn có thể giới hạn thêm, vì vậy kết quả đo chịu cả hai lớp queue. VLAN chỉ được queue WARP bắt khi thuộc LAN list.

Các tên WARP Download, warp-fq-codel, comment WARP QoS thuộc bộ cài. Không tái dùng queue type này trong queue tùy chỉnh: cài lại/gỡ WARP sẽ xóa nó. Cài lại với mức 0 cũng gỡ queue WARP cũ. Nếu muốn chỉnh mức trên router đã cài queue, không cần tạo tài khoản lại:

/queue tree set [find where name="WARP Download"] max-limit=80M

Chỉ chạy sau khi xác nhận queue tồn tại; thay 80M bằng mức đã đo. Nếu trước đó chưa bật QoS, tạo lại RSC từ profile giữ riêng hoặc dùng cấu hình còn trong phiên web; đọc phạm vi cleanup trước import. Không đăng ký tài khoản mới chỉ để đổi mức queue.

Xem bài test QoSchẩn đoán counter. Nền tảng queue/packet mark theo MikroTik Queues. Chưa có phép đo router thật trong bản phát hành này.

↑↓ chọn · Enter mở · Esc đóng