Mirrors
The contents of the download server are available on several mirrors as well. Please refer to the list below for alternative locations.
2026-01-09: Due to the high number of mirrors, we had to limit our public rsync service. We plan to offer rsync service to only a few “tier-1” mirrors from now on. All other mirrors cannot sync directly from the main server and will need to sync from an existing tier-1 mirror. See https://lists.openwrt.org/pipermail/openwrt-announce/2026-January/000075.html
Tier-2 mirrors
Tier-2 mirrors are general-purpose. They are managed by third-parties and are not controlled by the OpenWrt project. Each mirror operator may have its own usage policy, please refer to it before using a mirror.
Tier-2 mirrors synchronize from a tier-1 mirror.
| Country | HTTP | HTTPS | RSYNC | Upstream | Sponsor | Notes | |
| Austria | HTTP | HTTPS | rsync://mirror.kumi.systems/openwrt/ | ? | Kumi Systems e.U. | Out-of-date | |
| China | HTTP | HTTPS | - | ? | Shanghai Jiao Tong University Linux User Group | Temporarily allowed on origin rsync server. | |
| China | HTTP | HTTPS | rsync://mirrors.tuna.tsinghua.edu.cn/openwrt/ | ? | Tsinghua University TUNA Association | Temporarily allowed on origin rsync server. | |
| China | HTTP | HTTPS | - | ? | Alibaba Cloud Computing (Beijing) Co., Ltd. | Only releases | |
| China | HTTP | HTTPS | - | ? | Tencent | ||
| China | HTTP | HTTPS | - | ? | MirrorZ | 10+ mirrors | |
| Germany | HTTP | HTTPS | rsync://mirror.berlin.freifunk.net/openwrt rsync://mirror.berlin.freifunk.net/openwrt-snapshots | RWTH | Freifunk Berlin | All Flash & 10GBit Complete + Snapshots Synced Daily | |
| India/Guwahati | HTTP | HTTPS | ? | NKN | Only partial releases | ||
| Japan | HTTP | HTTPS | rsync://repo.jing.rocks/openwrt/ | ? | Jing Luo | Synced every 23 hours (broken as of 2026-01) | |
| Japan | HTTP | HTTPS | rsync://mirror.hashy0917.net/openwrt/ | openwrt.pixeldeck.net | hashy0917 | Synced every 12 hours,All-Flash storage,40GBps Network | |
| Kazakhstan/Almaty | HTTP | HTTPS | - | ? | PS Internet Company | Temporarily allowed on origin rsync server. | |
| Kazakhstan | HTTP | HTTPS | rsync://mirror.hoster.kz/openwrt/ | ? | hoster.kz | Out of date | |
| Netherlands | HTTP | HTTPS | rsync://ftp.nluug.nl/openwrt/ | snt.utwente.nl | NLUUG | 40 gbit, synced every 12 hours | |
| CDN (Cloudflare) | HTTP | HTTPS | - | ? | cicku.me | ||
| UK | HTTP | HTTPS | rsync://mirror.autkin.net/openwrt/ | ? | Andriy Utkin | Temporarily allowed on origin rsync server. Only latest minor.major.micro release |
Tier-1 mirrors
Tier-1 mirrors are mainly aimed at providing data for tier-2 mirrors, but they can also be used directly. They are not managed directly by the OpenWrt project.
Default mirror set
| Country | HTTP | HTTPS | RSYNC | Status | Sponsor | Notes |
| Brazil | HTTP | HTTPS | rsync://openwrt.c3sl.ufpr.br/openwrt/ | Universidade Federal do Paraná | Setup 2026-02-08 | |
| China | HTTP | HTTPS | rsync://rsync.mirrors.ustc.edu.cn/openwrt/ | University of Science and Technology of China | Setup 2026-02-09 | |
| France | HTTP | HTTPS | rsync://openwrt.tetaneutral.net/openwrt/ | lastupdate, upstream-mirror, tier1-mirror-name | tetaneutral.net | Setup 2026-01-27 |
| Italy | HTTP | HTTPS | rsync://openwrt.mirror.garr.it/openwrt | lastupdate, upstream-mirror, tier1-mirror-name | GARR Mirror | Setup 2026-02-04 |
| Morocco | HTTP | HTTPS | rsync://mirror.marwan.ma/openwrt | lastupdate, upstream-mirror, tier1-mirror-name | Moroccan National Research and Education Network | Setup 2026-01-30 |
| Netherlands | HTTP | HTTPS | rsync://ftp.snt.utwente.nl/openwrt | SNT, University of Twente | Setup 2026-02-25 | |
| USA | HTTP | HTTPS | rsync://openwrt.pixeldeck.net/openwrt | PixelDeck | Setup 2026-03-12 |
Extended mirror set
| Country | HTTP | HTTPS | RSYNC | Status | Sponsor | Notes |
| Germany | HTTP | HTTPS | rsync://ftp.halifax.rwth-aachen.de/openwrt-default/, rsync://ftp.halifax.rwth-aachen.de/openwrt-extended/ | lastupdate, upstream-mirror, tier1-mirror-name | RWTH Aachen University | Setup 2026-01-28. 20 Gbit/s connectivity. Stats day, week |
| Sweden | HTTP | HTTPS | rsync://mirror.accum.se/mirror/openwrt.org/ | lastupdate, tier1-mirror-name | Academic Computer Club in Umeå | Setup 2026-01-31. 200 Gbit/s connectivity. Stats. |
Archive server
Old releases are stored on a separate server. This service is provided on a best-effort basis.
You can access it here: https://archive.openwrt.org
How to mirror
Please only setup a mirror if really needed: e.g. if you don't have good connectivity to existing mirrors, or if you have many downstream users. In all cases, the official OpenWrt download service won't automatically use your mirror.
Space requirements
As of January 2026, the amount of data for active releases (default mirror set) is around 1.5 TiB (1.6 TB). A full extended mirror takes 3.9 TiB (4.3 TB), counting all releases starting from 17.01. The space needed per release is shown below.
Current major releases (includes all minor releases except -rcX):
| Release | 25.12 | 24.10 | 23.05 |
| Size | 400 GiB | 584 GiB | 525 GiB |
Archived major releases:
| Release | 22.03 | 21.02 | 19.07 | 18.06 | 17.01 |
| Size | 656 GiB | 438 GiB | 247 GiB | 178 GiB | 88 GiB |
Files offered for mirroring
We currently offer two mirror sets:
- default mirror set recommended for tier-1 mirrors:
rsync.openwrt.org::releases-mirror-default. Contains actively supported releases only. It excludes -rc minor releases (except if they are the most recent ones) as well as XX.YY-SNAPSHOT. Mirrors must not filter any content. Password-protected. - extended mirror set:
rsync.openwrt.org::releases-mirror-extended. Contains all releases, including old major releases, -rc minor releases, and XX.YY-SNAPSHOT. This is for mirrors that don't mind carrying a lot of data. Password-protected.
We might offer an archive-only variant in the future (to complement the default mirror set).
Mirroring with rsync
Use the following rsync script to mirror:
LOCKFILE="/var/lock/openwrt-rsync.lock" OPENWRT_LOCAL_PATH="/path/to/openwrt/" OPENWRT_RSYNC_URL="rsync.openwrt.org::releases-mirror-default/" RSYNC_USER="CHANGEME" export RSYNC_PASSWORD="CHANGEME" echo "$OPENWRT_RSYNC_URL" > "$OPENWRT_LOCAL_PATH"/upstream-mirror [ -n "$RSYNC_USER" ] && hostname -f > "$OPENWRT_LOCAL_PATH"/tier1-mirror-name USER="$RSYNC_USER" flock -n "$LOCKFILE" rsync -rltpHS --no-motd --delay-updates --delete-delay \ --exclude='/lastsync' --exclude='/upstream-mirror' -f'P /tier1-mirror-name' "$OPENWRT_RSYNC_URL" "$OPENWRT_LOCAL_PATH" \ && date +%s > "$OPENWRT_LOCAL_PATH"/lastsync
These exact rsync options are important (e.g. to handle hardlinks), please get in touch if you would like to use different options.
This script is suitable for cron use: it only produces output if something goes wrong, which causes cron to send an email.
For the initial sync, use something like rsync --bwlimit=8000 to avoid overloading your source.
You must choose a random minute and starting hour, and then sync every 4 hours. Run the bash code below to print a suitable cron-like specification:
minute=$((SRANDOM%60)); hour=$((SRANDOM%4)); echo "${minute} ${hour},$((hour+4)),$((hour+8))$((hour+12)),$((hour+16)),$((hour+20)) * * * /path/to/your/mirror/script.sh"
For tier-1 mirrors, send an email to https://lists.openwrt.org/pipermail/openwrt-adm/ to obtain a rsync username and password.
For tier-2 mirrors, select the tier-1 mirror that is closest to you and update OPENWRT_RSYNC_URL accordingly. You don't need RSYNC_USER and RSYNC_PASSWORD.
Never ever try to mirror using HTTP (e.g. with lftp), it will get you banned permanently.
Announcing your mirror
Once a mirror has been set up, feel free to announce it at openwrt-adm@lists.openwrt.org, with details about which part of the repository you sync. It will be published on this page, but this is only a convenience so that users can be made aware of available mirrors: there is no automatic load-balancing system that exploits mirrors. Users can choose to manually use a mirror if they find they have a better connectivity to it.
Becoming a tier-1 mirror
For now, tier-1 mirrors are primarily used to distribute OpenWrt files to a diverse network of tier-2 mirrors using rsync. In the future, some user traffic might be served from tier-1 mirrors.
In effect, OpenWrt delegates parts of its distribution infrastructure to tier-1 mirrors. As a result, several quality criterias are expected to be met:
- good uptime track record
- good network connectivity (ideally 1 Gbit/s of dedicated capacity)
- IPv6 connectivity
- unlimited outgoing traffic volume
- managed by a stable institution (e.g. university, company, non-profit...)
- commitment to host OpenWrt data for at least several years
- carry all releases of the default mirror set (see space_requirements)
- serve OpenWrt content over HTTP and HTTPS
- serve OpenWrt content over a publicly-accessible rsync service
- have some monitoring to detect failed rsync runs or expired HTTPS certificate
- have a responsive contact email
If you are missing just 1 or 2 criterias, inclusion can still be discussed.
Note that acceptance is never guaranteed in any case (e.g. if there are already tier-1 mirrors in your geographical region).
Proposals can be sent to openwrt-adm@lists.openwrt.org.
Mirroring snapshots
Mirroring snapshots is highly discouraged, because it generates a lot of traffic.
If you really have a good use-case for mirroring snapshot builds, you can find them under a separate rsync module: rsync://rsync.openwrt.org/downloads-snapshots.
Please pull every 24 hours at most, or even only once a week if it fits your use-case. You can also selectively mirror only the targets you need.
If we notice too much traffic, we might close this best-effort service.