Hướng dẫn
Cách dùng proxy HTTP hoặc SOCKS5 với cURL, Python và Node.js
Bởi IPronix · Cập nhật
Mọi proxy của IPronix đều xác thực bằng tên người dùng và mật khẩu. Gateway dân cư, di động và datacenter có một cổng HTTP và một cổng SOCKS5; một IP ISP tĩnh chạy HTTP hoặc SOCKS5 tại một thời điểm (chuyển đổi trên trang đơn hàng — IP và cổng giữ nguyên). Proxy ISP tĩnh được liệt kê trong mục Proxy của tôi (My Proxies); lưu lượng dân cư, di động và datacenter đi qua một máy chủ gateway, với các tùy chọn nhắm mục tiêu (quốc gia, khu vực, thành phố, phiên) được tích hợp sẵn trong thông tin đăng nhập hoặc trong danh sách endpoint tạo từ bảng điều khiển. Các ví dụ dưới đây dùng địa chỉ minh họa 203.0.113.10 và thông tin đăng nhập mẫu; hãy thay bằng thông tin của bạn.
1. Tạo URL proxy
Hầu hết công cụ chấp nhận một URL proxy duy nhất gồm: giao thức, thông tin đăng nhập, máy chủ và cổng. Dùng http:// với cổng HTTP và socks5h:// với cổng SOCKS5 (trên gateway lưu lượng là hai cổng khác nhau; với IP ISP tĩnh, hãy chuyển giao thức trước rồi dùng cùng một cổng). Chữ h trong socks5h nghĩa là DNS được phân giải bởi proxy, nhờ vậy tên máy chủ đích không bao giờ bị lộ cho trình phân giải DNS cục bộ của bạn.
http://USER:PASS@203.0.113.10:8000
socks5h://USER:PASS@203.0.113.10:8001Nếu mật khẩu chứa các ký tự như @, : hoặc /, hãy mã hóa URL cho nó trước (encodeURIComponent trong JavaScript, urllib.parse.quote trong Python).
2. cURL
# HTTP proxy
curl -x http://USER:PASS@203.0.113.10:8000 https://api.ipify.org?format=json
# SOCKS5 proxy (DNS resolved by the proxy)
curl -x socks5h://USER:PASS@203.0.113.10:8001 https://api.ipify.org?format=jsonPhản hồi hiển thị địa chỉ IP mà trang web nhìn thấy. Đó phải là IP của proxy, không phải IP của bạn.
3. Python (requests)
import requests
proxy = "http://USER:PASS@203.0.113.10:8000"
proxies = {"http": proxy, "https": proxy}
r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
print(r.json())Với SOCKS5, hãy cài thêm gói hỗ trợ SOCKS và đổi giao thức:
# pip install "requests[socks]"
proxy = "socks5h://USER:PASS@203.0.113.10:8001"
proxies = {"http": proxy, "https": proxy}4. Node.js (axios)
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://USER:PASS@203.0.113.10:8000");
const { data } = await axios.get("https://api.ipify.org?format=json", {
httpsAgent: agent,
proxy: false, // let the agent handle the proxy
});
console.log(data);Với SOCKS5, hãy dùng socks-proxy-agent thay thế:
import { SocksProxyAgent } from "socks-proxy-agent";
const agent = new SocksProxyAgent("socks5h://USER:PASS@203.0.113.10:8001");
const { data } = await axios.get("https://api.ipify.org?format=json", {
httpAgent: agent,
httpsAgent: agent,
proxy: false,
});5. Khắc phục lỗi thường gặp
- 407 Proxy Authentication Required: tên người dùng hoặc mật khẩu sai, hoặc một ký tự đặc biệt trong mật khẩu chưa được mã hóa URL.
- Kết nối bị từ chối hoặc bị ngắt ngay lập tức: cổng và giao thức không khớp, ví dụ URL SOCKS5 trỏ vào cổng HTTP. Hãy sao chép đúng cổng của giao thức bạn dùng.
- Lỗi 407 trên sản phẩm lưu lượng: kiểm tra xem bạn đã sao chép toàn bộ mật khẩu chưa, bao gồm cả phần nhắm mục tiêu phía sau khóa; quốc gia, khu vực hoặc thành phố không được hỗ trợ sẽ bị từ chối.
- Yêu cầu qua lưu lượng ngừng hoạt động: có thể gói đã dùng hết. Hãy kiểm tra lưu lượng còn lại trong bảng điều khiển và mua thêm.
- IP ISP tĩnh hiển thị trạng thái đang chờ: IP vẫn đang được cấp phát và sẽ xuất hiện trong đơn hàng khi sẵn sàng.
Với proxy ISP tĩnh, bạn cũng có thể kiểm tra proxy có phản hồi hay không và xem độ trễ của nó bằng nút ping trên trang đơn hàng.