Downloads are extremely slow through Fedora or Flatpak

Hi, I’m a new user to Fedora KDE. The only thing that stops me from making the switch is that all downloads are really slow and trying to download anything through the terminal or Discover takes more than 10 minutes compared to other distributions. I live in Jordan and I thought maybe it was a mirror issue of some sort. I would really appreciate any help on this. Thanks in advance.

Can you provide traceroute or networks stats to show where the slow-down occurs? You state “anything” is slow, and then you mention “mirrors”, so are you referring to ANY download from ANY website, or just software updates through dnf?

Sorry about that, I’m talking specifically about anything from dnf and Discover as well as updates. Basically anything anything that downloads from Fedora itself or Flatpak. What commands do you want me to run?

Atraceroute and a ping to whatever mirror(s) you’re using would seem apposite - for example traceroute mirrors.rpmfusion.org on my system gives me the following showing that nothing drops packets and there are no hopes which are any slower than any other hop.:

┌─🎩 lurcher ~
├─
└─➜ traceroute mirrors.rpmfusion.org                                                                                                                                                                                                                                                                           09:28 Tue 09-Dec
traceroute to mirrors.rpmfusion.org (78.47.223.143), 30 hops max, 60 byte packets
 1  _gateway (10.32.0.1)  20.455 ms  20.413 ms  20.404 ms
 2  172.16.6.54 (172.16.6.54)  20.467 ms  20.472 ms  20.803 ms
 3  172.16.6.113 (172.16.6.113)  20.380 ms 172.16.3.97 (172.16.3.97)  20.379 ms 172.16.3.121 (172.16.3.121)  20.348 ms
 4  172.16.3.97 (172.16.3.97)  20.355 ms  20.353 ms 172.16.13.79 (172.16.13.79)  20.358 ms
 5  static.213-133-124-221.clients.your-server.de (213.133.124.221)  21.293 ms 172.16.13.79 (172.16.13.79)  21.275 ms static.213-133-124-221.clients.your-server.de (213.133.124.221)  21.310 ms
 6  static.213-133-124-221.clients.your-server.de (213.133.124.221)  21.309 ms  21.295 ms *
 7  core4.fra.hetzner.com (213.239.245.18)  26.032 ms * *
 8  core5.fra.hetzner.com (213.239.252.45)  26.021 ms core12.nbg1.hetzner.com (213.239.245.253)  29.226 ms core0.fra.hetzner.com (213.239.245.14)  26.009 ms
 9  core11.nbg1.hetzner.com (213.239.224.233)  29.199 ms * *
10  * * *
11  19025.your-cloud.host (168.119.218.51)  29.827 ms *  31.768 ms
12  19025.your-cloud.host (168.119.218.51)  30.117 ms mirrorlist06.hetzner.rpmfusion.net (78.47.223.143)  35.317 ms  35.299 ms

Feel free to try multiple servers if you have several available to you for different repositories. You can get a list from dnf repoinfo

Here is my traceroute

comfy@fedora:~$ traceroute mirrors.rpmfusion.org
traceroute to mirrors.rpmfusion.org (2a01:4f8:c0c:bed0::1), 30 hops max, 80 byte packets
 1  fiberbox.home (2a01:9700:354b:700:1247:38ff:fedb:3970)  6.154 ms  6.014 ms  6.459 ms
 2  * * *
 3  2a00:18d8::1f1 (2a00:18d8::1f1)  17.619 ms  17.555 ms  17.461 ms
 4  * * *
 5  2a00:18d8::229 (2a00:18d8::229)  17.145 ms  17.092 ms  17.029 ms
 6  2a00:18d8::105 (2a00:18d8::105)  16.974 ms  19.108 ms  19.018 ms
 7  mno-b3-link.ip.twelve99.net (2001:2035:0:2a26::1)  172.792 ms  172.765 ms  172.738 ms
 8  ffm-bb2-v6.ip.twelve99.net (2001:2034:1:6c::1)  172.716 ms  172.683 ms ffm-bb1-v6.ip.twelve99.net (2001:2034:1:6b::1)  172.658 ms
 9  hbg-bb3-v6.ip.twelve99.net (2001:2034:1:6f::1)  172.629 ms  172.600 ms *
