tcconfig adalah tool berbasis Python yang menyederhanakan penggunaan tc
(traffic control) di Linux. Cocok digunakan untuk bandwidth shaping, simulasi network delay, packet loss, dan pengaturan QoS sederhana.
Disini saya akan menggunakan user root
dan Debian 12 Server untuk instalasi. disarankan menggunakan bash
untuk proses instalasi
Instalasi python3 dan venv
apt update
apt install -y python3 python3-venv python3-pip
Buat directory untuk tempat tcconfig karena saya akan instalasi menggunakan venv
mkdir -p ~/tools/tcconfig
cd ~/tools/tcconfig/
python3 -m venv ~/tools/tcconfig/
Aktifkan venv
source ~/tools/tcconfig/bin/activate
Selanjutnya tampilan shell akan berubah dan diawali (tcconfig) root@hostname:
Langkah selanjutnya instalasi tcconfig didalam venv menggunakan pip
pip install --upgrade pip
pip install tcconfig
Lakukan test untuk memastikan tcconfig sudah terinstall
tcset --version
Output
tcset 0.30.1
Untuk keluar/menonaktifkan venv ketikkan perintah
deactivate
Agar perintah tcset
, tcshow
, tcdel
bisa dijalankan diluar directory venv lakukan symbolic link seperti berikut
ln -s ~/tools/tcconfig/bin/tcset /usr/local/bin/tcset
ln -s ~/tools/tcconfig/bin/tcdel /usr/local/bin/tcdel
ln -s ~/tools/tcconfig/bin/tcshow /usr/local/bin/tcshow
Membuat, Mengubah, Dan Menghapus Rule
Membuat rule shaping/limitasi download berdasarkan interface
tcset ens18.150 --rate 10Mbps
Membuat rule shaping/limitasi upload berdasarkan interface
tcset ens18.150 --rate 20Mbps --direction incoming
Mengubah rule shaping/limitasi download berdasarkan interface
tcset ens18.150 --rate 15Mbps --overwrite
Mengubah rule shaping/limitasi upload berdasarkan interface
tcset ens18.150 --rate 20Mbps --direction incoming --overwrite
Menghapus semua rule shaping/limitasi (download dan upload) berdasarkan interface
tcdel ens18.150 --all
Buat Agar Persistence
Disini saya memanfaatkan ifudown/ifupdown2 default debian 12 untuk membuat konfigurasi berjalan secara persistence
Agar konfigurasi tcconfig yang telah kita buat bersifat persistence (dimuat kembali setelah reboot) lakukan langkah berikut
nano /etc/network/interfaces
Sesiaikan dan buat bagian up & down seperti berikut
auto ens18.150
iface ens18.150 inet static
address 10.0.0.1/30
vlan-raw-device ens18
up tcset ens18.150 --rate 10Mbps && tcset ens18.150 --rate 20Mbps --direction incoming
down tcdel ens18.150 --all