Câu trả lời:
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à cách nhanh chóng để 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.
wondershaper eth0 1000 1000
không có băng thông internet. Tôi cần giới hạn tất cả băng thông eth0 không chỉ các ứng dụng cụ thể. Làm thế nào để làm điều đó?
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, 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.
trickle: Could not reach trickled, working independently: No such file or directory
. Bạn có thể xóa cảnh báo này bằng cách thực hiện nhỏ giọt trong chế độ độc lập với trickle -s
.
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
wondershaper
vấn đề trong Ubuntu 17.10, có thể tương tự như những gì đang xảy ra với @Zeromatiker trong Ubuntu 17.04: bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421