10  hbg-b2-link.ip.twelve99.net (2001:2035:0:2916::1)  153.702 ms  295.062 ms  294.927 ms
11  hetzner-ic-383976.ip.twelve99-cust.net (2001:2035:0:2916::2)  294.880 ms hetzner-ic-383975.ip.twelve99-cust.net (2001:2035:0:2915::2)  294.839 ms hetzner-ic-383976.ip.twelve99-cust.net (2001:2035:0:2916::2)  294.798 ms
12  core24.fsn1.hetzner.com (2a01:4f8:0:3::7a5)  294.758 ms core23.fsn1.hetzner.com (2a01:4f8:0:3::7a1)  85.414 ms core22.fsn1.hetzner.com (2a01:4f8:0:3::79d)  85.278 ms
13  core11.nbg1.hetzner.com (2a01:4f8:0:3::61a)  85.202 ms core12.nbg1.hetzner.com (2a01:4f8:0:3::c5)  79.252 ms core12.nbg1.hetzner.com (2a01:4f8:0:3::60a)  79.175 ms
14  * * *
15  spine5-rdev1.cloud1.nbg1.hetzner.com (2a01:4f8:cfff:1::f000:f042)  79.453 ms  77.806 ms spine5-rdev2.cloud1.nbg1.hetzner.com (2a01:4f8:cfff:1::f000:f04a)  78.277 ms
16  19025.your-cloud.host (2a01:4f8:0:e0c0::5443)  79.356 ms  79.293 ms  79.002 ms
17  mirrorlist06.hetzner.rpmfusion.net (2a01:4f8:c0c:bed0::1)  80.072 ms  80.010 ms  78.133 ms
comfy@fedora:~$ dnf repoinfo
Updating and loading repositories:
 Fedora 43 openh264 (From Cisco) - x86_64                             100% |   2.1 KiB/s |   5.8 KiB |  00m03s
 Fedora 43 - x86_64 - Updates                                         100% | 493.8 KiB/s |   6.7 MiB |  00m14s
 Fedora 43 - x86_64                                                   100% | 193.6 KiB/s |  35.4 MiB |  03m07s
Repositories loaded.
Repo ID              : fedora
Name                 : Fedora 43 - x86_64
Status               : enabled
Priority             : 99
Cost                 : 1000
Type                 : available
Metadata expire      : 604800 seconds (last: 2025-12-09 09:55:10)
Skip if unavailable  : false
Config file          : /etc/yum.repos.d/fedora.repo
URLs                 : 
  Base URL           : http://mirror.bahnhof.net/pub/fedora/linux/releases/43/Everything/x86_64/os/ (134 more)
  Metalink           : https://mirrors.fedoraproject.org/metalink?repo=fedora-43&arch=x86_64
OpenPGP              : 
  Keys               : file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-43-x86_64
  Verify repodata    : false
  Verify packages    : true
Repodata info        : 
  Available packages : 77664
  Total packages     : 77664
  Size               : 117.1 GiB
  Revision           : 1761190640
  Updated            : 2025-10-23 03:37:20

Repo ID              : fedora-cisco-openh264
Name                 : Fedora 43 openh264 (From Cisco) - x86_64
Status               : enabled
Priority             : 99
Cost                 : 1000
Type                 : available
Metadata expire      : 1209600 seconds (last: 2025-12-09 09:52:06)
Skip if unavailable  : true
Config file          : /etc/yum.repos.d/fedora-cisco-openh264.repo
URLs                 : 
  Base URL           : https://codecs.fedoraproject.org/openh264/43/x86_64/ (1 more)
  Metalink           : https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-43&arch=x86_64
OpenPGP              : 
  Keys               : file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-43-x86_64
  Verify repodata    : false
  Verify packages    : true
Repodata info        : 
  Available packages : 6
  Total packages     : 6
  Size               : 3.5 MiB
  Revision           : 1741171556
  Updated            : 2025-03-05 10:45:56

Repo ID              : updates
Name                 : Fedora 43 - x86_64 - Updates
Status               : enabled
Priority             : 99
Cost                 : 1000
Type                 : available
Metadata expire      : 21600 seconds (last: 2025-12-09 09:52:18)
Skip if unavailable  : false
Config file          : /etc/yum.repos.d/fedora-updates.repo
URLs                 : 
  Base URL           : http://mirror.yandex.ru/fedora/linux/updates/43/Everything/x86_64/ (20 more)
  Metalink           : https://mirrors.fedoraproject.org/metalink?repo=updates-released-f43&arch=x86_64
OpenPGP              : 
  Keys               : file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-43-x86_64
  Verify repodata    : false
  Verify packages    : true
