ข้ามไปยังเนื้อหาหลัก

คู่มือผู้ใช้ mudfish-exclude

ข้อมูล

รองรับ mudfish-exclude ตั้งแต่ Mudfish Cloud VPN v6.5.4 หรือใหม่กว่า

mudfish-exclude เป็นเครื่องมือเรียกโปรแกรมที่กำหนดบน Linux โดยไม่ผ่านนโยบายเส้นทาง Mudfish

ใช้เมื่อต้องการให้ Mudfish ทำงานต่อ แต่ให้บางโปรแกรม เช่น เบราว์เซอร์ โปรแกรมส่งข้อความ Launcher เกม หรือโปรแกรมอัปเดต ใช้เส้นทางอินเทอร์เน็ตปกติ

สภาพแวดล้อมที่รองรับ​

mudfish-exclude ใช้ได้เฉพาะ Linux

ระบบต้องมีสิ่งต่อไปนี้

  • Mudfish สำหรับ Linux
  • sudo หรือสิทธิ์ root
  • cgroup v2 ที่เมานต์ไว้ที่ /sys/fs/cgroup
  • คำสั่ง ip
  • iptables
  • เส้นทางเริ่มต้น IPv4

เครื่องมือนี้จัดการทราฟฟิก IPv4 เท่านั้น ทราฟฟิก IPv6 จะไม่ถูกยกเว้นจากเส้นทางด้วย mudfish-exclude

การใช้งานพื้นฐาน​

เติม mudfish-exclude หน้าคำสั่งของโปรแกรมแล้วเรียกใช้

sudo mudfish-exclude firefox

ใส่อาร์กิวเมนต์ของโปรแกรมต่อท้ายชื่อโปรแกรมได้ตามเดิม

sudo mudfish-exclude firefox --private-window
sudo mudfish-exclude curl https://mudfish.net

หากมีอาร์กิวเมนต์มากหรือต้องการแบ่งให้ชัดเจน ให้ใส่โปรแกรมที่จะเรียกหลัง --

sudo mudfish-exclude -- firefox --private-window

แม้เรียกด้วย sudo โปรแกรมเป้าหมายโดยทั่วไปจะกลับไปทำงานด้วยสิทธิ์ผู้ใช้ปัจจุบัน โปรแกรม GUI จึงใช้โฮมไดเรกทอรี เซสชันเดสก์ท็อป และไฟล์ตั้งค่าปกติของผู้ใช้ แทนของ root ได้

การทำงานระหว่างเรียกใช้​

เมื่อเริ่มคำสั่ง mudfish-exclude จะสร้างนโยบายเครือข่ายชั่วคราวเฉพาะคำสั่งนั้น ทราฟฟิกที่เกิดขึ้นจะถูกทำเครื่องหมายแล้วส่งผ่านเส้นทางเริ่มต้น IPv4 ปกติของระบบ

เมื่อคำสั่งจบ จะรอจนกลุ่มโปรเซสที่เกี่ยวข้องว่างแล้วลบกฎชั่วคราว

Mudfish ไม่ได้ถูกปิด โปรแกรมอื่นยังทำงานตามการตั้งค่า Mudfish เดิม

ตัวอย่างการใช้งาน​

เรียก Firefox โดยไม่ผ่าน Mudfish:

sudo mudfish-exclude firefox

เรียก Discord โดยไม่ผ่าน Mudfish:

sudo mudfish-exclude discord

เรียก Steam โดยไม่ผ่าน Mudfish:

sudo mudfish-exclude steam

ดาวน์โหลดผ่านบรรทัดคำสั่งโดยไม่ผ่าน Mudfish:

sudo mudfish-exclude wget https://example.com/file.zip

ตั้งค่าและล้างนโยบายด้วยตนเอง​

โดยทั่วไปไม่จำเป็น เพราะ mudfish-exclude ตั้งค่าและล้างนโยบายให้อัตโนมัติ

หากต้องการสร้างนโยบายครั้งเดียวแล้วใช้กับหลายโปรแกรม ทำได้ดังต่อไปนี้

sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup firefox
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --cleanup

หลังใช้โหมดตั้งค่าด้วยตนเอง ต้องเรียก --cleanup เพื่อล้างนโยบาย

ตัวเลือกขั้นสูง​

ผู้ใช้ส่วนใหญ่ใช้ค่าเริ่มต้นได้เลย

ตัวเลือกหน้าที่ค่าเริ่มต้น
--cgroup NAMEชื่อ cgroup v2 สำหรับโปรแกรมที่ยกเว้นmudfish-exclude
--mark VALUEค่า firewall mark0x6d660001
--priority VALUEลำดับความสำคัญของกฎ IPv48252
--table VALUEหมายเลขตารางเส้นทาง IPv48252
--setupสร้างนโยบายแล้วจบการทำงานปิด
--cleanupลบนโยบายแล้วจบการทำงานปิด
--no-setupเข้าสู่นโยบายที่สร้างไว้แล้วเรียกคำสั่งปิด

เปลี่ยนเฉพาะเมื่อค่า mark ลำดับความสำคัญ หรือตารางเริ่มต้นชนกับเครื่องมือเครือข่ายอื่น หรือได้รับคำแนะนำจากทีมสนับสนุน Mudfish

ตัวอย่าง:

sudo mudfish-exclude --table 9000 --priority 9000 firefox

ข้อควรระวังเมื่อใช้โปรแกรม GUI​

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

วิธีที่แนะนำ:

  • ปิดโปรแกรมให้หมด แล้วเรียกใหม่ผ่าน mudfish-exclude
  • หากต้องใช้ทั้งเส้นทาง Mudfish และเส้นทางยกเว้นในเบราว์เซอร์พร้อมกัน ให้ใช้โปรไฟล์แยก
  • เรียกคำสั่งของโปรแกรมจริง แทนการเรียกเฉพาะทางลัดบนเดสก์ท็อป

แก้ไขปัญหา​

network policy setup requires root​

เติม sudo หน้าคำสั่งแล้วเรียกใช้

sudo mudfish-exclude firefox

cgroup v2 is required at /sys/fs/cgroup​

ระบบ Linux ไม่ได้ใช้ cgroup v2 ในตำแหน่งที่คาดไว้ เปลี่ยนการตั้งค่าระบบให้ใช้ cgroup v2 หรือใช้ดิสทริบิวชันที่เปิด cgroup v2 โดยค่าเริ่มต้น

failed to find the IPv4 default route​

ระบบไม่มีเส้นทางเริ่มต้น IPv4 ที่ใช้ได้ ตรวจสอบก่อนว่าการเชื่อมต่ออินเทอร์เน็ตปกติทำงาน

แอปยังดูเหมือนใช้ Mudfish อยู่​

ปิดแอปให้หมด แล้วเรียกใหม่ผ่าน mudfish-exclude โดยเฉพาะโปรแกรมที่มีโปรเซสเบื้องหลัง เช่น เบราว์เซอร์ Launcher เกม หรือโปรแกรมส่งข้อความ

มีกฎเครือข่ายค้างหลังโปรแกรมหยุดผิดปกติ​

ล้างนโยบายด้วยตนเอง

sudo mudfish-exclude --cleanup

หากเปลี่ยนค่า --mark, --priority, --table หรือ --cgroup เอง ต้องระบุค่าเดียวกันใน --cleanup ด้วย

สรุปคำสั่งแบบย่อ​

sudo mudfish-exclude COMMAND [ARGS...]
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup COMMAND [ARGS...]
sudo mudfish-exclude --cleanup