Scoop proxy: scoop config proxy cho tải gói và git bucket
Scoop proxy là cấu hình để trình quản lý gói Scoop trên Windows tải ứng dụng và cập nhật bucket qua một máy chủ proxy. Scoop có hai đường mạng khác nhau, một đường tải tệp bằng PowerShell và một đường cập nhật bucket bằng git, mỗi đường đọc proxy theo cách riêng. ProxyVN đọc mã nguồn của Scoop, chạy lại đúng hàm đặt proxy của nó và gọi git qua proxy có nhật ký để chỉ ra khi nào hai đường này cho kết quả khác nhau.
Scoop proxy: tác vụ cụ thể và ranh giới với bài đã có
Scoop là gì
Scoop cài ứng dụng dòng lệnh và ứng dụng di động vào thư mục người dùng, không cần quyền quản trị. Danh sách ứng dụng nằm trong các bucket, mỗi bucket là một kho git chứa tệp manifest JSON. Manifest ghi URL tải, mã băm và cách giải nén. Khi chạy scoop install, Scoop đọc manifest trong bucket đã có trên máy, tải tệp từ URL trong manifest, kiểm mã băm rồi giải nén.
Vì không cần quyền quản trị, Scoop hay được dùng trên máy công ty, nơi người dùng không được cài phần mềm theo cách thông thường. Máy công ty cũng là nơi thường phải đi qua proxy.
Ranh giới với bài khác
Bài PowerShell proxy nói về proxy cho Invoke-WebRequest và PowerShell Gallery. Bài git proxy nói về cấu hình http.proxy của git. Bài này chỉ nói về lệnh scoop config proxy, cách Scoop chuyển giá trị đó sang hai đường mạng của mình, và các trường hợp hai đường cho kết quả lệch nhau.
Phạm vi kiểm thử
Máy lab không cài Scoop. Bài đọc trang Using Scoop behind a proxy trong wiki chính thức và hai tệp mã nguồn trên nhánh master ngày 29/10/2026: lib/download.ps1 có hàm setup_proxy, lib/core.ps1 có hàm Invoke-Git. Lab chạy lại nguyên văn setup_proxy trong Windows PowerShell 5.1.19041 rồi tải tệp bằng Net.WebClient qua proxy HTTP tự dựng có tài khoản user1, mật khẩu p@ss#2026. Phần git chạy git 2.55.0 thật, lệnh ls-remote tới kho Main của Scoop trên GitHub qua cùng proxy.
Đặt Scoop proxy và hai đường mạng: git cho bucket, HTTP cho tệp tải