Repodata info        : 
  Available packages : 12306
  Total packages     : 12306
  Size               : 39.4 GiB
  Revision           : 1765155533
  Updated            : 2025-12-08 01:34:29

Fedora 43 - x86_64 took pretty long at 3 minutes for just a 35 MiB file. Discover also takes ages to load a search and installing apps takes much longer. I hope this helps.

You’ve given a traceroute for mirrors.rpmfusion.org but you don’t use mirrors.rpmfusion.org.

traceroute to one of the servers, you’re actually using - look at the “Base URL” line in your dnf output above; pick one of those.

Here’s the traceroute for the base URLs

comfy@fedora:~$ traceroute mirror.bahnhof.net
traceroute to mirror.bahnhof.net (2001:9b0:fff5:c::2), 30 hops max, 80 byte packets
 1  fiberbox.home (2a01:9700:354b:700:1247:38ff:fedb:3970)  11.238 ms  11.165 ms  7.834 ms
 2  * * *
 3  2a00:18d8::1f1 (2a00:18d8::1f1)  19.090 ms  19.061 ms  19.032 ms
 4  * * *
 5  2a00:18d8::229 (2a00:18d8::229)  18.913 ms  18.886 ms  26.016 ms
 6  2a00:18d8::105 (2a00:18d8::105)  18.830 ms  4.828 ms  4.738 ms
 7  mno-b3-link.ip.twelve99.net (2001:2035:0:2a26::1)  181.412 ms  181.294 ms  181.250 ms
 8  ffm-bb1-v6.ip.twelve99.net (2001:2034:1:6b::1)  181.212 ms ffm-bb2-v6.ip.twelve99.net (2001:2034:1:6c::1)  181.180 ms  181.147 ms
 9  ffm-b11-link.ip.twelve99.net (2001:2035:0:2af6::1)  181.102 ms  176.430 ms  176.347 ms
10  bahnhof-ic-393193.ip.twelve99-cust.net (2001:2035:0:2af6::2)  176.168 ms  84.229 ms  84.134 ms
11  2001:9b0::220:60 (2001:9b0::220:60)  84.093 ms  84.054 ms  84.014 ms
12  mmo1-p1.se.as8473.net (2001:9b0::220:5)  91.881 ms * *
13  mmo2-p1.se.as8473.net (2001:9b0::220:6)  281.141 ms  281.089 ms  281.044 ms
14  * sto1-p1.se.as8473.net (2001:9b0::220:1)  280.830 ms  280.789 ms
15  * * *
16  * * *
17  2001:9b0:fff5:c::1 (2001:9b0:fff5:c::1)  214.178 ms  206.534 ms  97.632 ms
18  mirror.bahnhof.net (2001:9b0:fff5:c::2)  96.740 ms  95.515 ms  95.343 ms
comfy@fedora:~$ https://codecs.fedoraproject.org/openh264/43/x86_64/
bash: https://codecs.fedoraproject.org/openh264/43/x86_64/: No such file or directory
comfy@fedora:~$ traceroute codecs.fedoraproject.org
traceroute to codecs.fedoraproject.org (2001:4178:2:1269::fed2), 30 hops max, 80 byte packets
 1  fiberbox.home (2a01:9700:354b:700:1247:38ff:fedb:3970)  1.896 ms  3.052 ms  2.977 ms
 2  * * *
 3  2a00:18d8::1f1 (2a00:18d8::1f1)  20.614 ms  20.989 ms  20.932 ms
 4  * * *
 5  2a00:18d8::229 (2a00:18d8::229)  7.440 ms  7.391 ms  7.339 ms
 6  2a00:18d8::105 (2a00:18d8::105)  6.912 ms  3.630 ms  6.303 ms
 7  mno-b3-link.ip.twelve99.net (2001:2035:0:2a26::1)  57.906 ms  57.833 ms  57.810 ms
 8  ffm-bb2-v6.ip.twelve99.net (2001:2034:1:6c::1)  66.817 ms  66.771 ms  66.318 ms
 9  ffm-b11-link.ip.twelve99.net (2001:2035:0:1db2::1)  64.457 ms  65.589 ms  65.143 ms
