แบนด์วิดท์เครือข่ายเค้นต่อแอปพลิเคชันใน Mac OS X


37

ฉันสังเกตว่า iTunes ดูเหมือนจะดูดแบนด์วิดท์ทั้งหมดของฉันและไม่เล่นกับแอพพลิเคชั่นอื่น ๆ ที่ใช้เว็บเมื่อดาวน์โหลด ในความเป็นจริงมันไม่ได้ให้แบนด์วิดท์เพียงพอเมื่อเรียกดู iTunes Store ในขณะที่ดาวน์โหลดไฟล์ขนาดใหญ่หรือไฟล์จำนวนมาก (พอดคาสต์รายการทีวีแอพขนาดใหญ่ ฯลฯ )

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

มีแอพพลิเคชั่นหรือเครื่องมือผ่าน Terminal เพื่อ จำกัด แบนด์วิดท์การดาวน์โหลดที่ iTunes ได้รับโดยไม่ขัดขวางเว็บเบราว์เซอร์หรือแอปพลิเคชั่นอื่น ๆ ด้วยหรือไม่?

ควรใช้ซอฟต์แวร์ FOSS / GPL แต่อาจต้องยอมรับซอฟต์แวร์แบบชำระเงินด้วยเช่นกัน


1
Network Link Conditioner นั้นดีมากในการ จำกัด แบนด์วิดท์สำหรับแอปทั้งหมดapple.stackexchange.com/questions/164959/ …
Khaled Annajar

คำถามนี้ส่วนใหญ่ล้าสมัยสำหรับการใช้งานเฉพาะของฉัน ฉันไม่ค่อยดาวน์โหลดเนื้อหาใน iTunes เป็นประจำ (พอดคาสต์ตอนนี้ใช้แอพของบุคคลที่สามใน iPhone เท่านั้น, AppleTV สำหรับการซื้อวิดีโอ iTunes และไม่ซิงค์แอพทั้งหมดไปยังคอมพิวเตอร์)
dotHTM

คำตอบ:


9

GUI:

  • Network Link Conditioner (บานหน้าต่างการตั้งค่าซึ่งเป็นส่วนหนึ่งของเครื่องมือสำหรับนักพัฒนาของ Apple)
  • Entonnoir (หน้าต่าง, อุปกรณ์การบริจาค)
  • speedlimit (บานหน้าต่างการตั้งค่าฟรีเหมือนเบียร์)
  • slowyapp (menuitem, payware)

CLI (ไม่มีการกรองเฉพาะพอร์ต แต่สามารถปรับเปลี่ยนได้):

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

sudo lsof -i -P

เครื่องมือส่วนใหญ่หรือทั้งหมดใช้ipfwซึ่งคัดค้านpfอย่างเป็นทางการดังนั้นไม่แน่ใจว่าโซลูชันเหล่านี้จะทำงานบน OS X 10.9 หรือมากกว่านั้น


5

คำถามเก่า แต่ฉันเพิ่งพบปัญหาที่คล้ายกันดังนั้นฉันคิดว่าฉันจะตอบ

ปัญหาอาจเกิดขึ้นจริงจากการปรับปริมาณการใช้งานที่ ISP ของคุณ พวกเขาจัดลำดับความสำคัญการรับส่งข้อมูลไปยังผู้ให้บริการเนื้อหาที่รู้จักในเชิงรุกเพื่อพยายามให้บริการสตรีมมิ่งที่ดีขึ้นแก่ลูกค้า ฉันยืนยันว่าพวกเขาไปไกลเกินไปในบางกรณี - ฉันเพิ่งวินิจฉัยปัญหาที่คล้ายกันซึ่งการอัปโหลดภาพถ่ายพื้นหลัง iCloud นั้นทำให้เวลาในการ ping เกิน 45,000 มิลลิวินาที

