You are currently viewing gdirect: tải Google Drive trực tiếp bằng Rust, tự dò IP và đi thẳng vào Google

gdirect: tải Google Drive trực tiếp bằng Rust, tự dò IP và đi thẳng vào Google

Nếu bạn từng phải tải một thư mục lớn trên Google Drive qua giao diện web, bạn biết cảm giác nó chậm thế nào. Còn nếu bạn ở Việt Nam hoặc bất kỳ nơi nào mà đường tới Google hay bị bóp, thì việc tải vài chục GB từ Drive có thể thành ác mộng. gdirect là một CLI viết bằng Rust, giải quyết đúng bài toán đó: tìm IP Google còn sống từ mạng của bạn, đẩy traffic Drive thẳng vào IP ấy, tải đa kết nối và có resume.

Nó làm gì, cụ thể

gdirect cho bạn browse, download, upload và mount Google Drive ngay trong terminal. Điểm khác biệt nằm ở cách nó route traffic. Với các lệnh Drive thật sự truyền dữ liệu (browse, ls, download, upload), nó dùng một IP Google đã scan được từ chính mạng của bạn, giữ nguyên hostname và kiểm tra certificate. Nếu kết nối mang SNI thật bị reset, nó tự retry dưới một identity giả (dùng g.cn làm TLS name, host thật nằm trong Host header), cùng ý tưởng với Sheas-Cealer, và ghi nhớ cái gì hiệu quả với từng IP.

Phần đăng nhập và refresh token (oauth2.googleapis.com) thì đi qua mạng hệ thống bình thường. Lệnh mount (dùng rclone) cũng vậy. Lần transfer đầu tiên sẽ tự scan IP và giữ IP nhanh nhất trong 24 giờ. Mỗi candidate được probe bằng SNI thật trước, rồi bằng identity giả, nên route lưu lại phản ánh đúng cái thực sự kết nối được.

Một chi tiết tôi thấy đáng giá: certificate được verify với GTS roots của chính Google, nhúng thẳng trong binary, không dùng CA bundle của hệ thống. Nghĩa là một CA trung gian bị compromise cũng không thể giả danh Google với gdirect.

Vì sao repo này đang được chú ý

529 sao cho một repo tạo ngày 25/10/2026, cập nhật cùng ngày. Con số đó không khổng lồ, nhưng với một CLI thuần terminal, không có topics, không marketing, và mới ra mắt thì nó nói lên nhu cầu thật. Ai từng vật lộn với Drive ở nơi mạng chập chờn đều hiểu giá trị của việc có resume và multi-connection. Điểm khác biệt so với đa số tool Drive là gdirect không ship một Google client dùng chung, bạn tự tạo OAuth client trong Google Cloud project của mình (khoảng 10 phút setup một lần). Cách này tránh việc cả cộng đồng dùng chung một quota và tránh luôn rủi ro client bị Google khóa.

Việc chọn Rust cũng hợp lý: binary gọn, không cần runtime, chạy được trên macOS, Linux và Windows. Và cái tên “pinned libaria2” trong mô tả gốc cho thấy tác giả ghim phiên bản aria2 thay vì phụ thuộc bản hệ thống, đỡ được cảnh “máy tôi cài aria2 cũ nên lỗi”.

Cài đặt và dùng thử nhanh

macOS 15+ (Apple Silicon/Intel), Linux x86_64 với glibc 2.35+ (Ubuntu 22.04+, Debian 12+, Fedora/Arch/openSUSE mới) và Windows x86_64 có sẵn bản build. Alpine/musl, glibc cũ và Linux ARM64 phải build từ source.

macOS và Linux, cần curl:

curl -fsSL https://raw.githubusercontent.com/mizorewww/gdirect/main/scripts/install.sh | bash

Windows PowerShell:

& ([scriptblock]::Create((Invoke-RestMethod 'https://raw.githubusercontent.com/mizorewww/gdirect/main/scripts/install.ps1')))

Installer đặt gdirect vào ~/.local/bin (Windows: %LOCALAPPDATA%\gdirect\bin) và in hướng dẫn thêm vào PATH. Trên Windows nhớ mở terminal mới sau khi cài. Muốn dùng mount thì thêm --with-mount (PowerShell: -WithMount), nó kéo theo rclone 1.75.2+ và FUSE3 trên Linux (qua package manager, dùng sudo). Có cả Homebrew:

brew tap mizorewww/gdirect https://github.com/mizorewww/gdirect
brew install mizorewww/gdirect/gdirect
brew install rclone # only for mount; Linux also needs your distro's fuse3 package

Setup Google một lần: tạo OAuth client kiểu Desktop app trong Google Cloud project, tải file JSON về, rồi:

gdirect login --client-secret ~/Downloads/client_secret.json

Browser mở ra, bạn approve, terminal in Logged in. File JSON không cần dùng lại. Dùng hàng ngày thì đơn giản:

gdirect # same as gdirect browse
gdirect browse -o ~/Downloads # download directory (default: ./downloads)
gdirect ls root --json
gdirect download FILE_ID_OR_URL # saves to ./downloads/
gdirect download FILE_ID -o file.zip
gdirect download DOC_ID --export application/pdf -o doc.pdf
gdirect upload ./file.zip
gdirect upload ./file.zip --parent FOLDER_ID --name backup.zip

