{"id":13495464,"url":"https://github.com/ModusCreateOrg/slow","last_synced_at":"2025-03-28T16:32:41.298Z","repository":{"id":4716184,"uuid":"5864253","full_name":"ModusCreateOrg/slow","owner":"ModusCreateOrg","description":"slow down a Linux network device to lower speeds (T1, 3G, 28.8k modem, etc)","archived":false,"fork":false,"pushed_at":"2020-07-02T15:36:25.000Z","size":18,"stargazers_count":79,"open_issues_count":2,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-28T14:51:07.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ModusCreateOrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-18T23:08:00.000Z","updated_at":"2024-09-26T19:24:09.000Z","dependencies_parsed_at":"2022-08-23T17:31:05.726Z","dependency_job_id":null,"html_url":"https://github.com/ModusCreateOrg/slow","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/ModusCreateOrg%2Fslow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fslow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fslow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fslow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ModusCreateOrg","download_url":"https://codeload.github.com/ModusCreateOrg/slow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246063015,"owners_count":20717724,"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":[],"created_at":"2024-07-31T19:01:35.029Z","updated_at":"2025-03-28T16:32:40.164Z","avatar_url":"https://github.com/ModusCreateOrg.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"slow\n====\n\nThis bash script offers quick shortcuts to simulate slower network connections.  It is useful when you need to simulate a wireless network on a Linux network server, especially when you are using a virtual machine guest on your local machine or in the cloud.\n\n    slow 3G                   # Slow network on default eth0 down to 3G wireless speeds\n    slow reset                # Reset connection for default eth0 to normal\n    slow vsat                 # Simulate satellite internet  with a high latency\n    slow dsl -b 1mbps         # Simulate DSL with a slower speed than the default\n    slow modem-56k -d eth1    # Simulate a 56k modem on the eth1 device. eth0 is unchanged.\n    slow -b 100000 -l 100ms   # Simulate network with a 100k bandwidth and 100ms latency\n    slow T1 -p 0.1%           # Simulate T1 line with 1 in 1000 packet loss\n    slow T3 -c 0.1%           # Simulate T3 line with 1 in 1000 packet corruption\n\nIf you assign more than one network interface to a virtual guest, you could run slow on one of the interfaces, so that it you can switch between fast and slow connections by switching the IP address endpoint.\n\nSlow requires Linux and the 'tc' suite of traffic control tools.\n\nSee the [Cisco Global Cloud Index Supplement](http://www.cisco.com/c/en/us/solutions/collateral/service-provider/global-cloud-index-gci/CloudIndex_Supplement.html) for statistics on bandwidth and latency for countries all over the world.\n\nUsage\n=====\n\nThe available built-in targets simulate many common network scenarios. They start out\nwithout assuming clear transmissions without extra delays, corruptions, or duplications.\n\n\nTarget                  | Description\n------------------------|-------------------------------------------------\nAMPS                    | 1G cell phone data\nEDGE / 2.5G / GPRS          | 2G cell phone data\n3G                      | 3G cell phone data\n4G                      | 4G cell phone data\nmodem-0.1k / modem-110    | 110 baud modem, circa 1970s\nmodem-0.3k/ modem-300    | 300 baud modem, circa 1970s\nmodem-1.2k / modem-1200   | 1200 baud modem, circa 1980s\nmodem-2.4k/ modem-2400   | 2400 baud modem, circa 1980s\nmodem-9.6k / modem-9600   | 9600 baud modem, circa 1980s\nmodem-14.4k / modem-14400 | 14.4k modem, circa 1990s\nmodem-28.8k / modem-28800 | 28.8k modem, circa 1990s\nmodem-56k / modem-56000   | 56k modem, circa 2000\n56k                     | 56k leased line (low latency)\nT1 / t1                   | T1 line (1500Mbps, low latency)\nT3 / t3                   | T3 line (45Mbps, low latency)\nDSL / dsl                 | Consumer DSL\ncablemodem              | Consumer cable modem\nwifi-a / wifi-g           | 45Mbps WIFI\nwifi-b                  | 11Mbps WIFI\nwifi-n                  | 150Mbps WIFI\nvsat                    | 5Mbps, high latency satellite terminal\n\nBy adding extra command line parameters you can tweak the behavior of the\nnetwork interface further, adding precise bandwidth and latency tweaks, or\nadd packet loss or corruption.\n\nParameter          |  Description\n-------------------|---------------------------------------------------\n-h / --help       |  Get help. Default behavior if no parameters given.\n-v / --version    |  Version info\n-d / --device     |  Set device name\n-b / --bandwidth  |  Bandwidth, use bytes, kbps, mbps\n-l / --latency    |  Latency, in ms, e.g. \"20ms\"\n-p / --packetloss |  Packet loss in percent, e.g. \"0.3%\"\n-c / --corruption |  Corrupt random bits, in percent, e.g. \"0.01%\"\n-q / --quiet      |  Make output quiet\n\nTesting\n=======\nThis project is set up with [Vagrant](http://www.vagrantup.com/) to make it convenient\nto test, even if you are not running Linux as your host operating system. \n\nInstall Vagrant and [Virtualbox](http://www.virtualbox.org/) and issue the command `vagrant up` and then you can experiment with the different commands, for example:\n\n    vagrant up\n    vagrant ssh \n    # wait for vagrant prompt \n    sudo /vagrant/slow 56k\n\nCredits\n=======\nRichard Bullington-McGuire \u003crichard@moduscreate.com\u003e wrote the script inspired by a UI suggestion from Mike Schwartz \u003cmike@moduscreate.com\u003e. [Tyler Knappe](https://github.com/knappe) and [Adrian Silva](https://github.com/skiold) helped clean up the script.\n\nStack Overflow and Superuser questions that helped:\n* http://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script-to-get-long-and-short-command-line-options/7680682#7680682\n* http://superuser.com/questions/147156/simulating-a-low-bandwidth-high-latency-network-connection-on-linux\n\nAn [Aptivate blog post](https://web.archive.org/web/20111129155657/http://blog.aptivate.org/2010/01/23/make-sure-your-apps-work-in-the-field) lent some inspiration, as did [this script](https://web.archive.org/web/20130928002236/http://atmail.com/kb/2009/throttling-bandwidth) for throttling bandwidth.\n\nFuture Development\n==================\n\nIt would be nice to expand the options that this took more options, such as adjusting for random fluctuations in speed, packet reordering, and smarter packet dropping. Reading up on the [Linux Advanced Routing and Traffic Control HOWTO](http://www.lartc.org/lartc.html) should provide food for thought.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FModusCreateOrg%2Fslow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FModusCreateOrg%2Fslow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FModusCreateOrg%2Fslow/lists"}