{"id":18878296,"url":"https://github.com/uriel1998/automatic_wondershaper_wombat","last_synced_at":"2026-05-08T13:17:36.159Z","repository":{"id":147177097,"uuid":"56741317","full_name":"uriel1998/automatic_wondershaper_wombat","owner":"uriel1998","description":"Let this script configure wondershaper queues for you automagically!","archived":false,"fork":false,"pushed_at":"2020-10-12T02:10:18.000Z","size":276,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T02:40:17.548Z","etag":null,"topics":["bandwidth","bash","linux","traffic-shaping"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uriel1998.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-21T04:01:14.000Z","updated_at":"2020-10-12T02:10:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca8c7e89-4101-4cb9-8bf7-9c383fe822d6","html_url":"https://github.com/uriel1998/automatic_wondershaper_wombat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fautomatic_wondershaper_wombat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fautomatic_wondershaper_wombat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fautomatic_wondershaper_wombat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fautomatic_wondershaper_wombat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uriel1998","download_url":"https://codeload.github.com/uriel1998/automatic_wondershaper_wombat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239841731,"owners_count":19705981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bandwidth","bash","linux","traffic-shaping"],"created_at":"2024-11-08T06:25:47.027Z","updated_at":"2026-05-08T13:17:36.145Z","avatar_url":"https://github.com/uriel1998.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# automatic_wondershaper_wombat\n\nA script in bash (with some assorted tools) to automagically shape network \ntraffic using a modified version of the wondershaper script (and maintaining \nyour high LAN network speeds).\n\nNOTE:  Wondershaper [does not work with newer kernels](https://lists.debian.org/debian-qa-packages/2024/12/msg00221.html), so I'm archiving this.\n\n## Contents\n 1. [About](#1-about)\n 2. [License](#2-license)\n 3. [Prerequisites](#3-prerequisites)\n 4. [Installation](#4-installation)\n 5. [Usage](#5-usage)\n \n***\n\n## 1. About\n\nA script in bash (with some assorted tools) to automagically shape network \ntraffic using a modified version of the wondershaper script (and maintaining \nyour high LAN network speeds).  This is a per-machine setup.\n\nIt is designed to be run under Network Manager, but can be invoked manually \n(or from a cron job).\n\n## 2. License\n\nThis project is licensed under the GNU general public license. For the full license, see `LICENSE`.\n\n## 3. Prerequisites\n\n* [speedtest-cli](https://github.com/sivel/speedtest-cli)\n\nThese are probably already installed or are easily available from your distro:\n\n* [awk](http://www.gnu.org/software/gawk/manual/gawk.html)\n* [grep](http://en.wikipedia.org/wiki/Grep)\n* [bc](https://www.geeksforgeeks.org/bc-command-linux-examples)\n* [ifconfig](https://en.wikipedia.org/wiki/Ifconfig)\n\nOptional:  \n\n* [logger](https://linux.die.net/man/1/logger)\n\n## 4. Installation\n\n* Clone or download the repository; change into the directory.\n* Install `wondershaper` (see below) \n* [Edit your sudoers file](https://www.maketecheasier.com/edit-sudoers-file-linux/) and add the following line at the end:  \n\n`ALL ALL=NOPASSWD:/sbin/wondershaper`\n\n* `sudo mkdir /etc/NetworkManager/dispatcher.d` (if it doesn't exist)\n* `sudo cp ./autobandwidth.sh /etc/NetworkManager/dispatcher.d/90-autobandwidth` \n\n\n### Installing wondershaper\n\n#IMPORTANT EDIT: Of course, it's after I write all this up that someone points out to me \nthat I was looking at an abandoned fork of `wondershaper`.  Please utilize \n[this version of wondershaper](https://github.com/magnific0/wondershaper), and \nredownload my script, as the command line switches have changed, and I corrected \nfor that.  Still put it in `/sbin`, though, please.\n\nThe wondershaper script is rather old, and has one big glaring omission - it \nalso rate-limits your LAN connectivity.  My modified copy, using [this guide](http://forums.opensuse.org/english/get-technical-help-here/network-internet/454307-wondershaper-modification-exclude-lan-should-included.html), changes the rate limit for LAN traffic to 85% of a 10MB link \nfor subnet 192.168.1.* .  If your LAN subnet is different (or has a higher link \nspeed), you will want to change those values.\n\nYou are free to utilize your distro's package for wondershaper, or inspect and \nuse my modified copy so that LAN traffic is shaped differently than internet \ntraffic.  \n\nIf you are using *my* script:  \n\n`sudo cp ./wondershaper.sh /sbin/wondershaper`\n\nThis guide (and script) are written assuming that `wondershaper` \nis located in `/sbin` and is executable.  So if you're not using mine and are \nusing your distro's version, install it normally and then type:\n\n`sudo ln -s $(which wondershaper) /sbin/wondershaper`\n\nto create a symlink to `/sbin/wondershaper` if it does not yet exist.\n\nThen make sure it's executable:\n\n`sudo chmod a+x /sbin/wondershaper`\n\nTo install `autobandwidth` for Network Manager, first type\n\n`sudo mkdir /etc/NetworkManager/dispatcher.d`  \n\nso that the directory exists if it's not already there.  Then type\n\n`sudo cp ./autobandwidth.sh /etc/NetworkManager/dispatcher.d/60-autobandwidth`\n\nto copy the script.  Then, finally, \n\n`sudo chown root:root /etc/NetworkManager/dispatcher.d/60-autobandwidth`\n\nIf it isn't owned by root, NetworkManager won't touch it.\n\nIf you're using it manually, copy it (or create a symlink to) somewhere in your `$PATH`.\n\n## 5. Usage\n\nIf you have installed it properly and Network Manager is installed, it should \nrun automagically when the interface changes.  It will (if not specified by \nNetwork Manager) find the active link, measure bandwidth using speedtest-cli, \nand then shape your internet traffic to 85% of measured bandwidth.\n\nIt waits until the load is less than 2 before running; this is hardcoded in \nthe script.  It's line 29: `while (( $(echo \"$MyLoad \u003e 2\" |bc -l) )); do`.  \nChange 2 if you want or need to.\n\nIf you run `autobandwidth` without any arguments, it will look for links that \nare up.  It will choose the first ethernet link first, and if there's no wired \nconnection, it will look for (and choose) the first wireless connection that is up.\n\n**IMPORTANT** `autobandwidth` uses the `eno[0-9]` and `wlp[0-9]s[0-9]` \ninterface naming conventions! \n\nIf you run `autobandwidth quit` manually, it will clear the existing queues \non the automatically chosen link.  If you wish to specify the link in question, \ntry this: `autobandwidth eno1 quit` or `autobandwidth wlp2s0 quit`, \nreplacing the link names with your own.\n\nThis might also be useful to run as a cronjob if your connection changes or is \nfunky.  \n\nIt will output a minimal result to /tmp/bandwidthqueues as well if you wish to \nuse that data in conky, etc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiel1998%2Fautomatic_wondershaper_wombat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furiel1998%2Fautomatic_wondershaper_wombat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiel1998%2Fautomatic_wondershaper_wombat/lists"}