So. Here is what I am trying to do. I have a Ubuntu server (20.04) with the below three systemd services that I created. Each run its own application that keep uploading and downloading data from the internet.
service1, service2, service3
Example of service1 setup
sudo nano /etc/systemd/system/system1.service
[Unit]
Description=Myapp Service 1
After=network.target
Wants=network.target
[Service]
User=user1
Group=user1
Type=simple
Restart=always
RestartSec=5
ExecStart=myapp
[Install]
WantedBy=default.target
Now, I want the download bandwidth to be unlimited for all services. I want the upload bandwidth to be 1000 kBps for service1, 150 kBps for service2, 15 kBps for service3. I have an onboard ethernet adapter wired to my router and the interface name is eno1. I do not have wifi on this machine and prefer not to use wifi. Want it wired.
I came across wondershaper but it seems like it can only restrict bandwidth at interface level. In my case, for the whole eno1. Is there a way to create new interfaces eno2, eno3 and route traffic for each of those services (service1 and everything else through eno1, service2 through eno2, service3 through eno3) and use wondershaper to restrict bandwidth for eno1/2/3 separately?
Or is there any other option for me thats not too compilcated for a linux beginner?