다운로드 / 업로드 대역폭을 제한하려면 어떻게해야합니까?


77

다음에 대한 다운로드 / 업로드 대역폭을 제한하는 방법 :

  • 전체 OS.
  • 하나의 네트워크 인터페이스.
  • 단일 응용 프로그램.

wondershaper우분투 17.10 의 문제에 대한 버그를 제기했습니다. 이 코드는 우분투 17.04의 @Zeromatiker에서 발생하는 것과 유사 할 수 있습니다 : bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421
aguadopd

답변:


42

단일 인터페이스를 제한하는 것은 쉽지만 응용 프로그램 기반 규칙과 마찬가지로 전역 속도 제한에는 더 복잡한 규칙이 필요합니다. 나는 할 수 없다고 말하지는 않지만 네트워킹의 내부에 약간의 파고가 필요합니다.

인터페이스 당 한도를 설정 하는 빠른 방법 은 다음과 같습니다.

실제로 응용 프로그램 기반 규칙을 설정하려는 경우, 쇼어 월 (sshorewall ) 과 같은 일부 방화벽 프레임 워크를 살펴보면 쉐이핑을 구성하는 도우미 기능이 있습니다. 이러한 도구를 사용하더라도 도구를 제자리에 배치하려면 약간의 예측과 테스트가 필요합니다. 이 임시 작업을 수행하는 것은 아직 쉽지 않습니다.


wondershaper은 심지어 왜 (모르는 작동하지 않습니다 wondershaper eth0 1000 1000 . 어떤 인터넷 대역폭이없는 나는 eth0를 대역폭의 모든뿐만 아니라 특정 응용 프로그램을 제한 할 필요가 할 수있는 방법에 대해 설명합니다.?
아라 쉬

67

이것은 오래된 질문이지만 동일한 질문에 대한 답을 찾을 때이 문제를 발견했습니다. OS 및 인터페이스 제한은 이미 이전 답변에서 다루었으므로 응용 프로그램 별 제한을 설정하는 방법이 있습니다. 물방울이라는 응용 프로그램을 사용하십시오. 그렇습니다 sudo apt-get install trickle. 다음을 실행하여 특정 앱의 업로드 / 다운로드를 제한 할 수 있습니다

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

지정된 제한으로 응용 프로그램을 시작합니다. "평활화"시간을 지정하여 응용 프로그램에 대역폭 소비 버스트가 있고 평균이 사양 내에있는 한 버스트를 허용하려는 경우 원하는 시간 동안 샘플을 자극 할 수 있습니다.


14
대단히 감사합니다! 이 솔루션은 애플리케이션별로 대역폭을 제어하는 ​​데 적합합니다. 질문이 오래 되어도 주저하지 말고 답변을 게시하십시오. 나중에 참조 할 수 있도록 :과 같은 오류 메시지가 표시 될 수 있습니다 trickle: Could not reach trickled, working independently: No such file or directory. 으로 독립 실행 형 모드에서 물방울을 실행하여이 경고를 제거 할 수 있습니다 trickle -s.
Glutanimate

물방울에 의해 제한되는 한계를 어떻게 제거합니까?
익명 마우스

2
Trickle은 제한이 적용되는 응용 프로그램을 실행합니다. 따라서 물방울 명령을 사용하지 않고 응용 프로그램을 다시 시작하기 만하면됩니다.
SMeznaric

1
이 답변을 주셔서 감사합니다 그것은 내가 찾던 정확한 일이었다
Ali

1
느린 네트워크 연결을 시뮬레이션 할 때 필요한 것입니다.
Ethan Kaminski

5

특정 IP 주소의 대역폭을 제한하려면 다음을 사용하십시오.

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

4
꽤 복잡했습니다. 몇 가지 의견은 먼 길을 갈 것입니다. 예를 들어 qdiscs, classids, htb 등에 대한 링크 또는 설명을 추가 할 수 있습니다.
oligofren

따라서 기본적으로 위의 내용은 다른 대기열로 필터링되지 않는 한 모든 것을 5000kbps로 제한합니까? 우리가 모든 것을 제한하고 싶지 않다면 어떨까요?
Ken Sharp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.