Firefox ชี้ไปที่ 127.0.0.1:8000 ขอบ N2N ทำงานอยู่ เพียร์ตอบ ping ที่ที่อยู่โอเวอร์เลย์ของมัน และเบราว์เซอร์ยังรายงานว่าพร็อกซีปฏิเสธการเชื่อมต่อ ไม่มีอะไรขัดแย้งในห่วงโซ่นั้น โอเวอร์เลย์ให้ที่อยู่ที่เข้าถึงได้กับโฮสต์บนเครือข่ายส่วนตัว มันไม่ได้สร้างกระบวนการที่พูดโปรโตคอลพร็อกซี เบราว์เซอร์ไม่ได้ขอเส้นทางไปยังเพียร์ มันกำลังขอตัวรับฟังภายในเครื่อง

มีการสับสนระหว่างการเชื่อมต่อสองอย่างที่นี่ และการวาดแยกกันจะทำให้ความสับสนส่วนใหญ่ชัดเจนขึ้นในหนึ่งนาที

สองการเชื่อมต่อ ไม่ใช่หนึ่ง

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

การ ping เพียร์พิสูจน์ว่าโอเวอร์เลย์ส่งแพ็กเก็ตระหว่างที่อยู่ขอบได้ มันไม่ได้พิสูจน์อะไรเกี่ยวกับตัวรับฟังบนพอร์ต 8000 และไม่ได้พิสูจน์ว่าโฮสต์นั้นเข้าถึงต้นทางได้หรือไม่ ความล้มเหลวแยกกัน การแก้ไขแยกกัน

ตัวรับฟังต้องอยู่ที่ไหน

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

ตรวจสอบ bind จริงด้วยรายการซ็อกเก็ตแทนไฟล์กำหนดค่า เดมอนที่เริ่มก่อนโอเวอร์เลย์ขึ้นมาอาจยังผูกกับที่อยู่ที่ไม่มีอยู่อีกต่อไป

localhost ไม่ใช่เพียร์

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

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

เส้นทางไม่สามารถทำแฮนด์เชกได้

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

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

ทดสอบขอบเขตตามลำดับ

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

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

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