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

Windows เก็บพร็อกซีแยกตามการเชื่อมต่อ

ในตัวเลือกอินเทอร์เน็ตมีสองชั้นที่ดูเหมือนกันในหน้าต่าง การตั้งค่าเครือข่ายท้องถิ่นใช้กับการเชื่อมต่อท้องถิ่นปกติ ขณะที่รายการ dial-up หรือ VPN เก็บสำเนาของตัวเองไว้ใต้ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections ซึ่งเก็บเป็นค่าไบนารี การเขียนค่ารีจิสทรีส่วนกลางที่คุ้นเคยไม่ช่วยอัปเดตสำเนานั้น

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

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

PAC ที่จัดการอยู่อาจเปิดตัวเองกลับมาได้

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

ตรวจสอบ และหากได้รับอนุญาต ให้ปิดสวิตช์สองตัวนั้นสำหรับบริการที่รับส่งข้อมูล:

networksetup -setautoproxystate "Wi-Fi" off
networksetup -setproxyautodiscovery "Wi-Fi" off
scutil --proxy

ใช้ชื่อบริการจริงแทนการเดา แล็ปท็อปที่มีทั้งไวไฟและอะแดปเตอร์ USB Ethernet มีสองบริการ และมีเพียงหนึ่งเดียวที่รับส่งข้อมูลของคุณ scutil --proxy พิมพ์ค่าเฉพาะของบริการหลักปัจจุบัน เปรียบเทียบผลลัพธ์นั้นกับสิ่งที่คุณแก้ไขก่อนสรุปว่าโปรไฟล์ชนะ

ชี้นำเครื่องมือไปยังต้นทางจริง

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

นี่คือท่าที่ทำให้คุณยังคงดีบักแทนที่จะกำหนดค่าใหม่

ดันพร็อกซีเข้าไปในทันเนล

ไคลเอนต์ที่ใช้ OpenVPN สามารถรับตัวเลือกพร็อกซีที่ใช้ได้เมื่อทันเนลขึ้นแล้ว ซึ่งสะดวกเมื่อไคลเอนต์เป็นเจ้าของเส้นทาง:

dhcp-option HTTPPROXY 127.0.0.1:8888
dhcp-option HTTPSPROXY 127.0.0.1:8888

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

ไคลเอนต์บางตัวไม่เคยอ่านพร็อกซีของระบบ

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

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

อ่านการกำหนดค่า ไม่ใช่สวิตช์

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

ทุกกรณีที่นี่เป็นปัญหาลำดับความสำคัญของการกำหนดค่า ไม่มีกรณีใดที่ทันเนลทำให้เครื่องมือของคุณพัง

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