================================================================ How to fix the slow apt-get update issue on Ubuntu/Debian Server ================================================================ While updating or installing new packages in Ubuntu/Debian server we often experienced slow downloading speed even while our network connection is running fine. So when you run command **# apt-get update**, you see a slow download speed for packages. This just means you’re connected to a Source Mirror server that’s really busy. Some users complain that nothing happens or they are not getting any updates at all. Some got different issues like update stuck is the header and doesn’t move or resolve any further. Usually slow speed on Ubuntu/Debian server update & upgrade is due to these several issues: * Mirrors issue * Name Servers issue * Repositories issue * Unknown issues **In order to fix apt-get update, you need to check a few points:** - Check if you have the right source repositories is your **/etc/apt/sources.list** file - Remove unwanted or unsupported source repositories. - Clean apt-get cache. - Choose a fast DNS server. Method 1 ======== **1. Fixing Name Server’s issue** Clear apt-get cache: :: # apt-get clean **2. Choose a proper DNS server** Edit resolv.conf file: :: # vi /etc/resolv.conf **Enter Google/CloudFlare DNS nameservers** The following two are Google DNS, admittedly, if Google is broken, we all think the Internet is broken. Hence the reason of using Google DNS. You can choose other DNS servers like CloudFlare if you want that are fast and reliable. :: nameserver 8.8.8.8 nameserver 8.8.4.4 Or CloudFlare Name Server :: nameserver 1.1.1.1 nameserver 1.0.0.1 Now save and close the file. **3. Test your changes** Let's put our changes to the test. Do an apt-get update :: # apt-get update Do and upgrade :: # apt-get upgrade Finally, do a distribution upgrade :: # apt-get dist-upgrade Your download speed should be much greater than what you were getting earlier. Method 2 ======== **1. Change HTTP to repo in sources.list file** You can check and go with the `official LaunchPad mirror `_ listing or use the country-code method. But we have a much more scientific method. First, you will need to install a tool called **netselect**, which automatically pulls the Ubuntu/Debian source mirror list and benchmark them based on their latency to your Server location. This package is not shipped with Ubuntu/Debian by default, so you have to install it manually: :: # wget http://ftp.au.debian.org/debian/pool/main/n/netselect/netselect_0.3.ds1-28+b1_amd64.deb :: # dpkg -i netselect_0.3.ds1-28+b1_amd64.deb The following command will call **netselect** to benchmark the top 20 source hosts from the source mirror list: :: # netselect -s 20 -t 40 $(wget -qO - http://mirrors.ubuntu.com/mirrors.txt) .. image:: images/aptslow.png For example, we have established that in our location, repo.extreme-ix.org is going to be fastest mirror server for apt. We are going to use this information to update the mirror list: :: # vi /etc/apt/sources.list Next, search for the existing server domain (e.g. **us.archive.ubuntu.com**) and then replace it with **repo.extreme-ix.org**. At the prompt, perform this replacement for all entries. Save the sources.list file and run command **# apt update && apt upgrade -y** to update repo source and server packages. Method 3 ======== **Transport HTTP mirrors to HTTPS mirrors in sources.list file** **1. Transport source to https.** Transport source from http to https. Open the terminal and run the following command to install apt-transport-https package. :: # apt install apt-transport-https **2. Edit resources** Just change HTTP to HTTPS and Save the **sources.list** file and run command **# apt update && apt upgrade -y** to update repo source and server packages.