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!
Khi hệ thống tự động hóa của bạn bắt đầu scale từ một vài script thử nghiệm lên hàng chục, hàng trăm luồng worker chạy song song, màn hình console thường bắt đầu xuất hiện một nỗi đau quen thuộc: các dòng log đỏ rực báo lỗi HTTP 429 Too Many Requests. Workflow bị gãy […]
Bạn vừa deploy mã nguồn lên môi trường production, cẩn thận cấu hình chức năng gửi email chứa mã OTP hay hóa đơn điện tử cho khách hàng. Chạy test thử ở môi trường staging, mọi thứ diễn ra trơn tru. Nhưng khi hệ thống chính thức live, hàng loạt log trả về mã lỗi […]
Đã bao giờ bạn setup một kịch bản đẩy 10.000 concurrent users vào hệ thống, nhưng chỉ sau vài phút, dashboard giám sát báo lỗi đỏ rực với hàng loạt mã java.lang.OutOfMemoryError hay HTTP 429 Too Many Requests? Bạn hốt hoảng kiểm tra lại hạ tầng và nhận ra một sự thật cay đắng: server […]
Hệ thống cảnh báo CPU của một node VPS vọt lên 100%. Bạn SSH vội vào server và gõ dòng lệnh quen thuộc để tìm nguyên nhân: tail -f /var/log/auth.log Trống trơn. Kẻ tấn công đã kịp xóa sạch mọi dấu vết trước khi cắm một script đào coin ẩn sâu vào hệ thống. Trong […]
Hãy hình dung một kịch bản rất quen thuộc: Đội ngũ developer của bạn đang làm việc remote rải rác từ Bắc chí Nam. Developer A bất ngờ cần kéo một bản dump database 2GB từ server nội bộ về máy local để debug. Ngay lập tức, kết nối API của Developer B bị rate-limit, […]
Thử tưởng tượng kịch bản này: hệ thống giám sát báo động đỏ, một service Node.js trong cụm Swarm của bạn vừa dính lỗ hổng RCE (Remote Code Execution) từ một thư viện bên thứ ba (supply-chain attack). Bạn tự tin vì đã triển khai các giải pháp ngăn chặn DDoS và cấu hình WAF […]