Hai đường mạng của Scoop
Đường thứ nhất: tải tệp ứng dụng
Hàm setup_proxy chạy mỗi khi Scoop nạp thư viện tải. Hàm đọc giá trị proxy trong cấu hình, tách phần tài khoản và phần địa chỉ ở dấu @ không có gạch chéo ngược đứng trước. Sau đó hàm gán [Net.WebRequest]::DefaultWebProxy, proxy mặc định của .NET trong tiến trình PowerShell. Mọi lần tải bằng Net.WebClient sau đó đi theo proxy này.
Nếu anh em bật aria2 để tải nhanh hơn, Scoop đọc lại DefaultWebProxy rồi truyền cho aria2 bằng các tham số --all-proxy, --all-proxy-user và --all-proxy-passwd. Vậy aria2 cũng theo cùng cấu hình, chỉ khác cách truyền.
Đường thứ hai: git cho bucket
Bucket là kho git. Lệnh scoop bucket add và scoop update gọi git clone, git pull. Hàm Invoke-Git không dùng DefaultWebProxy. Với các lệnh clone, checkout, pull, fetch và ls-remote, hàm chạy git trong một PowerShell job riêng và đặt biến môi trường HTTPS_PROXY, HTTP_PROXY bằng nguyên văn giá trị scoop config proxy. Nếu giá trị bắt đầu bằng currentuser@, hàm đổi phần này thành :@ trước.
Cùng một chuỗi cấu hình được .NET đọc theo một kiểu và được git đọc theo kiểu khác. Đây là gốc của hầu hết lỗi Scoop proxy mà người dùng gặp: cài ứng dụng chạy được nhưng thêm bucket thì lỗi, hoặc ngược lại.
Chuẩn bị phiên bản, tài khoản và môi trường kiểm thử Scoop proxy
Ghi phiên bản
Chạy scoop --version để xem phiên bản Scoop và commit của từng bucket. Chạy git --version cho git mà Scoop dùng. Scoop tìm git qua hàm trợ giúp Get-HelperPath, có thể là git cài bằng Scoop hoặc git có sẵn trên máy, nên gõ where git để biết bản nào đang được gọi. Ghi lại cả hai trước khi đổi cấu hình.
Tài khoản proxy
Chuẩn bị địa chỉ, cổng, tên đăng nhập và mật khẩu. Ghi chú riêng mật khẩu có chứa @ hoặc : hay không, vì hai ký tự này quyết định cách viết cấu hình ở phần sau. Nếu nhà cung cấp cho phép xác thực bằng IP, đây là cách ít rắc rối nhất với Scoop vì không còn tài khoản trong chuỗi cấu hình. Bài xác thực proxy bằng IP whitelist hay user password so sánh hai cách.
Bucket thử nghiệm và tệp tải nhỏ
Để kiểm cả hai đường mà không cài phần mềm thật, tạo một bucket riêng có một manifest trỏ tới một tệp nhỏ trên máy chủ của mình:
{
"version": "1.0.0",
"description": "Goi thu proxy",
"url": "https://tep-thu.vi-du.vn/lab-proxy-1.0.0.zip",
"hash": "sha256:<ma-bam-cua-tep>",
"bin": "lab.cmd"
}
Đưa manifest vào một kho git riêng, rồi thêm bằng scoop bucket add lab https://git.vi-du.vn/lab-bucket. Bước bucket add kiểm đường git, bước scoop install lab/lab-proxy kiểm đường tải tệp. Bài chưa chạy bucket này vì máy lab không có Scoop.
Proxy có nhật ký
Proxy tự dựng của lab ghi mỗi request thành một dòng JSON gồm phương thức, đích, tài khoản gửi lên và kết quả xác thực. Với proxy mua ngoài, dùng bảng thống kê lưu lượng. Không có nhật ký thì không phân biệt được Scoop đi proxy hay đi thẳng.
Cấu hình Scoop proxy tối thiểu và phạm vi từng thiết lập
Cú pháp theo wiki
Wiki ghi cú pháp scoop config proxy [username:password@]host:port, kèm các dạng sau:
scoop config proxy currentuser@default
scoop config proxy user1:matkhau@default
scoop config proxy 203.0.113.10:8080
scoop config proxy user1:matkhau@203.0.113.10:8080
scoop config proxy none
scoop config rm proxy
currentuser dùng tài khoản Windows đang đăng nhập để xác thực với proxy, hợp với proxy công ty xác thực theo miền. default dùng địa chỉ proxy đặt trong Internet Options của Windows. none bỏ qua proxy hệ thống và đi thẳng. Không đặt gì thì Scoop dùng proxy của Internet Options, không gửi tài khoản.
Không ghi tiền tố http://
Hàm setup_proxy tự thêm http:// vào trước địa chỉ. Lab thử giá trị http://127.0.0.1:8971, đối tượng WebProxy nhận địa chỉ http://http//127.0.0.1:8971 và lần tải báo không phân giải được tên proxy http. Chỉ ghi host:port, không ghi tiền tố. Cũng vì tiền tố http:// được gắn cứng, Scoop không có cách khai báo proxy SOCKS5 cho đường tải tệp.
Ký tự đặc biệt trong mật khẩu
Wiki dặn mật khẩu có @ hoặc : phải thoát bằng gạch chéo ngược, ví dụ p\@ss. Hàm setup_proxy tách theo dấu @ và dấu : không có gạch chéo ngược đứng trước, rồi bỏ gạch chéo ngược khỏi tên và mật khẩu. Dấu # và các ký tự khác không cần thoát.
Trên dòng lệnh PowerShell, bọc giá trị trong nháy đơn để gạch chéo ngược và dấu # không bị hiểu sai:
scoop config proxy 'user1:p\@ss#2026@203.0.113.10:8080'
scoop config proxy
Lệnh thứ hai in lại giá trị đã lưu để soát.
Chạy đối chứng và đọc log Scoop proxy

