ใน curl ให้เลือก socks5h:// เมื่อต้องการให้พร็อกซีแปลงชื่อปลายทาง เลือก socks5:// เมื่อต้องการให้ curl แปลงชื่อในเครื่องแล้วส่งที่อยู่ให้พร็อกซี ทั้งคู่ใช้ SOCKS5 ส่วน h ที่ท้ายเป็นข้อตกลงการเขียน URL ของไคลเอนต์

เปรียบเทียบสองโหมดโดยแทนลิสเทนเนอร์ในเครื่องด้วยเอนด์พอยต์ SOCKS5 ของคุณ:

curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

สิ่งที่เปลี่ยนมีเพียงโหมดการแปลงชื่อ --noproxy '' ล้างกฎข้ามพร็อกซีสำหรับการเรียกเหล่านี้ และเวลาที่กำหนดไว้ช่วยจำกัดระยะเวลาการเปรียบเทียบ ตัวเลือกเฉพาะที่เทียบเท่ากันคือ --socks5 และ --socks5-hostname ใช้ชื่อโฮสต์เป็นเป้าหมาย เพราะการระบุ IP โดยตรงไม่ต้องค้นหาชื่อปลายทาง จึงแสดงความแตกต่างนี้ไม่ได้

ชื่อหนึ่งอาจเป็นที่รู้จักเพียงฝั่งเดียว

สมมติว่าพร็อกซีทำงานอยู่ในเครือข่ายพัฒนาที่ DNS รู้จักชื่อบริการภายใน แล็ปท็อปของคุณอาจแปลงชื่อนั้นไม่ได้ในโหมด socks5 แต่ socks5h ให้พร็อกซีเป็นผู้แปลง หากกลับสถานการณ์เป็นชื่อที่กำหนดไว้เฉพาะในไฟล์ hosts ของแล็ปท็อป การค้นหาฝั่งระยะไกลอาจเป็นฝ่ายที่ล้มเหลวแทน

DNS สาธารณะก็อาจคืนที่อยู่ต่างกันเมื่อเรียกจากต่างเครือข่าย ผลลัพธ์ที่ต่างกันควรนำไปสู่การเปรียบเทียบที่อยู่ที่ถูกเลือกและการเข้าถึงที่อยู่เหล่านั้น แทนการเปลี่ยนพร็อกซีทันที

  • แปลงชื่อโฮสต์ของพร็อกซีไม่ได้: ทั้งสองโหมดเริ่มทำงานไม่ได้ ไคลเอนต์ยังต้องแปลง proxy.example ใน socks5h://proxy.example:1080
  • การค้นหาชื่อปลายทางในเครื่องล้มเหลว: ตรวจสอบตัวแปลงชื่อของไคลเอนต์ หรือเปรียบเทียบกับโหมดที่ส่งชื่อโฮสต์ให้พร็อกซี
  • เซิร์ฟเวอร์ SOCKS ปฏิเสธปลายทาง: ตรวจสอบคำตอบและนโยบายของเซิร์ฟเวอร์ การค้นหาในเครื่องสำเร็จไม่ได้ยืนยันว่าจะเข้าถึงปลายทางจากฝั่งระยะไกลได้
  • อุโมงค์ทำงาน แต่ตรวจสอบใบรับรองไม่ผ่าน: ตรวจสอบ TLS ของปลายทาง การเลือกโหมด DNS อื่นไม่ใช่วิธีแก้ปัญหาความเชื่อถือโดยทั่วไป

ชื่อทดสอบที่ควบคุมได้และบันทึกฝั่งเซิร์ฟเวอร์ช่วยยืนยันได้ว่าที่อยู่ชนิดใดไปถึงพร็อกซีที่คุณดูแล เว็บแสดง IP ขาออกทำเช่นนั้นไม่ได้ เพราะมันรายงานการเชื่อมต่อออกสู่ภายนอก ไม่ใช่จุดที่ค้นหา DNS

ประโยชน์ด้านความเป็นส่วนตัวมีขอบเขตเฉพาะ

การค้นหาที่พร็อกซีหลีกเลี่ยงการค้นหาชื่อปลายทางในเครื่องสำหรับคำขอนี้ แต่ไม่ได้เข้ารหัส SOCKS ไม่ได้พิสูจน์ว่าพร็อกซีใช้ DNS ที่เข้ารหัส และไม่ได้ส่งทราฟฟิกของแอปอื่นหรือการดึงข้อมูลล่วงหน้าของเบราว์เซอร์ผ่านพร็อกซี Requests ที่รองรับ SOCKS ก็ใช้ความแตกต่างระหว่างการค้นหาในเครื่องกับที่พร็อกซีเช่นกัน ไคลเอนต์อื่นอาจมีตัวตั้งค่าแทนรูปแบบ URL ของ curl เลือกโปรโตคอลที่แอปของคุณรองรับก่อนคัดลอกเอนด์พอยต์จากรายการพร็อกซี SOCKS5

บทความที่เกี่ยวข้อง