ฉันมีโปรแกรมที่ฉันต้องการทดสอบในโหมดออฟไลน์โดยไม่ต้องถอดเครือข่ายจริงของฉัน โปรแกรมนี้จะยังคงต้องเชื่อมต่อกับซ็อกเก็ตท้องถิ่นรวมถึงซ็อกเก็ตโดเมนยูนิกซ์และลูปแบ็ค นอกจากนี้ยังต้องฟังลูปแบ็คและสามารถมองเห็นแอปอื่น ๆ ได้
แต่ความพยายามเชื่อมต่อกับเครื่องระยะไกลควรล้มเหลว
ฉันต้องการที่จะมียูทิลิตี้ที่ทำงานเหมือนstrace
/ unshare
/ sudo
และเพียงแค่เรียกใช้คำสั่งกับอินเทอร์เน็ต (และ LAN) ที่ซ่อนอยู่และทุกอย่างอื่นยังคงทำงาน:
$ offline my-program-to-test
คำถามนี้มีคำแนะนำที่คำตอบ: ปิดกั้นการเข้าถึงกระบวนการหรือไม่
มีคู่ของข้อเสนอแนะที่มีเช่นการทำงานเป็นผู้ใช้อื่นแล้วจัดการ iptables unshare -n
หรือ แต่ในทั้งสองกรณีฉันไม่รู้ว่าคาถาที่จะได้รับซ็อกเก็ตโดเมนยูนิกซ์และลูปแบ็คเพื่อใช้ร่วมกับระบบหลัก - คำตอบสำหรับคำถามนั้นเพียงบอกฉันว่าจะแบ่งเครือข่ายทั้งหมดอย่างไร
โปรแกรมที่ฉันกำลังทดสอบยังต้องเชื่อมต่อกับเซิร์ฟเวอร์ X และ dbus ของฉันและยังสามารถฟังลูปแบ็คสำหรับการเชื่อมต่อจากแอพอื่น ๆ ในระบบ
เป็นการดีที่ฉันต้องการหลีกเลี่ยงการสร้าง chroots หรือผู้ใช้หรือ VM หรือสิ่งที่คล้ายกันเนื่องจากมันกลายเป็นเรื่องที่น่ารำคาญเหมือนการถอดสายเคเบิลเครือข่าย sudo
คือจุดของคำถามคือวิธีที่ฉันสามารถทำให้เป็นง่ายๆเป็น
ฉันชอบกระบวนการที่จะเรียกใช้ 100% ตามปกติยกเว้นการโทรผ่านเครือข่ายที่ระบุที่อยู่นอกพื้นที่จะล้มเหลว เป็นการดีที่จะรักษา uid เดียวกัน homedir เดียวกัน pwd เดียวกันทุกอย่างเดียวกันยกเว้น ... ออฟไลน์
ฉันใช้ Fedora 18 ดังนั้นคำตอบของ Linux ที่ไม่สามารถตอบสนองได้ดี
ฉันยินดีที่จะแก้ปัญหานี้ด้วยการเขียนโปรแกรม C หากเกี่ยวข้องนั่นคือคำตอบที่เกี่ยวข้องกับการเขียน C ก็ดี ฉันไม่รู้ว่า syscalls ใดที่โปรแกรม C จะต้องทำการเพิกถอนการเข้าถึงเครือข่ายภายนอกในขณะที่รักษาเครือข่ายท้องถิ่น
นักพัฒนาใด ๆ ที่พยายามให้การสนับสนุน "โหมดออฟไลน์" อาจจะขอบคุณอรรถประโยชน์นี้!