it-swarm-vi.com

Làm cách nào tôi có thể giới hạn băng thông Tải xuống / Tải lên?

Làm cách nào tôi có thể giới hạn băng thông Tải xuống/Tải lên cho:

  • Toàn bộ hệ điều hành.
  • Một giao diện mạng.
  • Ứng dụng duy nhất.
77
yevhene

Giới hạn giao diện đơn là dễ dàng, nhưng giới hạn tỷ lệ toàn cầu cần các quy tắc phức tạp hơn như quy tắc dựa trên ứng dụng. Tôi không nói rằng nó không thể được thực hiện, nhưng nó đòi hỏi khá nhiều để đào sâu vào các phần bên trong của mạng.

Dưới đây là một cách nhanh chóng Cách thực hiện khi thiết lập giới hạn cho mỗi giao diện

Nếu bạn thực sự muốn thiết lập các quy tắc dựa trên ứng dụng, bạn nên xem xét một số khung tường lửa, như shorewall , có các tính năng trợ giúp để định cấu hình. Ngay cả với các công cụ này, nó đòi hỏi khá nhiều suy nghĩ và thử nghiệm để đưa nó vào vị trí. Làm một cái gì đó như thế này không hoàn toàn dễ dàng.

42
Ressu

Mặc dù đây là một câu hỏi cũ, tôi đã gặp nó khi tìm câu trả lời cho cùng một câu hỏi. Các giới hạn hệ điều hành và giao diện đã được giải quyết trong một câu trả lời trước đó, vì vậy đây là một cách để thiết lập các giới hạn cụ thể của ứng dụng. Sử dụng một ứng dụng gọi là nhỏ giọt. Vì vậy, hãy làm Sudo apt-get install trickle. Bạn có thể giới hạn tải lên/tải xuống cho một ứng dụng cụ thể bằng cách chạy

trickle -u (upload limit in KB/s) -d (download limit in KB/s) application

Điều này sẽ khởi chạy ứng dụng với các giới hạn được chỉ định. Bạn cũng có thể chỉ định thời gian "làm mịn", để các mẫu nhỏ giọt trong khoảng thời gian mong muốn trong trường hợp ứng dụng của bạn có mức tiêu thụ băng thông lớn và bạn muốn các vụ nổ được cho phép miễn là mức trung bình nằm trong thông số kỹ thuật của bạn.

66
SMeznaric

Nếu bạn muốn giới hạn băng thông cho một địa chỉ IP cụ thể, bạn có thể sử dụng điều này:

tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps

tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
5
billtian