CreateYourVPN Academy
Router

Router OpenWRT

Cách kết nối router OpenWRT với CreateYourVPN bằng Nikki — thêm một liên kết đăng ký và các quy tắc split-tunneling trong panel của bạn sẽ tự động áp dụng cho toàn bộ mạng gia đình.

Kết nối một router — nghĩa là đưa cả ngôi nhà vào VPN: mọi điện thoại, TV và laptop đều dùng nó mà không cần thiết lập trên từng thiết bị. Trên OpenWRT đây là con đường mượt mà nhất: bạn thêm một liên kết đăng ký, và router kéo về từ đó cả máy chủ, lẫn các quy tắc split-tunneling trong panel của bạn. Thay đổi quy tắc trong panel — router sẽ nhận chúng ở lần làm mới tiếp theo.

Chúng tôi dùng Nikki — một ứng dụng OpenWRT nhẹ được xây trên lõi mihomo (Clash.Meta). Hướng dẫn này đi qua toàn bộ quy trình: cài đặt Nikki (phương pháp chính là thủ công — feed của dự án không mở được ở nhiều nhà cung cấp), kết nối subscription, tự động cập nhật và kiểm tra.

Nikki cần OpenWRT 24.10 trở lên (25.x và SNAPSHOT cũng dùng được). OpenWRT 23.05 không được hỗ trợ.

Những gì bạn cần

  • Một router chạy OpenWRT ≥ 24.10 có truy cập internet.
  • Quyền truy cập giao diện web của router (LuCI) và qua SSH (đăng nhập root, mật khẩu giống với LuCI).
  • Một máy tính trong cùng mạng và 10–15 phút.

Bước 1. Cài Nikki

Nikki không có trong các feed mặc định của OpenWRT — nó được cài từ package feed riêng của mình. Vấn đề là feed và script cài đặt đều nằm trên GitHub, mà nó lại khó truy cập ở nhiều nhà cung cấp — cách cài đặt nhanh “chỉ hai lệnh” vì vậy thường không chạy được. Do đó phương pháp chính ở đây là cách thủ công: nó luôn hoạt động. Nếu GitHub ở chỗ bạn truy cập bình thường, cách B nhanh hơn.

Cách A — thủ công (luôn hoạt động)

Bạn tải các gói về máy tính rồi tự chuyển sang router — bản thân router không cần truy cập GitHub.

Xác định kiến trúc của router: trong LuCI mở System → Software rồi nhấn Update lists… — kết quả hiển thị sẽ cho thấy kiến trúc (ví dụ x86_64 hoặc aarch64_cortex-a53). Cách khác qua SSH: grep OPENWRT_ARCH /etc/os-release.

Mở trang phát hành nikkinikki.pages.dev, vào thư mục ứng với phiên bản OpenWRT của bạn (openwrt-24.10, openwrt-25.12 hoặc SNAPSHOT), rồi vào thư mục kiến trúc của bạn. Tải về ba gói: mihomo-meta (lõi), nikkiluci-app-nikki — cộng thêm luci-i18n-nikki-ru, nếu bạn cần giao diện tiếng Nga. Với các bản ổn định đây là file .ipk, với SNAPSHOT là .apk. Gộp tất cả vào một thư mục riêng, ví dụ Downloads/nikki.

Sao chép thư mục sang router. Cờ -O là bắt buộc: nếu thiếu, scp sẽ cố dùng SFTP — thứ mà OpenWRT không có (nếu phiên bản scp của bạn không hỗ trợ cờ -O, cứ bỏ nó đi: các phiên bản cũ vốn đã dùng đúng giao thức cần thiết rồi). Nếu thư mục của bạn không nằm trong “Downloads” hoặc có tên khác — hãy sửa lại đường dẫn trong lệnh.

macOS / Linux:

scp -O -r ~/Downloads/nikki root@192.168.1.1:/root/

Windows (PowerShell):

scp -O -r "$env:USERPROFILE\Downloads\nikki" root@192.168.1.1:/root/

Kết nối qua SSH và cài các gói từ thư mục đó — lõi mihomo đứng đầu danh sách:

ssh root@192.168.1.1
opkg update
cd nikki
opkg install ./mihomo-meta*.ipk ./nikki*.ipk ./luci-app-nikki*.ipk

opkg update là cần thiết để trình quản lý gói có thể lấy về các gói phụ thuộc từ kho chính thức của OpenWRT. Nếu đã tải bản dịch tiếng Nga, hãy thêm ./luci-i18n-nikki-ru*.ipk vào cuối lệnh. Trên các bản SNAPSHOT không có opkg — thay cho hai lệnh cuối, hãy chạy apk update, rồi apk add --allow-untrusted ./mihomo-meta*.apk ./nikki*.apk ./luci-app-nikki*.apk (cần có cờ này vì khi cài thủ công, hệ thống không có khóa ký của dự án).

Cách B — từ feed của dự án (nếu truy cập được GitHub)

Cách cài đặt cổ điển chỉ với hai lệnh. Hãy thử cách này nếu nhà cung cấp của bạn truy cập GitHub bình thường.

Kết nối vào router qua SSH và thêm feed của dự án:

ssh root@192.168.1.1
wget -O - https://github.com/nikkinikki-org/OpenWrt-nikki/raw/refs/heads/main/feed.sh | ash

192.168.1.1 — địa chỉ mặc định của router; nếu router của bạn dùng địa chỉ khác, hãy thay vào đó.

Cài các gói — lõi mihomo sẽ được kéo về tự động:

opkg install nikki luci-app-nikki luci-i18n-nikki-ru

