저는 트래픽 전달, SSH 터널링을 사용하고 일부 사용자에 대해 많은 대역폭을 소비하는 클라이언트 애플리케이션에 OpenSSH 서버를 사용하고 있습니다. SSH 포트 출력 또는 SSH/TCP/IP 세션의 트래픽을 조절하고 연결된 각 사용자에게 상당한 양의 대역폭이 할당되도록 하는 방법이 있습니까?
나는 이것을 만났다장소스크립트를 수정했는데 발생하는 문제에 대한 더 나은 해결책이 있는지 궁금합니다.
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 4096kbps
tc class add dev eth0 parent 1:1 classid 1:5 htb rate 2048kbps ceil 2208kbps prio 1
tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 5 fw flowid 1:5
iptables -A OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 5
답변1
tc
를 사용하는 것이 좋습니다 wondershaper
. 기본적으로 나가는 트래픽과 들어오는 트래픽에 가장 적합한 옵션을 구성합니다. 구문은 매우 간단합니다. 구성하려는 장치가 eth0
원시 업링크 및 다운링크 비트를 계산하는지 확인하기만 하면 됩니다. 일반적으로 네트워크 공급자는 "1Mbps" 또는 "512Kbps"와 같은 측정값으로 비트를 제공하므로 간단합니다. 의심스러운 경우 ISP에 문의하세요. 각 시스템에 대해 Wondershaper를 설치하기만 하면 됩니다.
sudo apt-get install wondershaper
Wondershaper를 루트로 실행하고 각 시스템에 제공되는 대역폭의 양을 확인합니다.
sudo wonderwhaper eth0 1000 500
위의 예에서는 eth0 장치의 다운스트림이 1,000킬로비트, 업스트림이 500킬로비트로 제한되어 있습니다. 최대 원시 속도와 제한 속도 사이에 약간의 여유 공간을 두는 것이 좋습니다.