Cái browse đáng nói: nó hiển thị folder cha, folder hiện tại và preview cạnh nhau kiểu yazi. Nhấn ? để xem toàn bộ phím tắt. Bạn có j/k, g/G, Ctrl-d/Ctrl-u để di chuyển, Enter mở folder, / để filter theo tên, Space để mark item (giữ mark khi đổi folder), y/x/p để copy/cut/paste, d để queue download (folder thì tải cả cây con, Google Docs/Sheets/Slides export ra PDF), +/- chỉnh số connection 1 đến 16 cho lần tải kế tiếp và lưu làm mặc định, c hủy nhưng giữ partial data, R retry, X xóa các download chưa chạy.

Download chạy tuần tự một file một lúc, danh sách file hiện trạng thái (◦ queued, ↓ downloading, ✓ saved, ✗ failed) và panel Downloads hiện tiến độ tổng. File trùng tên trong một session được lưu thành name (2).ext. Bị ngắt giữa chừng thì chạy lại đúng lệnh cũ để resume. File đã tải xong được nhận diện bằng checksum và báo là đã có, sau đó đối chiếu MD5 với Drive.

Ai nên dùng, và dùng khi nào

Rõ nhất là dev và sysadmin cần kéo dữ liệu lớn từ Drive lên server, hoặc người ở mạng hay bị reset kết nối tới Google. Cái mount qua rclone hữu ích nếu bạn muốn Drive hiện như một filesystem để script đọc ghi. Còn nếu bạn chỉ thỉnh thoảng tải một file vài MB thì giao diện web vẫn tiện hơn, đừng phức tạp hóa.

Có một yêu cầu mạng cần đọc kỹ trước khi cài: đăng nhập và refresh token phải tới được oauth2.googleapis.com qua mạng hệ thống. Nếu Google bị chặn hoàn toàn, bạn vẫn cần proxy hoặc VPN cho bước này. Và nếu bạn dùng proxy TUN (Clash/Mihomo TUN chẳng hạn), phải route các IP Google đã scan theo DIRECT và tắt fake-ip cho chúng, không thì traffic của gdirect bị bắt lại và scan chẳng tìm thấy gì. Lệnh gdirect scan --list cho bạn xem danh sách IP.

Ưu điểm và những chỗ cần cân nhắc

  • Ưu: binary Rust độc lập, cài một lệnh, không phụ thuộc runtime. Multi-connection 1 đến 16, resume cả download lẫn upload, tự dò IP và nhớ route 24 giờ. Verify cert bằng GTS roots nhúng sẵn là chi tiết bảo mật đáng tin hơn mức thường thấy ở tool loại này.
  • Hạn chế: bạn phải tự tạo OAuth client, mất khoảng 10 phút và cần hiểu sơ Google Cloud. Setup proxy TUN hơi rắc rối, dễ sai nếu không đọc kỹ. Một số nền tảng như Alpine/musl, glibc cũ, Linux ARM64 phải build từ source. Và đây là repo mới toanh, tạo và cập nhật cùng ngày 25/10/2026, nên đừng kỳ vọng cộng đồng đông hay tài liệu đã dày. README khá chi tiết nhưng chưa có topics, chưa có nhiều người thử để lộ bug.
  • License: GPL-2.0. Nếu bạn định nhúng vào sản phẩm thương mại đóng, cần xem lại nghĩa vụ copyleft.

Tôi sẽ không nói nó thay thế rclone. rclone vẫn là lựa chọn trưởng thành hơn cho sync đa provider. Nhưng nếu vấn đề của bạn là “Drive chậm hoặc bị reset vì đường mạng”, thì cơ chế scan IP và forged-identity fallback của gdirect là thứ rclone không làm. Hai tool bổ sung cho nhau hơn là loại trừ.

Thử nhanh thì cứ cài, login, rồi gdirect download một file vài GB xem tốc độ so với web thế nào. Nếu nhanh hơn rõ rệt và resume chạy ổn, nó xứng đáng nằm trong toolbox. Repo ở đây: mizorewww/gdirect.

Câu hỏi thường gặp

gdirect có cần dùng chung Google client với cộng đồng không?

Không. Bạn tự tạo OAuth client kiểu Desktop app trong Google Cloud project của mình, mất khoảng 10 phút setup một lần, rồi chạy gdirect login --client-secret ~/Downloads/client_secret.json. Cách này tránh việc cả cộng đồng dùng chung một quota và tránh rủi ro client bị Google khóa.

gdirect khác rclone ở điểm nào khi tải Google Drive?

Điểm khác biệt là cơ chế scan IP Google còn sống từ chính mạng của bạn và forged-identity fallback: nếu kết nối mang SNI thật bị reset, nó tự retry dưới identity giả dùng g.cn làm TLS name. rclone không làm việc này, nên hai tool bổ sung cho nhau hơn là loại trừ.

Dùng gdirect với proxy TUN như Clash/Mihomo cần lưu ý gì?

Bạn phải route các IP Google đã scan theo DIRECT và tắt fake-ip cho chúng, không thì traffic của gdirect bị bắt lại và scan chẳng tìm thấy gì. Lệnh gdirect scan --list cho bạn xem danh sách IP để cấu hình.

Chia sẻ bài này

TelegramXFacebookZalo
Đăng ngày 26/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.