Một chuỗi, hai cách hiểu
Đường tải tệp qua WebClient
Lab chạy lại hàm setup_proxy với bảy giá trị, sau mỗi lần tải một tệp từ máy chủ lab tên shop.test. Tên này chỉ proxy lab phân giải được, nên tải thành công nghĩa là đã đi qua proxy.
Giá trị scoop config proxy |
Kết quả tải |
Nhật ký proxy |
|---|---|---|
user1:p\@ss#[email protected]:8971 |
Thành công |
407 không tài khoản, rồi 200 có user1 |
user1:p@ss#[email protected]:8971 |
Không phân giải được proxy tên ss |
Trống |
127.0.0.1:8971 |
407 |
Một dòng không tài khoản |
[email protected]:8971 |
407 |
Một dòng không tài khoản |
none |
Không phân giải được shop.test, đi thẳng |
Trống |
user1:p\@ss#[email protected]:8999 |
Không kết nối được máy chủ |
Trống |
Để trống, máy không bật proxy hệ thống |
Đi thẳng |
Trống |
Dòng thứ nhất cho thấy .NET gửi request đầu không có tài khoản, nhận 407 rồi mới gửi lại kèm tài khoản. Hai dòng nhật ký cho một lần tải là bình thường. Dòng thứ hai cho thấy quên thoát @ làm Scoop tách sai, coi phần sau @ đầu tiên là địa chỉ. Dòng thứ tư cho thấy currentuser không có tác dụng với proxy xác thực Basic như proxy thương mại, vì tài khoản Windows không phải tài khoản của nhà cung cấp.
Đường git qua biến môi trường
Invoke-Git đặt HTTPS_PROXY bằng nguyên văn giá trị cấu hình. Lab đặt bốn giá trị cho biến này rồi chạy git ls-remote tới kho Main của Scoop:
Giá trị HTTPS_PROXY |
Kết quả git |
Nhật ký proxy |
|---|---|---|
user1:p\@ss#[email protected]:8971 |
remote helper https aborted session |
Trống |
user1:p%40ss%[email protected]:8971 |
Lấy được mã commit của HEAD |
407 rồi CONNECT github.com:443 có user1 |
127.0.0.1:8971 |
CONNECT tunnel failed, response 407 |
Không tài khoản |
:@127.0.0.1:8971 |
CONNECT tunnel failed, response 407 |
Không tài khoản |
Giá trị dùng tốt cho WebClient ở dòng đầu bảng trước lại làm git hỏng ngay ở bước đọc URL proxy, chưa có kết nối nào tới proxy. Giá trị git hiểu đúng, mật khẩu mã hóa phần trăm, lại làm WebClient nhận 407: lab chạy thử, setup_proxy giữ nguyên chuỗi p%40ss%232026 làm mật khẩu. Với mật khẩu có @, không có chuỗi nào cùng lúc hợp cho cả hai đường.
Cách đọc hai bảng cùng nhau
Đặt hai bảng cạnh nhau sẽ thấy quy luật. Đường tải tệp cần mật khẩu gốc với @ và : được thoát bằng gạch chéo ngược, vì setup_proxy tự tách chuỗi. Đường git cần URL chuẩn với mật khẩu mã hóa phần trăm, vì git đọc biến môi trường như một URL. Hai yêu cầu này trùng nhau chỉ khi mật khẩu không có ký tự cần thoát hay cần mã hóa. Mật khẩu chỉ có chữ, số và dấu gạch dưới là đủ an toàn cho cả hai.
Ký tự # trong mật khẩu lab không cần thoát với setup_proxy, nhưng với git thì # bắt đầu phần fragment của URL nếu không mã hóa. Vì vậy, ngay cả mật khẩu không có @ mà có #, chuỗi gốc vẫn có thể làm git hiểu sai.
Dạng :@ và currentuser
Wiki giải thích currentuser@host làm scoop bucket add lỗi vì git hiểu khác, và gợi ý tạm đặt :@host:port khi thêm bucket. Dạng :@ là cách nói với git rằng có xác thực nhưng không có tên và mật khẩu, để git dùng xác thực tích hợp của Windows như NTLM hoặc Negotiate với proxy công ty. Trong lab, proxy chỉ hiểu Basic nên trả 407. Với proxy công ty hỗ trợ NTLM, dạng này mới có tác dụng.
Cách xử lý mật khẩu có ký tự đặc biệt trong Scoop proxy
Cách 1: đổi mật khẩu
Nếu nhà cung cấp cho đổi mật khẩu proxy, chọn mật khẩu chỉ gồm chữ và số. Khi đó chuỗi user1:[email protected]:8080 đúng với cả WebClient lẫn git, không cần thoát hay mã hóa gì. Đây là cách gọn nhất.
Cách 2: cấu hình git riêng