เพื่อแก้ไขปัญหาคุณสามารถลดจำนวนแบนด์วิดท์ทั้งหมดที่คอมพิวเตอร์ของคุณจะใช้เพื่อป้องกันการเข้าชมของ ISP จากการปล้นแบนด์วิดท์จากแอปพลิเคชันอื่นทั้งหมด น่าแปลกใจที่สิ่งนี้จะปรับปรุงประสิทธิภาพการเบราส์บนคอมพิวเตอร์ของคุณนอกเหนือจากการปรับปรุงประสิทธิภาพการทำงานของคอมพิวเตอร์อื่น ๆ ในเครือข่ายของคุณอย่างชัดเจน หากตัวอย่างเช่นคุณมีดาวน์สตรีม 15Mbps คุณสามารถ จำกัด คอมพิวเตอร์ของคุณให้ใช้เพียง 12Mbps และอัลกอริทึม ISP จะไม่เห็นความต้องการในการกำหนดปริมาณการใช้งานของคุณอีกต่อไป:

sudo ipfw pipe 1 config bw 12Mbits/s
sudo ipfw add 1 pipe 1 tcp from any to me

ในกรณีของฉันมันเป็นแบนด์วิธอัพสตรีม (ต่อยอดที่ 1Mbps โดย ISP ของฉัน) ซึ่งเป็นปัจจัย จำกัด ดังนั้นฉันจึงเรียกใช้สิ่งต่อไปนี้ซึ่งแก้ไขปัญหาของฉันได้:

sudo ipfw pipe 1 config bw 768Kbits/s
sudo ipfw add 1 pipe 1 tcp from me to any

โปรดทราบว่าคำสั่งเหล่านี้จะมีผลจนกว่าจะรีสตาร์ท แต่หากต้องการยกเลิกกฎให้ทำดังต่อไปนี้:

ipfw delete 1

ฉันพบหน้า man FreeBSD สำหรับ ipfw แต่ตาม Wikipedia แสดงว่า ipfw ถูกยกเลิกการเน้นใน OS X โดยเริ่มตั้งแต่ 10.4 ถึง 10.5 ฉันไม่พบ ipfw ในการติดตั้งที่ 10.10 ในวันนี้และทั้ง Homebrew และ MacPort นั้นไม่มีการติดตั้งที่พัฒนาขึ้นสำหรับ ipfw
dotHTM

2
ipfwถูกยกเลิกใน os x แต่มีpf
Chris


4

ใช้IceFloorบน [Mountain] Lion


ฉัน downvoting คำตอบนี้หลังจากค้นพบว่า IceFloor เป็นศูนย์กลางของโปรโตคอลมากกว่าแอปที่เป็นศูนย์กลาง ดังนั้นหากฉันต้องการ จำกัด แอพบางตัวมันก็ยาก
knocte

เพิ่มขึ้นเนื่องจากการสำรวจ IceFloor ทำให้ฉันค้นหา Vallum ซึ่งอนุญาตให้ฉันบล็อกการเข้าถึงเครือข่ายต่อแอพ
skplunkerin

2

นี่เป็นความคิดที่ผิดปกติจริงๆ แต่คุณอาจใช้ ipfw และ dummynet ในตัวของ Mac OS X เพื่อเขียนกฎเพื่อทำสิ่งนี้ ดู man pages สำหรับเครื่องมือเหล่านั้น


วิดีโอของใครบางคนกำลังทำเช่นนั้นใน OSX: youtube.com/watch?v=VgwR230coOw
ศ. Falken

2

ในความสัมพันธ์กับการพัฒนาในปัจจุบันสำหรับOS X 10.10การipfwปฏิบัติการเรียกกันทั่วไปว่าเป็นไม่สามารถใช้ได้อีก อย่างไรก็ตามมีการpfปฏิบัติการซึ่งสามารถจัดการการกำหนดค่าไฟร์วอลล์ที่คล้ายกัน

