คู่มือ
วิธีใช้พร็อกซี HTTP หรือ SOCKS5 กับ cURL, Python และ Node.js
โดย IPronix · อัปเดตเมื่อ
พร็อกซีทุกตัวของ IPronix ใช้การยืนยันตัวตนด้วยชื่อผู้ใช้และรหัสผ่าน เกตเวย์ Residential, Mobile และ Datacenter มีพอร์ต HTTP และพอร์ต SOCKS5 แยกกัน ส่วน IP แบบ Static ISP จะทำงานเป็น HTTP หรือ SOCKS5 ได้ทีละโปรโตคอล (สลับได้ที่หน้าคำสั่งซื้อ โดย IP และพอร์ตยังคงเดิม) พร็อกซี Static ISP จะแสดงอยู่ในหน้า พร็อกซีของฉัน (My Proxies) ส่วนทราฟฟิก Residential, Mobile และ Datacenter จะวิ่งผ่านโฮสต์เกตเวย์ โดยการกำหนดเป้าหมาย (ประเทศ ภูมิภาค เมือง และเซสชัน) จะฝังอยู่ในข้อมูลยืนยันตัวตน หรืออยู่ในรายการ Endpoint ที่สร้างจากแดชบอร์ด ตัวอย่างด้านล่างใช้ที่อยู่สำหรับเอกสาร 203.0.113.10 และข้อมูลยืนยันตัวตนตัวอย่าง โปรดแทนที่ด้วยข้อมูลของคุณเอง
1. สร้าง URL ของพร็อกซี
เครื่องมือส่วนใหญ่รับ URL ของพร็อกซีเพียงรายการเดียว ซึ่งประกอบด้วยสคีม ข้อมูลยืนยันตัวตน โฮสต์ และพอร์ต ใช้ http:// กับพอร์ต HTTP และใช้ socks5h:// กับพอร์ต SOCKS5 (เกตเวย์ทราฟฟิกใช้พอร์ตต่างกัน ส่วน IP แบบ Static ISP ให้สลับโปรโตคอลก่อนแล้วใช้พอร์ตเดิม) ตัว h ใน socks5h หมายความว่าพร็อกซีเป็นผู้ resolve DNS ดังนั้นชื่อโฮสต์ปลายทางจะไม่รั่วไหลไปยัง DNS resolver ในเครื่องของคุณ
http://USER:PASS@203.0.113.10:8000
socks5h://USER:PASS@203.0.113.10:8001หากรหัสผ่านมีอักขระอย่าง @, : หรือ / ให้เข้ารหัส URL (URL-encode) ก่อน (ใช้ encodeURIComponent ใน JavaScript หรือ urllib.parse.quote ใน 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=jsonผลลัพธ์จะแสดงที่อยู่ IP ที่เว็บไซต์มองเห็น ซึ่งควรเป็น IP ของพร็อกซี ไม่ใช่ IP ของคุณ
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())สำหรับ SOCKS5 ให้ติดตั้งส่วนเสริม SOCKS และเปลี่ยนสคีม:
# 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);สำหรับ SOCKS5 ให้ใช้ socks-proxy-agent แทน:
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. การแก้ไขข้อผิดพลาดที่พบบ่อย
- 407 Proxy Authentication Required: ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง หรืออักขระพิเศษในรหัสผ่านไม่ได้ถูกเข้ารหัส URL
- การเชื่อมต่อถูกปฏิเสธหรือถูกรีเซ็ตทันที: พอร์ตและโปรโตคอลไม่ตรงกัน เช่น ใช้ URL แบบ SOCKS5 กับพอร์ต HTTP ให้คัดลอกพอร์ตของโปรโตคอลที่คุณใช้
- ได้รับ 407 กับผลิตภัณฑ์แบบทราฟฟิก: ตรวจสอบว่าคัดลอกรหัสผ่านมาครบทั้งหมด รวมถึงส่วนกำหนดเป้าหมายที่อยู่ต่อจากคีย์ ประเทศ ภูมิภาค หรือเมืองที่ไม่รองรับจะถูกปฏิเสธ
- คำขอผ่านทราฟฟิกหยุดทำงาน: แพ็กเกจอาจถูกใช้หมดแล้ว ตรวจสอบทราฟฟิกคงเหลือในแดชบอร์ดและซื้อเพิ่ม
- IP แบบ Static ISP แสดงสถานะรอดำเนินการ: IP ยังอยู่ระหว่างการจัดสรร และจะปรากฏในคำสั่งซื้อเมื่อพร้อมใช้งาน
สำหรับพร็อกซี Static ISP คุณยังสามารถตรวจสอบว่าพร็อกซีตอบสนองหรือไม่ และดูค่าความหน่วงได้ด้วยปุ่ม Ping ในหน้าคำสั่งซื้อ