10  ionos-ic-350360.ip.twelve99-cust.net (2001:2035:0:1db2::2)  65.695 ms  64.619 ms  64.475 ms
11  lo0-0.bb-a.wm.fra.de.net.ionos.com (2001:8d8::a8)  64.385 ms  67.464 ms  67.323 ms
12  lo-0-0.bb-a.ess.muc.de.net.ionos.com (2001:8d8::142)  74.586 ms  73.633 ms  72.770 ms
13  lo-0-0.rc-a.ess.muc.de.net.ionos.com (2001:8d8::118)  73.902 ms  73.385 ms  70.849 ms
14  2001:8d8:0:2::35f (2001:8d8:0:2::35f)  78.905 ms 2001:8d8:0:2::361 (2001:8d8:0:2::361)  78.538 ms 2001:8d8:0:2::35f (2001:8d8:0:2::35f)  79.137 ms
15  2001:4178:1::11a (2001:4178:1::11a)  86.860 ms  84.226 ms  90.127 ms
16  2001:4178:2:1269::fed2 (2001:4178:2:1269::fed2)  77.314 ms !X  76.191 ms !X  77.935 ms !X
comfy@fedora:~$ traceroute mirror.yandex.ru
traceroute to mirror.yandex.ru (2a02:6b8::183), 30 hops max, 80 byte packets
 1  fiberbox.home (2a01:9700:354b:700:1247:38ff:fedb:3970)  2.693 ms  2.576 ms  2.531 ms
 2  * * *
 3  2a00:18d8::1f1 (2a00:18d8::1f1)  6.882 ms  6.842 ms  6.966 ms
 4  * * *
 5  2a00:18d8::229 (2a00:18d8::229)  6.640 ms  6.764 ms  6.562 ms
 6  2a00:18d8::105 (2a00:18d8::105)  6.684 ms  5.609 ms  5.554 ms
 7  mno-b3-link.ip.twelve99.net (2001:2035:0:2a26::1)  56.351 ms  56.276 ms  56.377 ms
 8  ffm-bb2-v6.ip.twelve99.net (2001:2034:1:6c::1)  65.798 ms  66.514 ms ffm-bb1-v6.ip.twelve99.net (2001:2034:1:6b::1)  66.458 ms
 9  ffm-b16-v6.ip.twelve99.net (2001:2034:0:297::1)  66.426 ms  66.396 ms  66.044 ms
10  edgetechplusdoo-ic-389266.ip.twelve99-cust.net (2001:2035:0:1b44::2)  66.477 ms  76.064 ms  75.925 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
comfy@fedora:~$ traceroute mirrors.fedoraproject.org
traceroute to mirrors.fedoraproject.org (2605:bc80:3010:600:dead:beef:cafe:fed9), 30 hops max, 80 byte packets
 1  fiberbox.home (2a01:9700:354b:700:1247:38ff:fedb:3970)  3.428 ms  3.304 ms  3.248 ms
 2  * * *
 3  2a00:18d8::1f1 (2a00:18d8::1f1)  8.035 ms  7.983 ms  7.933 ms
 4  * * *
 5  * 2a00:18d8::229 (2a00:18d8::229)  7.558 ms  7.508 ms
 6  2a00:18d8::105 (2a00:18d8::105)  7.457 ms  5.294 ms  5.187 ms
 7  mno-b3-link.ip.twelve99.net (2001:2035:0:2a26::1)  84.286 ms  84.166 ms  84.125 ms
 8  prs-bb2-v6.ip.twelve99.net (2001:2034:1:c1::1)  84.087 ms  84.032 ms  83.988 ms
 9  ldn-bb2-v6.ip.twelve99.net (2001:2034:1:ca::1)  83.950 ms  78.778 ms  78.665 ms
10  ewr-bb2-v6.ip.twelve99.net (2001:2034:1:b8::1)  205.962 ms  205.891 ms *
11  chi-bb2-v6.ip.twelve99.net (2001:2034:1:c8::1)  205.818 ms  205.783 ms *
12  2001:2035:0:8a8::1 (2001:2035:0:8a8::1)  222.427 ms  219.285 ms  219.157 ms
13  lightspeed-ic-378661.ip.twelve99-cust.net (2001:2035:0:8a8::2)  220.866 ms den-bb2-v6.ip.twelve99.net (2001:2034:1:a6::1)  200.859 ms lightspeed-ic-378661.ip.twelve99-cust.net (2001:2035:0:8a8::2)  220.406 ms
14  2607:fa40:5::70 (2607:fa40:5::70)  216.967 ms  216.043 ms  216.873 ms
15  2607:fa40:5::71 (2607:fa40:5::71)  217.157 ms  214.887 ms  214.780 ms
16  * * *
17  corv-kerr-pe-01.net.linkoregon.org (2605:bc80:3010:700::1)  217.328 ms 2001:2035:0:8a8::1 (2001:2035:0:8a8::1)  238.240 ms corv-kerr-pe-01.net.linkoregon.org (2605:bc80:3010:700::1)  216.076 ms
18  proxy06.fedoraproject.org (2605:bc80:3010:600:dead:beef:cafe:fed9)  215.956 ms !X  215.911 ms !X  216.084 ms !X
comfy@fedora:~$