มีอินเตอร์เฟซ GUI ที่เรียกว่า "Murus" (เป็นhttp://www.murusfirewall.com ) pfซึ่งคุณสามารถใช้สำหรับการกำหนดค่า เท่าที่ฉันเข้าใจมันยังรองรับแบนด์วิดท์ จำกัด (จาก UI)

[แก้ไข]

ในกรณีที่บางคนไม่สามารถไปได้โดยไม่ต้องipfwพยายามรวบรวมตัวเอง ซอร์สโค้ด (จาก FreeBSD) มีให้ที่นี่: http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ipfw/

Apple ยังเผยแพร่ซอร์สโค้ดของโปรเจ็กต์โอเพนซอร์สที่ใช้ (d) ipfwสามารถพบได้ที่นี่: http://www.opensource.apple.com/source/network_cmds/network_cmds-329.2.2/


1
ฉันสามารถกำหนดค่า Murus เป็น Skype 8 ได้สำเร็จบน OS X 10.14 Mojave โดยใช้คำแนะนำที่นี่: murusfirewall.com/forum/viewtopic.php?t=428
Jon Schneider

1

หยดคือสิ่งที่คุณหลังจาก

ปัญหาเดียวก็คือว่ามันไม่สนับสนุน executables ใช้ kqueue และจะไม่สนับสนุน executables เชื่อมโยงแบบคงที่ iTunes น่าจะใช้ได้


1
ฉันไม่สามารถสร้างหยด 1.0.6 หรือ 1.0.7 หลังจากทำงาน. / config ฉันได้รับข้อผิดพลาดว่าไม่พบ libevent ฉันติดตั้ง libevent ผ่าน MacPorts และได้รับข้อผิดพลาดเดียวกันเมื่อฉันลองอีกครั้ง
dotHTM

@Kio รุ่น> 1.06 poll()ไม่ได้สร้างเพราะมีปัญหากับการเรียกไปยัง คนที่มีอายุมากกว่าควรทำงานอย่างไรก็ตาม
John T

4
ฉันดาวน์โหลด trickle 1.0.5, รัน "$ sudo ./configure" และได้รับข้อผิดพลาดต่อไปนี้เหมือนเมื่อก่อน: "configure: error: ไม่พบ libevent" ฉันตรวจสอบแล้วและ MacPorts ติดตั้ง libevent แล้ว นอกจากนี้ฉันไม่ชอบซอฟต์แวร์ที่ไม่ได้รับการปรับปรุงในปีที่ผ่านมา
dotHTM


0

ฉันเพิ่งพบ (และยังทดลองใช้งาน) Vallumเพื่อควบคุมแอพของฉัน:

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


อัปเดต:ฉันไม่สามารถแบนด์วิดท์ "เค้น" สำหรับแอปที่ใช้Vallumเพียงตั้งค่าโปรไฟล์ที่แตกต่างกันซึ่งฉัน จำกัด แอปมาก / น้อย


3
ดูเหมือนจะไม่อนุญาตให้มีการควบคุมปริมาณเลย
GJ

@GJ จริงฉันไม่สามารถเห็นความสามารถนั้น ... จนถึงตอนนี้ฉันสามารถอนุญาตให้แอปเข้าถึงเครือข่ายหรือไม่เท่านั้น ฉันได้ตั้งค่าโปรไฟล์ที่แตกต่างกันเป็น "throttles" สำหรับการแก้ปัญหาของฉันนี้
skplunkerin

0

วิธีที่ดีที่สุดในการเค้นแบนด์วิดท์บน macOS คือการใช้ Dummynet ซึ่งสร้างไว้ในเคอร์เนล macOS และทำงานกับตัวกรองแพ็คเก็ต pf ในความคิดของฉันวิธีเดียวที่จะปรับแบนด์วิดท์ได้อย่างมีประสิทธิภาพบนพื้นฐานต่อกระบวนการคือการระบุพอร์ตท้องถิ่นที่ถูกผูกไว้โดยกระบวนการและจากนั้นสร้างกฎ pf dummynet ที่สอดคล้องกัน เท่าที่ฉันรู้เพียงแอป macOS ที่มีตัวเลือกนี้คือ Scudo (ฉันเป็นผู้พัฒนา Scudo, Vallum และ Murus) Scudo 1.0 beta 3 มีให้บริการฟรีข้อมูลเพิ่มเติมเกี่ยวกับการปรับจูนแบนด์วิดท์สำหรับกระบวนการ Scudo ดูได้ที่นี่: http://www.murusfirewall.com/forum/viewtopic.php?f=2&t=1919&p=3281#p3281


ฉันลองสิ่งนี้และดูเหมือนว่าจะใช้งานได้ นี่คือตอนนี้ในรุ่นเบต้า 6 (เบต้า 3 จะไม่ทำงานอีกต่อไป) - murusfirewall.com/forum/viewtopic.php?f=2&t=1949ฉันชอบ Network Monitor ที่ให้คุณเพิ่มไฟร์วอลล์และแบนด์วิดธ์ปริมาณ จำกัด
f01
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.