답변:
단일 인터페이스를 제한하는 것은 쉽지만 응용 프로그램 기반 규칙과 마찬가지로 전역 속도 제한에는 더 복잡한 규칙이 필요합니다. 나는 할 수 없다고 말하지는 않지만 네트워킹의 내부에 약간의 파고가 필요합니다.
인터페이스 당 한도를 설정 하는 빠른 방법 은 다음과 같습니다.
실제로 응용 프로그램 기반 규칙을 설정하려는 경우, 쇼어 월 (sshorewall ) 과 같은 일부 방화벽 프레임 워크를 살펴보면 쉐이핑을 구성하는 도우미 기능이 있습니다. 이러한 도구를 사용하더라도 도구를 제자리에 배치하려면 약간의 예측과 테스트가 필요합니다. 이 임시 작업을 수행하는 것은 아직 쉽지 않습니다.
wondershaper eth0 1000 1000
. 어떤 인터넷 대역폭이없는 나는 eth0를 대역폭의 모든뿐만 아니라 특정 응용 프로그램을 제한 할 필요가 할 수있는 방법에 대해 설명합니다.?
이것은 오래된 질문이지만 동일한 질문에 대한 답을 찾을 때이 문제를 발견했습니다. OS 및 인터페이스 제한은 이미 이전 답변에서 다루었으므로 응용 프로그램 별 제한을 설정하는 방법이 있습니다. 물방울이라는 응용 프로그램을 사용하십시오. 그렇습니다 sudo apt-get install trickle
. 다음을 실행하여 특정 앱의 업로드 / 다운로드를 제한 할 수 있습니다
trickle -u (upload limit in KB/s) -d (download limit in KB/s) application
지정된 제한으로 응용 프로그램을 시작합니다. "평활화"시간을 지정하여 응용 프로그램에 대역폭 소비 버스트가 있고 평균이 사양 내에있는 한 버스트를 허용하려는 경우 원하는 시간 동안 샘플을 자극 할 수 있습니다.
trickle: Could not reach trickled, working independently: No such file or directory
. 으로 독립 실행 형 모드에서 물방울을 실행하여이 경고를 제거 할 수 있습니다 trickle -s
.
특정 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
wondershaper
우분투 17.10 의 문제에 대한 버그를 제기했습니다. 이 코드는 우분투 17.04의 @Zeromatiker에서 발생하는 것과 유사 할 수 있습니다 : bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421