Git ưu tiên cấu hình riêng
Git ưu tiên cấu hình http.proxy hơn biến môi trường. Lab kiểm hai chiều: http.proxy đúng cùng HTTPS_PROXY hỏng thì git chạy và đi qua proxy, http.proxy trỏ cổng chết cùng HTTPS_PROXY đúng thì git báo không kết nối được. Nghĩa là đặt http.proxy cho git sẽ đè lên giá trị mà Invoke-Git truyền qua biến môi trường:
scoop config proxy 'user1:p\@ss#2026@203.0.113.10:8080'
git config --global http.proxy 'http://user1:p%40ss%232026@203.0.113.10:8080'
Dòng thứ nhất dành cho đường tải tệp, dòng thứ hai dành cho git. Lưu ý http.proxy toàn cục áp cho mọi kho git trên máy, không chỉ bucket của Scoop. Nếu chỉ muốn áp cho kho trên GitHub, dùng khóa http.https://github.com.proxy. Bài git proxy giải thích các mức cấu hình của git.
Cách 3: proxy xác thực bằng IP
Khi proxy nhận xác thực theo IP, cấu hình chỉ còn 203.0.113.10:8080. Không có tài khoản thì không có ký tự đặc biệt, hai đường cùng hiểu một chuỗi. Bảng định dạng proxy có cách đổi giữa các dạng ghi proxy nếu nhà cung cấp cấp dạng ip:port:user:pass.
Scoop proxy với bucket và máy chủ tải trong mạng nội bộ
Scoop không có danh sách bỏ qua
Hàm setup_proxy chỉ gán địa chỉ và tài khoản cho WebProxy, không gán danh sách bỏ qua. Khi cấu hình là host:port cụ thể, mọi lần tải tệp đều đi qua proxy đó, kể cả URL trỏ tới máy chủ nội bộ. Nếu proxy ở ngoài không vào được mạng nội bộ, tải từ máy chủ nội bộ sẽ lỗi.
Giá trị default thì khác: proxy hệ thống của Windows có danh sách ngoại lệ riêng trong Internet Options, và .NET tôn trọng danh sách đó. Với nhóm vừa có bucket nội bộ vừa cần ra Internet qua proxy, đặt proxy cùng ngoại lệ ở cài đặt Windows rồi để Scoop dùng default có khi gọn hơn đặt địa chỉ cụ thể. Bài No_proxy là gì nói về cách viết danh sách ngoại lệ.
Bỏ qua proxy cho kho git nội bộ
Phía git có thể tách theo URL. Cấu hình http.<url>.proxy với giá trị rỗng làm kho đó đi thẳng, còn các kho khác vẫn theo http.proxy chung:
git config --global http.proxy 'http://user1:p%40ss%232026@203.0.113.10:8080'
git config --global http.https://git.noi-bo.vn/.proxy ''
Hai dòng này áp cho mọi lần git chạy trên máy, kể cả khi Scoop gọi git. Vì cấu hình git thắng biến môi trường như lab đã thấy, bucket nội bộ sẽ đi thẳng dù Invoke-Git có đặt HTTPS_PROXY.
aria2 với Scoop proxy
Cách Scoop truyền proxy cho aria2
Khi bật aria2 bằng scoop config aria2-enabled true, Scoop dựng dòng lệnh cho aria2 từ DefaultWebProxy: --all-proxy lấy phần host:port, --all-proxy-user và --all-proxy-passwd lấy từ tài khoản đã gán. Nếu cấu hình là none, Scoop không truyền proxy cho aria2.
Do lấy tài khoản từ đối tượng .NET sau khi đã tách, mật khẩu truyền cho aria2 là mật khẩu gốc, không có gạch chéo ngược. aria2 nhận mật khẩu qua tham số riêng nên không gặp chuyện mã hóa URL như git.
Mật khẩu trên dòng lệnh
Mã nguồn có thay mật khẩu bằng dấu sao khi in dòng lệnh aria2 ra màn hình chẩn đoán. Nhưng mật khẩu vẫn nằm trong tham số của tiến trình aria2 trong lúc chạy. Trên máy nhiều người dùng chung, người khác có thể xem tham số tiến trình. Cân nhắc điều này trước khi dùng aria2 với proxy có mật khẩu trên máy dùng chung.
Khi aria2 lỗi mà WebClient không lỗi
Lab không chạy aria2. Nếu aria2 báo lỗi proxy trong khi tắt aria2 thì tải được, kiểm proxy có hỗ trợ nhiều kết nối song song từ một tài khoản không. aria2 mở nhiều kết nối cùng lúc để tăng tốc, một số gói proxy giới hạn số kết nối đồng thời.
Thứ tự gỡ lỗi khi chưa rõ đường nào hỏng
Khi Scoop báo lỗi mạng mà chưa rõ nguyên nhân, tách hai đường ra thử riêng. Với đường tải tệp, mở PowerShell, chạy hai dòng gán DefaultWebProxy như phần cài Scoop ở dưới rồi tải thử một URL bằng Net.WebClient. Với đường git, đặt HTTPS_PROXY đúng như chuỗi trong scoop config proxy rồi chạy git ls-remote tới một kho công khai. Đường nào lỗi thì sửa đường đó, không sửa cả hai cùng lúc.
Thử riêng như vậy mất vài phút nhưng tiết kiệm nhiều thời gian hơn việc đổi cấu hình rồi chạy lại scoop update nhiều lần. Mỗi lần scoop update còn cập nhật mọi bucket, chạy lâu và in nhiều dòng khó đọc.
Proxy hệ thống và Scoop proxy
default đọc gì
Giá trị default hoặc để trống dùng GetSystemWebProxy của .NET, đọc cài đặt proxy của tài khoản Windows đang chạy Scoop, gồm cả tệp PAC và tự dò nếu có. Đây là proxy đặt trong Settings hoặc Internet Options, như bài cài đặt proxy cho Windows 10 hướng dẫn.
Git không đọc cài đặt này. Khi cấu hình Scoop để trống, Invoke-Git chạy git như bình thường, git dùng cấu hình riêng của git hoặc biến môi trường có sẵn. Trường hợp hay gặp: máy có proxy hệ thống, scoop install chạy được, scoop update báo lỗi git vì git đi thẳng và bị tường lửa chặn. Xử lý bằng cách đặt http.proxy cho git như cách 2 ở trên.
none để đi thẳng
Giá trị none gán DefaultWebProxy rỗng, Scoop đi thẳng dù Windows có proxy. Với git, Invoke-Git cũng không đặt biến nào. Dùng none khi proxy hệ thống chỉ dành cho trình duyệt, còn mạng cho phép công cụ dòng lệnh đi thẳng.
Cài chính Scoop sau Scoop proxy
Script cài đặt
Wiki ghi lệnh cài Scoop tải script từ get.scoop.sh bằng Net.WebClient. Trước khi chạy, cấu hình proxy cho phiên PowerShell hiện tại:
[net.webrequest]::defaultwebproxy = New-Object net.webproxy 'http://203.0.113.10:8080'
[net.webrequest]::defaultwebproxy.credentials = New-Object net.networkcredential('user1', $env:PROXY_PASS)
Với proxy công ty xác thực theo miền, thay dòng thứ hai bằng gán DefaultCredentials. Thiết lập này chỉ sống trong cửa sổ PowerShell hiện tại. Wiki ghi chỉ cần bước này khi proxy cần tài khoản hoặc chưa được đặt trong Internet Options.
Sau khi cài
Ngay sau khi cài, chạy scoop config proxy để lưu cấu hình cho các lần sau, rồi chạy scoop update để kiểm đường git. Lần cài đầu thường clone bucket main, nên nếu bước này lỗi git thì xử lý theo phần mật khẩu ở trên.
Scoop proxy trong CI và PowerShell 7
Máy chạy CI trên Windows
Trên máy chạy CI Windows, Scoop thường được cài ở mỗi lần chạy. Lưu URL proxy trong biến bí mật, rồi trong bước cài gọi scoop config proxy bằng giá trị từ biến đó. Không ghi proxy vào tệp cấu hình đưa vào kho mã. Với bucket trên GitHub, nhớ đặt thêm http.proxy cho git trong cùng bước, nếu không bước clone bucket sẽ đi theo biến môi trường do Invoke-Git đặt với chuỗi đã thoát.
In giá trị cấu hình ra log để gỡ lỗi là cách dễ làm lộ mật khẩu nhất. Hệ thống CI thường che giá trị bí mật trong log, nhưng chuỗi đã thoát bằng gạch chéo ngược hay đã mã hóa phần trăm không còn giống giá trị gốc nên có thể không được che.
PowerShell 7
Scoop chạy được trên cả Windows PowerShell 5.1 và PowerShell 7. Lab chỉ chạy 5.1. Trên PowerShell 7, lớp WebRequest và DefaultWebProxy vẫn tồn tại nhưng .NET hiện đại khuyên dùng HttpClient, và cách đọc proxy mặc định có thể khác. Khi chuyển sang PowerShell 7, chạy lại bảy ca của đường tải tệp để xem kết quả có giữ nguyên.
Thứ tự kiểm khi nâng cấp
Mỗi lần nâng cấp Scoop hay git, chạy lại hai lệnh: scoop update để kiểm đường git, scoop install một gói nhỏ để kiểm đường tải tệp. So nhật ký proxy với lần trước. Nếu một đường đổi hành vi, đọc lại hai hàm setup_proxy và Invoke-Git ở phiên bản mới.
Lỗi hay gặp với Scoop proxy
Bảng tra
Hiện tượng |
Nguyên nhân thường gặp |
Hướng xử lý |
|---|---|---|
Không phân giải được tên proxy lạ |
Mật khẩu có @ chưa thoát |
Viết p\@ss, bọc nháy đơn |
Không phân giải được tên proxy http |
Ghi tiền tố http:// |
Chỉ ghi host:port |
scoop install được, bucket add lỗi |
Git không hiểu chuỗi đã thoát |
Đổi mật khẩu hoặc đặt http.proxy cho git |
scoop update lỗi, install vẫn được |
Proxy hệ thống, git đi thẳng |
Đặt http.proxy cho git |
407 khi tải tệp |
Thiếu tài khoản hoặc currentuser với proxy Basic |
Ghi tài khoản của nhà cung cấp |
aria2 lỗi, tắt aria2 thì chạy |
Giới hạn kết nối đồng thời |
Giảm kết nối aria2 hoặc tắt aria2 |
Đổi proxy rồi git vẫn đi proxy cũ |
http.proxy cũ của git còn |
git config --global --unset http.proxy |
Mã 407 nói chung còn nhiều nguyên nhân phía nhà cung cấp, xem bài sửa lỗi 407 Proxy Authentication Required.
Xem Scoop đang dùng gì
Không có lệnh in proxy đang dùng thật sự. Cách gần nhất là in lại cấu hình bằng scoop config proxy, xem cấu hình git bằng git config --show-origin --get-all http.proxy, rồi xem nhật ký proxy khi chạy scoop install và scoop update. Hai lệnh đi hai đường, nên phải xem nhật ký cho cả hai.
Gỡ cấu hình, quản lý bí mật và checklist Scoop proxy
Gỡ cấu hình
scoop config rm proxy
git config --global --unset http.proxy
Lệnh thứ nhất trả Scoop về dùng proxy hệ thống. Lệnh thứ hai chỉ cần nếu đã đặt http.proxy theo cách 2. Nếu có đặt aria2 riêng cho việc thử, tắt bằng scoop config aria2-enabled false.
Mật khẩu nằm ở đâu
Giá trị scoop config proxy lưu dạng văn bản trong tệp config.json của Scoop trong thư mục người dùng. Giá trị http.proxy của git lưu dạng văn bản trong tệp .gitconfig. Hai tệp này hay được sao lưu hoặc đồng bộ dotfile lên kho công khai. Kiểm kỹ trước khi đẩy dotfile lên mạng, hoặc dùng proxy xác thực bằng IP để không có mật khẩu nào trong tệp.
Checklist

