wget đọc proxy từ bốn vị trí, kiểm tra theo một thứ tự cố định. Cờ dòng lệnh ghi đè lên tệp .wgetrc, mà ghi đè lên các biến môi trường http_proxy/https_proxy — nếu bạn hiểu sai về thứ tự ưu tiên, một proxy mà bạn nghĩ đang hoạt động có thể bị ghi đè lặng lẽ.
Xác thực proxy là một cặp cờ, được xác minh trực tiếp trong hướng dẫn này.--proxy-user= và --proxy-password= xác thực bằng HTTP Basic auth; được kiểm tra với một proxy thực, thông tin xác thực đúng trả về 200 và sai thì trả về Cần xác thực Proxy.
wget không hỗ trợ SOCKS5 bản địa — xác nhận bằng cách tái hiện chính xác lỗi xảy ra. Chỉ định http_proxy đến một URL socks5h:// sẽ thất bại ngay lập tức với Chương trình không hỗ trợ; một proxy SOCKS cần một cầu nối HTTP-đến-SOCKS cục bộ phía trước wget, chứ không phải một cờ wget.
wget không thử lại một kết nối proxy bị từ chối theo mặc định. Một thử nghiệm trực tiếp cho thấy đúng một lần thử kết nối trên Kết nối bị từ chối, trừ khi --retry-connrefused cũng được truyền vào — một chi tiết mà hầu hết các hướng dẫn proxy của wget bỏ qua.
no_proxy miễn trừ các máy chủ cụ thể mà không chạm vào phần còn lại của cấu hình. Đây là một danh sách các miền phân cách bằng dấu phẩy mà bỏ qua bất kỳ proxy nào đã được cấu hình, được kiểm tra trước khi wget thực hiện kết nối.
Trải nghiem Nstproxy - Bat dau dung thu mien phi ngay
wget không có khái niệm về xoay vòng proxy. Nó chỉ kết nối đến một proxy đã cấu hình trong mỗi lần chạy; bất kỳ thứ gì giống như xoay vòng IP phải đến từ một vòng lặp shell, một cổng xoay vòng, hoặc một công cụ bên ngoài bao quanh wget.
Giới thiệu: chỉ định một trình tải xuống đơn mục đích qua một proxy
wget là một công cụ dòng lệnh để tải về các tệp qua HTTP, HTTPS và FTP, và theo mặc định nó kết nối thẳng đến bất kỳ máy chủ nào trong URL — việc định hướng kết nối đó qua một proxy có nghĩa là nói cho wget biết về proxy thông qua một trong bốn bề mặt: một cờ dòng lệnh, một tệp ~/.wgetrc cho từng người dùng, một tệp hệ thống /etc/wgetrc, hoặc các biến môi trường http_proxy/https_proxy. Mỗi bề mặt đều được tài liệu trong hướng dẫn chính thức của GNU Wget, và mỗi cái đều được minh họa dưới đây với một proxy thực đang chạy thay vì được mô tả từ trí nhớ.
Hướng dẫn này xác minh mọi tuyên bố mà nó đưa ra: xác thực proxy được kiểm tra với một lần trao đổi thực tế 401/407, hành vi thử lại được kiểm tra với một kết nối bị từ chối thực tế, và giới hạn SOCKS5 được tái hiện như một thông điệp lỗi thực tế thay vì được nhắc lại từ lời nói thứ hai. Nơi mà wget không thể làm điều gì đó — xoay vòng IP, giao tiếp SOCKS5 bản địa — điều đó được nêu rõ ràng thay vì vượt qua.
Cài đặt wget
wget được cài sẵn trên hầu hết các bản phân phối Linux và có sẵn qua các trình quản lý gói tiêu chuẩn ở mọi nơi khác.
Xác nhận việc cài đặt và kiểm tra phiên bản trước khi dựa vào các cờ được giới thiệu trong các phiên bản mới hơn (các ví dụ trong hướng dẫn này đã được xác minh với GNU Wget 1.21.4):
wget--version
Nhìn nhanh
Một proxy duy nhất phía trước wget vẫn có nghĩa là mọi tải xuống đến từ một IP — cổng dân cư xoay vòng của Nstproxy cung cấp cho wget một máy chủ: cổng duy nhất để định hướng trong khi IP thoát thay đổi ở phía máy chủ, mà không cần thêm logic xoay vòng vào script tải xuống của bạn.
Chạy với một proxy cục bộ thực tế (đã bật xác thực cơ bản) mà không thiết lập no_proxy, mẫu chính xác này trả về HTTP/1.1 200 OK thực tế và tải về tệp mục tiêu; lệnh tương tự với một địa chỉ proxy không thể truy cập đã thất bại với Kết nối bị từ chối, xác nhận rằng thiết lập proxy thực sự nằm trong đường dẫn yêu cầu chứ không bị bỏ qua lặng lẽ.
Đối với một thiết lập nên tồn tại xuyên suốt các phiên mà không cần xuất các biến shell mỗi lần, tệp ~/.wgetrc cho từng người dùng sử dụng các tên từ khóa (chữ thường, phân cách bằng dấu gạch dưới) khác với các biến môi trường, và cần use_proxy = on để kích hoạt chúng:
Tập tin chính xác này, được tải qua WGETRC=~/.wgetrc wget ..., đã được thử nghiệm với cùng một proxy cục bộ và tạo ra phản hồi thành công 200 mà không có bất kỳ cờ hoặc biến môi trường nào khác được thiết lập — xác nhận rằng đây là những tên từ khóa hoạt động, không chỉ là những cái nhìn có vẻ hợp lý. Một tệp cấu hình toàn cục /etc/wgetrc (sở hữu bởi root, áp dụng cho mọi người dùng trên máy) sử dụng cú pháp từ khóa giống hệt; sự khác biệt duy nhất là phạm vi áp dụng.
Các cờ dòng lệnh ưu tiên hơn cả hai tệp, điều này làm cho chúng là lựa chọn đúng cho một lần ghi đè mà không cần chạm vào bất kỳ cấu hình bền vững nào:
wget --no-proxy https://example.com/file.zip
Xác thực proxy và miễn trừ các máy chủ cụ thể
--proxy-user= và --proxy-password= thiết lập thông tin xác thực proxy trực tiếp trên dòng lệnh, và wget mã hóa chúng bằng xác thực HTTP Basic trước khi gửi đến proxy:
Thử nghiệm với một proxy đã xác thực thực tế, thông tin đăng nhập chính xác tạo ra phản hồi 200 bình thường và tải xuống tệp hoàn toàn; lệnh giống hệt với mật khẩu sai đã thất bại ngay lập tức với thông báo Proxy tunneling failed: Proxy Authentication Required — giao dịch 407 thực tế, không phải là mô tả của một. Nếu mật khẩu proxy chứa ký tự đặc biệt trong shell ($, !, khoảng trống), hãy đặt toàn bộ giá trị cờ trong dấu ngoặc thay vì nhúng mật khẩu thô vào dạng URL, vì một ký tự không được thoát ở đó là nguồn phổ biến của lỗi xác thực trông giống như mật khẩu sai nhưng thực tế lại là vấn đề phân tích.
no_proxy miễn trừ các miền cụ thể khỏi bất kỳ proxy nào đã được cấu hình, độc lập với bốn giao diện đã thiết lập proxy đó:
Các yêu cầu đến các máy chủ khớp với danh sách đó kết nối trực tiếp, bỏ qua hoàn toàn proxy — hữu ích để định tuyến các tải xuống bên ngoài thông qua một proxy trong khi giữ nguyên các điểm cuối nội bộ hoặc đã nhanh.
Mô hình nâng cao: thử lại, thời gian chờ và điều gì SOCKS5 thực sự yêu cầu
Hành vi thử lại mặc định của wget rất dễ bị nhầm lẫn: --tries=N thiết lập số lần thử mà nó sẽ thực hiện, nhưng một kết nối bị từ chối với thông báo "Connection refused" không được thử lại theo mặc định — đã được thử nghiệm trực tiếp, một kết nối bị từ chối chỉ thực hiện một lần thử duy nhất và từ bỏ, ngay cả khi đã đặt --tries=3. Để có thể thử lại trên một kết nối bị từ chối cần có cờ --retry-connrefused một cách rõ ràng:
Với cờ đó được thêm vào, kịch bản kết nối bị từ chối giống hệt đã tạo ra ba lần thử được gán nhãn ("(try: 2)", "(try: 3)") với một thông điệp "Retrying." và một thời gian chờ --waitretry giữa chúng trước khi từ bỏ — hành vi mà hầu hết các hướng dẫn giả định là mặc định, trong khi thực tế không phải vậy. --timeout=SECONDS (hoặc cụ thể hơn là --connect-timeout/--read-timeout) giới hạn thời gian mà bất kỳ lần thử nào chờ đợi, điều này quan trọng đối với một proxy treo thay vì từ chối một cách chủ động.
SOCKS5 là trường hợp duy nhất mà wget không thể xử lý một mình: chỉ định http_proxy vào một URL socks5h:// ngay lập tức thất bại với thông báo Error parsing proxy URL socks5h://...: Unsupported scheme. — hỗ trợ proxy của wget chỉ là HTTP/HTTPS/FTP, được xác nhận bằng cách tái tạo chính xác lỗi đó thay vì lặp lại yêu cầu từ một bài viết khác. Định tuyến wget qua một proxy SOCKS5 có nghĩa là chạy một công cụ cục bộ xuất ra một backend SOCKS như một proxy HTTP đơn giản (hoặc một lớp bọc có khả năng SOCKS như tsocks/proxychains) và chỉ định http_proxy của wget vào cầu nối cục bộ đó thay vì vào proxy SOCKS trực tiếp.
Nstproxy là một nhà cung cấp hạ tầng proxy mà cổng của họ hỗ trợ HTTP, HTTPS và SOCKS5 trên cùng một kênh, điều này vượt qua hoàn toàn khoảng cách wget-SOCKS5 cho bất kỳ ai có thể chọn chế độ HTTP tại cổng thay vì SOCKS5 tại lớp wget. Dòng Residential Lite của họ phù hợp với các tải xuống wget định kỳ hoặc số lượng lớn cần tránh một địa chỉ IP duy nhất tích lũy lịch sử bị chặn hoặc giảm tốc: các gói trả trước bắt đầu từ 10GB với giá 10 đô la (khoảng 1 đô la/GB), được hỗ trợ bởi một bể mà nhà cung cấp tuyên bố có hơn 50 triệu địa chỉ IP dân cư trên hơn 200 quốc gia và vùng lãnh thổ với tỷ lệ thành công được tuyên bố là 99,5%, không có gia hạn tự động theo đăng ký. Điều cần cân nhắc trước khi áp dụng: Residential Lite có giá cho khối lượng tải xuống nhạy cảm với chi phí bền vững chứ không phải độ trễ yêu cầu thấp nhất có thể, vì vậy một tải công việc xây dựng xung quanh một vài yêu cầu quan trọng về độ trễ nên so sánh nó với một dòng dân cư hoặc trung tâm dữ liệu cao cấp thay thế.
Một địa chỉ cổng thay vì một kịch bản định luật — wget tự nó không có logic luân chuyển, vì vậy một máy chủ cổng:port cố định mà luân chuyển các địa chỉ IP thoát phía máy chủ loại bỏ nhu cầu bao bọc wget trong một vòng lặp shell qua danh sách IP.
Chế độ HTTP tránh hoàn toàn khoảng cách SOCKS5 — vì cùng một kênh phục vụ HTTP, HTTPS và SOCKS5, chọn chế độ HTTP cắm trực tiếp vào hỗ trợ http_proxy/https_proxy gốc của wget mà không cần công cụ cầu nối nào.
Hoạt động với cả bốn bề mặt proxy của wget — cùng một thông tin xác thực gateway được đưa vào các biến môi trường, .wgetrc, hoặc --proxy-user/--proxy-password giống như bất kỳ proxy HTTP xác thực nào khác.
Giới hạn thực sự của hỗ trợ proxy của wget
wget không hỗ trợ SOCKS5 một cách bản địa và không có khả năng xoay vòng tích hợp, và cả hai đều là những thiếu sót thực sự chứ không phải là các tùy chọn cấu hình đang chờ được khám phá — các giải pháp phía trên (một cầu SOCKS, một gateway bên ngoài hoặc vòng lặp shell) thực sự bên ngoài wget, không phải là các cờ ẩn. wget cũng không quản lý một jar cookie theo từng yêu cầu như trình duyệt hoặc requests.Session() tự động; một tải xuống yêu cầu đăng nhập cần phải thiết lập --load-cookies/--save-cookies một cách rõ ràng, dù có proxy hay không. Cuối cùng, một proxy thực hiện việc chặn TLS (thường thấy trên một số proxy doanh nghiệp hoặc an ninh) có thể làm hỏng các tải xuống HTTPS không có --no-check-certificate theo những cách trông giống như một lỗi cấu hình SSL không liên quan, vì vậy việc thử nghiệm với cùng một URL mà không có proxy sẽ tiết kiệm thời gian so với việc xác thực lỗi chứng chỉ trước.
Khắc phục lỗi proxy wget phổ biến
Thông điệp Proxy tunneling failed: Proxy Authentication Required là kết quả trực tiếp của thông tin xác thực proxy sai hoặc bị thiếu, được xác nhận ở trên bằng cách cố ý gửi mật khẩu sai và nhận lại chính xác thông điệp này — hãy kiểm tra --proxy-user/--proxy-password (hoặc các tương đương trong .wgetrc/biến môi trường) để tìm lỗi chính tả hoặc ký tự shell không được thoát. Một thông báo Connection refused trống ở chính máy chủ proxy có nghĩa là wget hoàn toàn không đến được proxy — sai máy chủ, sai cổng, hoặc dịch vụ proxy đang ngừng hoạt động — và, theo hành vi thử lại đã được xác minh ở trên, wget sẽ không tự động thử lại lỗi cụ thể đó trừ khi --retry-connrefused được thiết lập, vì vậy một script có vẻ như "đầu hàng ngay lập tức" trên một proxy không ổn định đang hoạt động chính xác như đã được tài liệu, không phải trục trặc. Một lỗi Unsupported scheme tên là socks5h:// hoặc socks5:// có nghĩa là một URL proxy SOCKS đã được đưa vào một cờ hoặc biến chỉ chấp nhận HTTP/HTTPS/FTP; cách khắc phục là tạo một cầu HTTP cục bộ phía trước proxy SOCKS, chứ không phải là một cờ wget khác. Một lỗi SSL/chứng chỉ qua proxy mà không xảy ra khi không có proxy thường chỉ ra việc chặn TLS ở phía proxy thay vì ở phía trang đích — thử nghiệm kết nối trực tiếp là cách nhanh nhất để phân lập bên nào thực sự có vấn đề chứng chỉ.
Kết luận
Việc khiến wget sử dụng một proxy là một cờ, một cặp biến môi trường, hoặc một khối .wgetrc — phần khó hơn là biết bề mặt nào trong bốn bề mặt sẽ có ưu tiên, rằng xác thực là chỉ cách một cặp cờ Basic-auth, và rằng hai điều cụ thể (SOCKS5, xoay vòng IP) là những thiếu sót thực sự chứ không phải thiếu kiến thức. Mọi tuyên bố ở trên đều đã được kiểm tra bằng cách sử dụng một proxy trực tiếp hoặc nhị phân đã cài đặt, chứ không phải lặp lại từ hướng dẫn khác, bao gồm hai hành vi — mặc định không thử lại khi từ chối và lỗi SOCKS5 — là dễ mắc lỗi nhất.
Không — hỗ trợ proxy tích hợp của wget chỉ nhận dạng các URL proxy HTTP, HTTPS và FTP, và việc chỉ định nó vào một địa chỉ socks5h:// sẽ ngay lập tức thất bại với lỗi "Unsupported scheme", vì vậy một proxy SOCKS5 cần một cầu HTTP-to-SOCKS cục bộ hoặc một công cụ bọc hỗ trợ SOCKS ở phía trước wget.
Q: Làm thế nào để tôi làm cho wget bỏ qua proxy cho một số trang nhất định?
Thiết lập biến môi trường no_proxy thành danh sách các miền cách nhau bằng dấu phẩy, chẳng hạn như no_proxy="internal.example.com,.corp.example.com", và wget sẽ kết nối trực tiếp đến bất kỳ máy chủ nào khớp với danh sách đó bất kể proxy nào đã được cấu hình.
Q: Tại sao wget lại thất bại với lỗi xác thực proxy?
Thông điệp Proxy tunneling failed: Proxy Authentication Required có nghĩa là proxy đã từ chối thông tin xác thực được gửi qua --proxy-user/--proxy-password (hoặc các tương đương trong .wgetrc/biến môi trường) — hãy kiểm tra lỗi chính tả hoặc các ký tự đặc biệt không được thoát trong mật khẩu trước.
Q: wget có tự động thử lại nếu kết nối proxy bị từ chối không?
Không, theo mặc định — một kết nối bị từ chối bởi máy chủ proxy chỉ nhận được đúng một lần thử trừ khi --retry-connrefused được thêm vào một cách rõ ràng cùng với --tries, đây là nguồn phổ biến của các script có vẻ như từ bỏ ngay lập tức trên một proxy tạm thời không thể tiếp cận.
Q: Điều nào có ưu tiên hơn: cờ proxy trên dòng lệnh hay biến môi trường http_proxy?
Cờ dòng lệnh thắng, tiếp theo là tệp .wgetrc, với các biến môi trường http_proxy/https_proxy được áp dụng sau cùng — vì vậy một cờ như --no-proxy trên dòng lệnh ghi đè một proxy đã thiết lập trong môi trường cho lần chạy đó mà không cần phải bỏ biến.
H: Có phải wget tự động chuyển đổi giữa nhiều proxy không?
Không — wget chỉ kết nối với một proxy đã cấu hình cho mỗi lần gọi và không có logic quay vòng tích hợp sẵn, vì vậy việc thay đổi IP qua nhiều lần gọi wget yêu cầu một kịch bản shell bao bọc để thực hiện việc duyệt qua danh sách proxy hoặc một cổng nhà cung cấp mà thay đổi IP thoát ở phía máy chủ phía sau một địa chỉ cố định duy nhất.
Chrome không có cài đặt proxy tích hợp sẵn - nó chuyển việc này cho hệ điều hành của bạn. Dưới đây là đường dẫn thiết lập chính xác cho Windows, macOS, Linux và ChromeOS, cùng với cờ dòng lệnh, SOCKS5, tệp PAC và cách xử lý proxy xác thực mà hầu hết các hướng dẫn bỏ qua.
Ivy Lin
Aug. 7th 2026
110M+ IP that voi ti le truy cap thanh cong 99.9%
Phan hoi trung binh ~0.5s cho tac vu dong thoi cao
Chi tu $0.1/GB
Truy cap ngay cac pool proxy residential, datacenter, IPv6 va ISP cao cap.