Hầu hết các thiết bị macOS và Windows đã đi kèm với các thư viện cURL được cài đặt sẵn (libcurl). Nhưng đa phần người dùng lại không biết cách sử dụng chúng đúng cách với proxy.
cURL viết tắt của Client URL là một công cụ dòng lệnh (command line tool) dùng để kiểm tra kết nối từ URL và cho phép truyền dữ liệu. Với việc hỗ trợ hơn 25 giao thức, bao gồm HTTP, HTTPS, FTP và SFTP,… Khi nói đến việc gỡ lỗi các yêu cầu mạng và lệnh gọi API thì đây là một trong những công cụ nguồn mở tốt nhất hiện có và miễn phí. Công cụ hoạt động trên Linux, Mac và Windows. Hiểu một cách đơn giản thì về cơ bản bạn có thể sử dụng lệnh cURL để upload và tải xuống nội dung từ internet. Nếu máy của bạn chưa có sẵn cURL có thể tải tại https://curl.se/download.html.
Tải xuống nội dung trên internet với cURL
cURL hỗ trợ proxy như thế nào?
cURL hỗ trợ proxy thông qua tùy chọn dòng lệnh -x hoặc –proxy. Bạn nên đặt địa chỉ máy chủ proxy trong dấu ngoặc kép để xử lý các ký tự đặc biệt trong URL một cách chính xác. Lưu ý rằng giao thức proxy mặc định cho cURL là HTTP.
Để sử dụng proxy với công cụ này, bạn phải chuyển địa chỉ proxy được yêu cầu bằng tùy chọn dòng lệnh -x (hoặc –proxy) Đồng thời xác thực thông tin proxy bằng cách sử dụng khóa chuyển dòng lệnh -U (hoặc –proxy-user). Thông tin đăng nhập proxy cũng có thể được chuyển vào chuỗi proxy và sẽ được giải mã URL bởi cURL.
Chuỗi proxy có thể được bắt đầu bằng giao thức: //. Ví dụ: http:// hoặc socks5://. Nếu không có giao thức nào được chỉ định thì mặc định là http://. Nếu không có số cổng nào được chỉ định trong chuỗi proxy, cổng mặc định là 1080.
Hình thức chung của lệnh Curl để gửi yêu cầu thông qua máy chủ proxy như sau:
Chuyển địa chỉ proxy tới cURL thông qua các biến môi trường
Biến môi trường (Environment Variable) là gì?
Biến môi trường là một cặp khóa=giá trị được đặt ở cấp hệ thống và có thể ảnh hưởng đến hành vi của tất cả các quy trình đang chạy trên máy tính. Các biến môi trường là một phần của hệ điều hành. Nó được giới thiệu lần đầu tiên vào năm 1979 trên Unix và hiện được hỗ trợ bởi tất cả các hệ điều hành, bao gồm Linux, macOS và Windows.
Cách chuyển địa chỉ proxy tới cURL
Một cách khác để chuyển địa chỉ proxy tới Curl là đặt các biến môi trường http_proxy và https_proxy. Sử dụng các biến môi trường này sẽ có tác dụng tương tự như sử dụng tùy chọn dòng lệnh -x và –proxy.
Để tắt cài đặt proxy chung, hãy bỏ đặt hai biến môi trường này:
unset http_proxy
unset https_proxy
Cách vượt qua lỗi chứng chỉ SSL khi sử dụng Proxy cURL
Nếu cURL gặp lỗi chứng chỉ SSL, nó sẽ tự động chặn yêu cầu. Đối với mục đích gỡ lỗi, để cho phép các kết nối không an toàn đến máy chủ, bạn có thể yêu cầu bỏ qua các lỗi chứng chỉ SSL bằng cách thêm tùy chọn dòng lệnh -k vào yêu cầu:
curl -x "[protocol://][host][:port]" -k [URL]
Cách để bỏ qua proxy cho một yêu cầu cURL
Giả sử proxy được đặt trên toàn cầu thông qua một biến môi trường hoặc tệp .curlrc. Trong trường hợp đó, bạn vẫn có thể bỏ qua proxy cho các yêu cầu cURL cụ thể bằng cách sử dụng tham số dòng lệnh –noproxy “*” trong yêu cầu cURL. Vô hiệu hóa Proxy cho các yêu cầu cụ thể:
curl --noproxy "*" https://reqbin.com/echo
Cách chỉ định tên người dùng và mật khẩu proxy cho cURL
Nếu proxy của bạn yêu cầu xác thực người dùng, bạn có thể chuyển tên người dùng và mật khẩu cho cURL bằng khóa chuyển dòng lệnh -U hoặc –proxy-user. Xác thực Proxy Curl:
Truy cập zingproxy.com để tìm hiểu và đăng ký sử dụng Proxy chất lượng cao. Mọi câu hỏi cần giải đáp vui lòng gửi về các kênh liên hệ của chúng tôi. Cảm ơn đã theo dõi bài viết!
Bạn setup một hệ thống thu thập dữ liệu hoạt động mượt mà cả đêm, đinh ninh sáng dậy sẽ có hàng triệu record hoàn chỉnh nằm gọn trong database. Thế nhưng, sáng mở log ra thì thấy dày đặc lỗi ECONNRESET hoặc dính hàng loạt mã 429 Too Many Requests. Nhìn kỹ lại thì […]
2 giờ sáng, hệ thống giám sát ping báo lỗi hàng loạt, màn hình hiển thị 502 Bad Gateway. Traffic spike chạm đỉnh, băng thông nghẽn cứng, proxy server từ chối mọi request. Trong lúc dầu sôi lửa bỏng, anh em Sysadmin vẫn phải hì hục SSH vào từng node, gõ lệnh tail -f đọc […]
Bạn đã bao giờ nhìn thấy pipeline GitHub Actions xanh rờn, test local pass 100%, hí hửng deploy lên Production rồi ngay lập tức nhận ticket report lỗi khẩn cấp từ user ở Nhật Bản vì trang thanh toán hiển thị USD thay vì JPY chưa? Hoặc một user ở Đức phàn nàn rằng họ […]
Đang thu thập dữ liệu mượt mà, pipeline chạy trơn tru, đột nhiên console đỏ rực một dải log: HTTP 429 Too Many Requests. Dữ liệu gãy nhịp, worker kẹt cứng, và tệ nhất là địa chỉ IP server chính thức mất kết nối. Đây chắc hẳn là kịch bản ám ảnh mà bất kỳ […]
Nhìn vào màn hình console với chỉ số CPU chạm nóc 100%, RAM cạn kiệt và MySQL liên tục báo lỗi Too many connections là cơn ác mộng kinh điển của bất kỳ developer hay sysadmin nào. Khi một bài viết trên WordPress bất ngờ viral hoặc hệ thống chạy chiến dịch quảng cáo lớn, […]
Tám giờ tối, bạn vừa deploy xong một tính năng cực mượt có tích hợp AI. Nhưng khi lượng user bắt đầu tăng lên, log trên backend liên tục báo lỗi với những dòng chữ đỏ: ECONNRESET, ETIMEDOUT, hoặc các luồng Server-Sent Events (SSE) đang stream dở văn bản thì đột ngột bị ngắt kết […]