Checklist Scoop proxy
- Ghi phiên bản Scoop và git.
- Chỉ ghi host:port, không ghi http://.
- Mật khẩu có @ hoặc : thì thoát bằng gạch chéo ngược và bọc nháy đơn.
- Kiểm cả scoop install và scoop update, mỗi lệnh một đường mạng.
- Git lỗi thì đổi mật khẩu đơn giản hoặc đặt http.proxy riêng cho git.
- currentuser chỉ dùng với proxy công ty xác thực theo miền.
- Gỡ cấu hình và kiểm dotfile trước khi chia sẻ.
Chọn proxy cho Scoop proxy
HTTP là bắt buộc
Đường tải tệp của Scoop gắn cứng tiền tố http://, nên chỉ dùng được proxy HTTP. Proxy SOCKS5 không khai báo được qua scoop config proxy. Gói proxy có cả hai cổng thì dùng cổng HTTP.
IP tĩnh và xác thực bằng IP
Với Scoop, proxy xác thực bằng IP tránh được toàn bộ chuyện mật khẩu có ký tự đặc biệt và chuyện git hiểu khác .NET. IP tĩnh còn giúp tường lửa của kho git nội bộ cho phép đúng một địa chỉ.
ProxyVN có proxy dân cư tĩnh, datacenter và proxy xoay, hỗ trợ HTTP và SOCKS5, cấp tài khoản user và mật khẩu hoặc xác thực theo IP. Cần proxy HTTP có IP cố định cho máy cài công cụ, anh em có thể mua proxy Việt Nam tại trang chủ ProxyVN rồi chạy hai phép thử install và update ở trên.
Proxy không thay giới hạn của GitHub
Bucket và nhiều tệp tải nằm trên GitHub. GitHub giới hạn số request API theo IP và theo token. Proxy chỉ đổi IP đi ra, không phải cách để vượt giới hạn. Scoop có cấu hình token GitHub riêng cho các lệnh cần API.
Câu hỏi thường gặp về Scoop proxy
scoop config proxy có làm Windows đi proxy không?
Không. Giá trị chỉ dùng trong tiến trình Scoop và trong git mà Scoop gọi cho các lệnh clone, pull, fetch. Trình duyệt và ứng dụng khác không bị ảnh hưởng.
Ứng dụng cài bằng Scoop có tự đi proxy không?
Không. Scoop chỉ dùng proxy lúc tải. Ứng dụng sau khi cài chạy với cấu hình mạng của chính nó.
Có dùng được biến HTTP_PROXY thay cho scoop config proxy không?
Đường tải tệp của Scoop dùng proxy .NET, không đọc HTTP_PROXY trong mã đặt proxy đã xem. Git thì đọc HTTPS_PROXY. Đặt biến môi trường chỉ giải quyết được đường git, nên vẫn cần scoop config proxy cho đường tải tệp.
Tải xong báo sai mã băm có phải do proxy?
Scoop kiểm mã băm của tệp tải về so với manifest. Proxy HTTP thông thường chuyển nguyên văn byte trong đường hầm HTTPS, không làm đổi tệp. Sai mã băm thường do nhà phát triển thay tệp ở cùng URL, hoặc do trang tải trả về trang HTML báo lỗi thay vì tệp thật. Mở tệp tải về bằng trình soạn văn bản, nếu thấy HTML thì đọc nội dung đó, có khi là thông báo chặn của proxy công ty.
Có dùng được proxy xoay cho Scoop không?
Dùng được nhưng không có lợi. Mỗi lần tải chỉ cần một kết nối ổn định. Proxy xoay đổi IP giữa chừng có thể làm aria2 tải từng đoạn từ các IP khác nhau, một số máy chủ tải từ chối kiểu này. Proxy tĩnh hợp hơn.
Scoop có dùng proxy khi chạy lệnh checkup hay status không?
Các lệnh này đọc trạng thái bucket bằng git hoặc gọi mạng theo cùng hai đường đã nói. Lệnh nào gọi git fetch thì theo đường git, lệnh nào tải tệp thì theo đường tải tệp. Khi một lệnh lạ báo lỗi mạng, xác định nó đang đi đường nào trước khi sửa cấu hình.
Giới hạn của bài
Bài chưa chạy Scoop thật. Kết quả đường tải tệp đến từ việc chạy lại hàm setup_proxy trong PowerShell 5.1, kết quả đường git đến từ git 2.55.0 với biến môi trường đặt giống Invoke-Git. Chưa thử aria2, PowerShell 7, proxy NTLM và bucket riêng. Khi Scoop đổi mã đặt proxy, cần chạy lại các ca.
Scoop proxy và những điều cần nhớ
Scoop proxy đặt bằng scoop config proxy dạng tài_khoản:mật_khẩu@host:port, không tiền tố http://, thoát @ bằng gạch chéo ngược. Đường tải tệp và đường git đọc chuỗi này khác nhau, nên mật khẩu đơn giản hoặc http.proxy riêng cho git là cách giữ hai đường cùng chạy. Cần proxy HTTP ổn định cho Scoop proxy, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam.