กำหนดเส้นทางทราฟฟิก HTTPS ของตัวเก็บข้อมูล Monit ผ่าน SOCKS relay ภายใน
คงชื่อโฮสต์ของตัวเก็บข้อมูลไว้ใน URL ของ Monit ขณะที่ตัวรับฟัง loopback ส่งการเชื่อมต่อ TCP ผ่าน SOCKS4
TCP relay ภายในเครื่องสามารถพารายงาน HTTPS ของ Monit ผ่าน SOCKS โดยไม่ต้องเป็นปลายทาง TLS เสียเอง การกำหนดเส้นทางต้องรักษาชื่อของตัวเก็บข้อมูลสำหรับ HTTPS ไว้ และมอบที่อยู่ปลายทางจริงให้กับ relay
สมมติว่าตัวเก็บข้อมูลคือ collector.example ที่ 203.0.113.40:443 ในการจัดวางที่ใช้ socat อยู่แล้ว relay จะมีรูปแบบนี้:
socat TCP4-LISTEN:9900,bind=127.0.0.1,reuseaddr,fork \
SOCKS4:socks.example:203.0.113.40:443,socksport=1080ที่นี่ 127.0.0.1:9900 รับการเชื่อมต่อภายในของ Monit socks.example:1080 คือเซิร์ฟเวอร์ SOCKS4 ซึ่งถูกขอให้เชื่อมต่อไปยังที่อยู่จริงของตัวเก็บข้อมูลที่พอร์ต 443 แทนที่ที่อยู่ในเอกสารทั้งหมดด้วยค่าของการติดตั้งใช้งาน
แปลงชื่อของตัวเก็บข้อมูลภายในเครื่องไปยังตัวรับฟังนั้น และเก็บชื่อไว้ใน monitrc:
127.0.0.1 collector.example
set mmonit https://monit:[email protected]:9900/collectorบรรทัดแรกคือรายการในไฟล์ hosts ส่วนบรรทัดที่สองคือการกำหนดค่า Monit ใช้ข้อมูลรับรองจริงของตัวเก็บข้อมูลพร้อมการเข้ารหัส URL ที่จำเป็น การแมปในไฟล์ hosts ยังส่งผลต่อแอปพลิเคชันอื่นที่ใช้ชื่อนั้นบนเครื่องด้วย
การจับมือ HTTPS ยังเป็นของตัวเก็บข้อมูล ดังนั้น จึงควรรักษาชื่อโฮสต์ไว้ และนโยบายการตรวจสอบใบรับรองตามที่ตั้งใจ การเปลี่ยน URL เป็น localhost จะเปลี่ยนตัวตนที่ Monit ขอให้ตรวจสอบ
relay ใช้ IP จริงของตัวเก็บข้อมูลโดยเจตนา แทนที่จะค้นหาชื่อที่ถูกแมปใหม่ไปยัง loopback อัปเดต IP นั้นเมื่อที่อยู่ของตัวเก็บข้อมูลเปลี่ยน ทำให้ตัวรับฟังพร้อมใช้งานเป็นส่วนหนึ่งของเส้นทางการรายงาน fork จัดการแยกต่างหากสำหรับการเชื่อมต่อ relay ที่รับเข้ามา