ตัวนับ TPROXY อาจเพิ่มขึ้นขณะที่แอปพลิเคชันไม่ได้รับอะไรเลย กฎจับคู่ได้ แต่การส่งมอบภายในยังขึ้นอยู่กับการกำหนดเส้นทางตามนโยบายและซ็อกเก็ตรับที่เข้ากันได้

TPROXY บน Linux ดักจับทราฟฟิกได้โดยไม่ต้องเขียนปลายทางใหม่เหมือน DNAT ดังนั้นแพ็กเก็ตที่ส่งไปยังปลายทางที่ไม่ใช่ภายในเครื่องต้องไปถึงซ็อกเก็ตภายในที่เหมาะสม

ตามเส้นทางส่งมอบ

  1. ทราฟฟิกไปถึงโฮสต์ดักจับผ่านอินเทอร์เฟซและตระกูลที่อยู่ที่กำหนด
  2. กฎดักจับและเครื่องหมายแพ็กเก็ตกำหนดนโยบายการส่งมอบภายใน
  3. กฎนโยบายที่ตรงกันจะเลือกเส้นทางที่ส่งแพ็กเก็ตภายในเครื่อง
  4. พร็อกซีใช้ตัวรับฟังแบบโปร่งใสที่รองรับพร้อมตัวเลือกซ็อกเก็ตที่จำเป็น

ตัวอย่าง IPv4 ของเคอร์เนลต้องมีการรองรับจากแอปพลิเคชันสำหรับ IP_TRANSPARENT ตัวรับฟังปกติบนพอร์ตเดียวกัน หรือการตั้งค่าผูกที่ไม่ใช่ภายในเครื่องแบบทั่วโลก ไม่ได้พิสูจน์การรองรับนั้น

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

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

คำนึงถึงแพ็กเก็ตภายหลัง

ตัวอย่างของเคอร์เนลรวมการจับคู่ซ็อกเก็ตและเส้นทาง DIVERT ที่ทำเครื่องหมายแพ็กเก็ตของซ็อกเก็ตโปร่งใส การละเว้นอาจทำให้ทราฟฟิกภายหลังอยู่บนเส้นทางอื่นแม้การดักจับครั้งแรกจะสำเร็จ

ใช้โหมดโปร่งใสที่แอปพลิเคชันรองรับและเอกสารเคอร์เนลที่สอดคล้องกันสำหรับแต่ละตระกูลที่อยู่ คำสั่งเส้นทางภายใน IPv4 ไม่ได้ตั้งค่า IPv6 และการรองรับในตระกูลหนึ่งไม่ได้พิสูจน์พฤติกรรมซ็อกเก็ตของอีกตระกูล

TPROXY ไม่ได้สร้างการเจรจา SOCKS เช่นกัน องค์ประกอบจากการโปร่งใสไป SOCKS ยังต้อง ค้นหาปลายทางและเจรจากับต้นน้ำของตน

ย้ายจาก REDIRECT

บันทึกว่าแอปพลิเคชันที่มีอยู่ได้ปลายทางเดิมมาอย่างไร REDIRECT เปลี่ยนปลายทางและพึ่งพากลไกการกู้คืนที่เหมาะสม TPROXY ต้องมีซ็อกเก็ตโปร่งใสและการจัดเส้นทางของตนเอง เลือกตามแอปพลิเคชันและนโยบายที่อยู่ต้นทาง

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

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