Looks like you’re getting routed to some relatively slow mirrors (can’t comment on the .ru server as it’s not returning ICMP packets anyway).

twelve99.net, whoever they are, aren’t stellar either so if you can’t avoid them, you’re stuck with routing through them.

You could try the following - it makes no difference on my machine, so I can’t vouch for efficacy.

edit /etc/dnf/dnf.conf and add these lines:

fastestmirror=True
max_parallel_downloads=10

Adjust the amount of parallel downloads to suit your config and kit.

Then run sudo dnf clean all && sudo dnf makecache --refresh

Any better?

Still pretty bad

If anyone wants to help, I’d really appreciate it.

your immediate solution is switching on a good paid vpn for update or program installations; however if you are ready to put some efforts, try this:

The traceroute data reveals the real problem: the connection is being routed through intermediate networks with high latency (170-280ms to reach European mirrors), and the mirror selection is suboptimal. The twelve99.net backbone adds substantial delays, and some mirrors (like Yandex) aren’t responding to ICMP packets at all.

Solution 1: Force a Specific Fast Mirror (Most Effective)

Manually select a faster mirror by editing the repository configuration files. First, check available mirrors at the Fedora Mirror Manager to find one geographically closer or with better routing.
(https://mirrormanager.fedoraproject.org/mirrors)​

Edit /etc/yum.repos.d/fedora.repo:

bash

sudo nano /etc/yum.repos.d/fedora.repo

Comment out the metalink line and uncomment the baseurl line, then replace it with a reliable mirror. For example, use a European mirror with good connectivity:

text

#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-43&arch=x86_64
baseurl=https://fedora.mirrorservice.org/fedora/linux/releases/43/Everything/x86_64/os/

Repeat this process for /etc/yum.repos.d/fedora-updates.repo and /etc/yum.repos.d/fedora-cisco-openh264.repo.
discussion.fedoraproject

After making changes, clean and refresh the cache:

bash

sudo dnf clean all && sudo dnf makecache --refresh

Solution 2: Use Metalink with Geographic Hints

If you prefer using the automatic mirror selection, specify the country or countries that should be prioritized in the metalink URL. Edit the repository files and modify the metalink line:

text

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-43&arch=x86_64&country=ae,sa,jo

Use two-letter ISO country codes (e.g., jo for Jordan, ae for UAE, sa for Saudi Arabia) to prioritize Middle Eastern mirrors if available.

Solution 3: Disable IPv6 (Potential Quick Fix)

The traceroutes show IPv6 routing being used. IPv6 connectivity from Jordan can have suboptimal routing through the twelve99.net backbone. Try disabling IPv6:

Temporarily test:

bash

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Then test download speeds. If improved, make it permanent by adding to /etc/sysctl.conf:

bash

sudo nano /etc/sysctl.conf

Add these lines:

text

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Save and reboot.

Solution 4: Optimize DNF Configuration

Add these settings to /etc/dnf/dnf.conf for additional improvements:

text

max_parallel_downloads=5
keepcache=True

Do not use fastestmirror=True — it only measures latency, not actual download speed, and has been shown to make performance worse in many cases.

Recommended Approach

Start with Solution 1 (forcing a specific mirror), as it directly addresses the suboptimal mirror selection shown in the diagnostics. The user should:

  1. Choose a mirror from the official list that appears geographically or network-wise closer
  2. Test direct download speeds from that mirror manually to verify it’s faster
  3. Hardcode it in the repository configuration

If the Fedora mirror manager doesn’t list any Middle Eastern mirrors in the metalink response, try mirrors from nearby regions (Turkey, Saudi Arabia, UAE) or use a well-connected European mirror as a fallback.

On Fedora 41 and above, dnf5 is automatically installed, and dnf is just an alias for dnf5.

1 Like

I suspect ipv6 can be the issue.

1 Like

FWIW I also had a slowness problem when I first installed fedora. Setting a timeout solved it for me. Here is what I added to my /etc/dnf/dnf.conf:

fastestmirror=True
max_parallel_downloads=8
timeout=5
minrate=512k

It means that 5 seconds under 512kbps makes it switch to another mirror.

3 Likes