luci-i18n-nikki-ru — bản dịch tiếng Nga tùy chọn cho giao diện Nikki. Trên các bản SNAPSHOT, trình quản lý gói khác đi: các gói tương tự được cài qua apk add.

Nếu script bị treo hoặc các gói không cài được — nghĩa là feed không truy cập được từ nhà cung cấp của bạn. Không sao cả: cách A hoạt động mà không cần đến nó.

Hướng dẫn chính thức luôn được cập nhật — nếu có lệnh nào thay đổi, hãy đối chiếu với đó:

Dù bạn cài đặt các gói theo cách nào, sau khi cài xong hãy đăng xuất khỏi LuCI rồi đăng nhập lại — chỉ sau khi đăng nhập lại, mục Services → Nikki mới xuất hiện trong menu.

Bước 2. Sao chép liên kết đăng ký từ tài khoản của bạn

Đăng nhập vào tài khoản của bạn và tìm khối “Router”.

Bật công tắc “Bật hỗ trợ router”.

Sao chép liên kết đăng ký (OpenWRT / Nikki) — nó kết thúc bằng /clash. Chính qua liên kết này, router nhận được cả máy chủ lẫn các quy tắc split-tunneling từ panel.

Liên kết đăng ký là một bí mật — bất kỳ ai có nó đều có thể dùng VPN của bạn. Đừng chia sẻ hay đăng nó ở bất cứ đâu.

Bước 3. Thêm subscription vào Nikki

Trong Services → Nikki, mở tab Profile và thêm một subscription mới: tên tùy ý (ví dụ CreateYourVPN), trong ô Subscription Link dán liên kết đăng ký từ tài khoản của bạn vào. Các ô còn lại có thể để nguyên. Nhấn Save & Apply.

Nhấn Update ở subscription đó — Nikki sẽ tải về profile: máy chủ và các quy tắc split-tunneling của bạn.

Bước 4. Bật Nikki

Ở tab Proxy Config, đảm bảo proxy đã bật (Enable), và chuyển TCP Mode sang TPROXY. Nhấn Save & Apply. Nikki sẽ tự thiết lập các quy tắc tường lửa.

Ở tab App Config, bật EnableFast Reload, trong ô chọn profile hãy chọn subscription vừa thêm, rồi nhấn Save & Apply — dịch vụ sẽ khởi động.

Nên bật luôn Scheduled Restart ở đó với một biểu thức cron, ví dụ 0 5 * * * (mỗi ngày lúc 05:00). Mỗi lần khởi động lại, Nikki sẽ tải lại subscription — nhờ đó router tự động nhận các quy tắc đã thay đổi trong panel và máy chủ mới nhất, không cần cập nhật thủ công.

Bước 5. Kiểm tra mọi thứ đã hoạt động

Nhấn Open Dashboard trong Nikki — bảng điều khiển của lõi sẽ mở ra, hiển thị trạng thái và máy chủ của bạn. Sau đó, trên bất kỳ thiết bị nào kết nối qua router, hãy mở một trang web đáng lẽ phải đi qua VPN và xác nhận vị trí địa lý hiển thị đã thay đổi. Các trang bạn đánh dấu là ngoại lệ (đi vòng qua VPN) vẫn nên mở trực tiếp như trước.

Nếu lõi không khởi động ngay lần đầu. Lần đầu chạy, mihomo tải thêm các cơ sở dữ liệu geo từ GitHub (dùng cho các quy tắc theo quốc gia/danh mục), nên router cần có internet — và nếu mạng của bạn khó truy cập GitHub, lần khởi động đầu tiên có thể thất bại. Hãy khởi động lại Nikki (hoặc cả router) rồi mở lại Dashboard — đôi khi cần thử vài lần cho tới khi tải xong các cơ sở dữ liệu. Một khi dịch vụ đã chạy được, nó sẽ hoạt động ổn định từ đó trở đi.

Cách các quy tắc và máy chủ được cập nhật

Bạn chỉnh sửa các quy tắc split-tunneling trong panel — không cần thay đổi gì trên router. Router sẽ lấy về phiên bản mới nhất mỗi khi subscription được làm mới: tự động theo lịch (Scheduled Restart ở bước 4) hoặc thủ công bằng nút Update ở tab Profile. Máy chủ cũng được cập nhật cùng với các quy tắc: nếu bạn được chuyển sang máy chủ mới, router sẽ chuyển sang máy chủ đó ở lần làm mới subscription tiếp theo.

Mẹo: torrent và tải trên router

Giờ đây toàn bộ lưu lượng của mạng gia đình đều đi qua lõi mihomo trên router. Các lượt tải P2P nặng trên phần cứng yếu có thể đẩy CPU của router lên mức tối đa và làm giảm tốc độ. Nếu gặp phải tình trạng này, hãy giới hạn việc chặn lưu lượng bằng danh sách cổng: ở tab Proxy Config → Bypass, chuyển Destination TCP PortDestination UDP Port sang Custom và liệt kê các cổng cần đi qua VPN (ví dụ 80443; sau khi nhập mỗi giá trị hãy nhấn Enter, rồi nhấn Save & Apply). Mọi thứ không nằm trong danh sách — kể cả các ứng dụng torrent với các cổng cao ngẫu nhiên của chúng — sẽ đi thẳng, không qua VPN và lõi.

Đây là một sự đánh đổi: các ứng dụng chạy trên cổng ngoài danh sách cũng sẽ ngừng đi qua VPN. Chỉ nên dùng cách này nếu tải trên router thực sự gây cản trở.

Tài liệu tham khảo hữu ích

On this page