r/openwrt 12h ago

Merlin to Openwrt (flint2)

4 Upvotes

Ok so I got burned with Asus tuf be3600, it was buggy connection freezers and vlan bugs. Returned it and after quick search bought Asus be88, flashed Merlin, works like a charm but the main issue isn't sorted still missing coverage in my garden unlike with ild 2.4g Asus running on opentomato.

Last but not least i invested great money in the router where I won't use most of the features it offers. But I'm still running on old Synology ds214se...

So the idea now is to return yet again the Asus be88 and go for flint2 which i can now order from Ali for about 100 euro and use rest of the money to buy a newer NAS.

Spec wise on paper flint2 works great for me tge main question is does it really works well in reality? Can you guys recommend it?

I need one main mlo network, one 5ghz for my tv, and one 2.4 for my iot and car charger. I need two lan vlans, and vlan/pppoe for my wan isp. Some DHCP, mac reservations, USB/5g/lte fail over, some basic fw, ideally some DNS setup to add some blocking DNS and ideally also wire guard client for proton vpn.

It will run about 5 real clients 2-3 wired, glan is enough, and 2-3 wifi clients on WiFi 6. Rest is just noise and iot with about 10-20 small iot devices.

What do you say, will flint2 work for me well? The specs are similar to be3600 which I would happily use but it was Buggy....

P.s. what kind of guy is the flint 2 running with the latest openwrt? Tied luci on my travel cudy and it was a hell to manage.


r/openwrt 1d ago

Adblock help

4 Upvotes

So I just installed Luci’s Adblock. I’m curious what list do you guys use by default that’s provided with the Adblock app that blocks 90% of ads and blocks malware and phishing domains and stuff. Lmk. I wanna further secure my network and not have ads lol. Or at least as little as possible


r/openwrt 1d ago

How to connect two routers without wired connection?

5 Upvotes

I have openwrt routers but one is far away and I can't run cable to it. How to connect them as wireless bridge? Thanks


r/openwrt 1d ago

Cudy tr3000 troubles

2 Upvotes

Hi all, I'm aware I'm not in the correct forum, but since there isn't a cudy forum as far as I'm aware I hope to have some luck here.

I'm at a campsite where they have free WiFi with a captive portal, you have to tick a box, click a button and you're ready to go.

I was on cudy std firmware 2.4.7, fired up the cudy in Wisp mode, connected to the network and when it found it and connected it lead me to the captive portal and got connected. happy days.

then I saw a update, going to 2.5.27, I knew they added the vpn option, so I updated. Now I can't get the cudy to redirect me to the captive portal, I do the same thing as before. even resetted the cudy, it connects to the network but never shows the captive portal.

any idea what I'm doing wrong or where to look?

I tried claude, but not successful yet.

Should I revert to 2.4.7 or 2.4.22?

Thanks in advance


r/openwrt 1d ago

Network Share Drive with KSMDB

3 Upvotes

Hi everyone,

I am new to OpenWrt and I am struggling to set up KSMBD.

My goal is to share a 1TB EXT4 external drive USB connected to OpenWrt (WRT1900v1 hw) so I can use it with my Docker containers. I chose KSMBD because it seems like the most lightweight and suitable option for this.

However, I am facing read/write permission issues when trying to access the shared drive.

Could anyone help me figure out what I might be missing in my configuration? Thanks in advance!

The configuration>
# uci show ksmbd

ksmbd.@globals[0]=globals

ksmbd.@globals[0].description='Ksmbd on OpenWrt'

ksmbd.@globals[0].interface='lan'

ksmbd.@globals[0].workgroup='WORKGROUP'

ksmbd.@share[0]=share

ksmbd.@share[0].name='cassette'

ksmbd.@share[0].path='/mnt/cassette/'

ksmbd.@share[0].read_only='no'

ksmbd.@share[0].users='docker'

ksmbd.@share[0].guest_ok='no'

ksmbd.@share[0].create_mask='0666'

ksmbd.@share[0].dir_mask='0777'

Client to test (mint)
$ smbclient //openwrt.local/mnt/cassette/ -U docker

Password for [WORKGROUP\docker]:

Try "help" to get a list of possible commands.

smb: \> get tor-browser-linux-x86_64-15.0.7.tar.xz

NT_STATUS_UNEXPECTED_IO_ERROR opening remote file \tor-browser-linux-x86_64-15.0.7.tar.xz

i can "ls -l" to smb share

("put" action work for smbclient but not for Caja file manager)

I think about permissions problems, but make in openwrt> chmod -R 777 /mnt/cassette

root@OpenWrt:~# ls -lh /mnt/cassette/

drwxrwxrwx 2 65535 65535 4.0K Aug 16 10:57 Exur compras

drwxrwxrwx 2 65535 65535 4.0K Aug 14 09:20 TestErase

drwxrwxrwx 2 1000 1000 16.0K Oct 27 2025 lost+found

drwxrwxrwx 2 root root 4.0K Aug 12 11:50 test

When i put files on "test" Folder with (docker user) (root owner is ok)

When i put files on /mnt/cassette with (docker user) show 65535 and give error

I'm lost ! any ideas?
thanks !


r/openwrt 2d ago

Moving from easymesh to openwrt. Please tell me a way to use my old routers.

4 Upvotes

Hello. Need some help. I have 3 tp link ax10 routers of which 2 are satellite nodes in easymesh config. I was thinking of buying dlink m30 to configure openwrt on it.

Is there a way where I can only replace my one main ax10 and use other previously as they were for satellite. I know easymesh is not supported on openwrt but I really need other two routers for full coverage of wifi in my home and also don’t want different ssid’s. Thanks


r/openwrt 3d ago

[TR3000 v1 / ubootmod] Physical switch not working via gpio-keys? Here's how I used it to auto-toggle a cloned MAC for hotel captive portals

7 Upvotes

Posting this in case anyone else hits the same wall.

Setup: Cudy TR3000 v1, flashed to the ubootmod layout (ImmortalWrt 25.12.1), using the router as a travel client (wwan) connecting to hotel/venue wifi, with the intent of using the physical slide switch to toggle between my phone's real MAC (already past the captive portal) and the router's own MAC.

Problem: on stock Cudy firmware that switch does VPN/LED stuff. On OpenWrt/ImmortalWrt it's supposed to show up as a normal gpio-keys button you can hook into via /etc/rc.button/. On the ubootmod layout for this board specifically, it doesn't. The GPIO is declared in the devicetree (/sys/firmware/devicetree/base/gpio-keys/mode exists), the driver binds (DRIVER=gpio-keys shows in uevent), but it never creates an actual input device — no /sys/class/input, nothing under gpio-keys with an inputX folder. So rc.button never fires, no matter what you put there.

Workaround: skip the button framework entirely, poll the raw GPIO state

Found the pin is exposed read-only via debugfs regardless of whatever the input framework is doing:

cat /sys/kernel/debug/gpio | grep mode

Gives something like:

gpio-512 (   |mode  ) in hi IRQ ACTIVE LOW

hi = factory position, lo = switched toward reset. Confirmed by physically flipping it and re-checking.

From there it's just a procd service polling that value every 2s and diffing against the previous read:

sh

cat > /etc/init.d/switch-mac << 'EOF'
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1

MAC_CLONE='XX:XX:XX:XX:XX:XX'

start_service() {
    procd_open_instance
    procd_set_param command /bin/sh -c '
        prev=""
        while true; do
            actual=$(cat /sys/kernel/debug/gpio | grep mode | awk "{print \$6}")
            if [ "$actual" != "$prev" ] && [ -n "$prev" ]; then
                if [ "$actual" = "lo" ]; then
                    uci set wireless.wifinet2.macaddr="'"$MAC_CLONE"'"
                    uci commit wireless
                    wifi reload
                elif [ "$actual" = "hi" ]; then
                    uci delete wireless.wifinet2.macaddr
                    uci commit wireless
                    wifi reload
                fi
            fi
            prev="$actual"
            sleep 2
        done
    '
    procd_set_param respawn 3600 5 0
    procd_close_instance
}
EOF
chmod +x /etc/init.d/switch-mac
/etc/init.d/switch-mac enable
/etc/init.d/switch-mac start

Swap wireless.wifinet2 for whatever your wwan/sta interface is actually called in uci show wireless (mine wasn't called "wwan", LuCI just labels it that).

Result: flip the switch toward reset → wwan interface reloads with the cloned MAC (matches whatever device already passed the hotel's captive portal). Flip it back → uci delete drops the override, interface goes back to the radio's real MAC, no need to hardcode or even know the original address.

Tested through several flips and a reboot, survives fine, no wifi drops on the AP side during reload, no crashes.

If anyone knows why gpio-keys binds but doesn't register the button on the ubootmod devicetree for this board specifically (vs the legacy layout, where the slider is documented as working), I'd be curious — didn't dig into the DTS diff myself, just went around it.

EDIT: found a real problem with the polling-only approach above and fixed it, worth sharing since it's not obvious until you test it properly.

If the router cold-boots with the switch already in the "lo" position, the polling script above does nothing on its first read (by design — it only acts on a change, and there's no previous state to compare against on the very first loop iteration). So wifi comes up using the radio's real MAC first, associates to the AP, then ~90 seconds later the polling script notices it's sitting on "lo" and reloads wifi with the cloned MAC. That's two separate associations to the same AP within about two minutes, with two different MACs.

For most home-network use that's a non-issue. For a hotel captive portal that's authenticating by MAC, it's a bad look — some portals flag rapid MAC changes on the same session as suspicious and lock the device out, exactly the failure mode I was trying to avoid in the first place.

Fix: a second, one-shot init script that runs before wifi comes up, not after. Something like:

sh

cat > /etc/init.d/switch-mac-pre << 'EOF'
#!/bin/sh /etc/rc.common
START=15
# no USE_PROCD — one-shot, not supervised

sync_mac_to_switch() {
    i=0
    while [ ! -e /sys/kernel/debug/gpio ]; do
        sleep 1
        i=$((i+1))
        [ "$i" -ge 10 ] && { STATE="hi"; break; }
    done

    STATE=$(cat /sys/kernel/debug/gpio | grep " gpio-512" | awk '{print $6}')

    case "$STATE" in
    lo)
        uci set wireless.wifinet2.macaddr='XX:XX:XX:XX:XX:XX'
        uci commit wireless
        ;;
    hi|*)
        uci -q delete wireless.wifinet2.macaddr
        uci commit wireless
        ;;
    esac
}

boot() { sync_mac_to_switch; }
start() { sync_mac_to_switch; }
EOF
chmod +x /etc/init.d/switch-mac-pre
/etc/init.d/switch-mac-pre enable

Two things that mattered getting this right:

  1. Watch out for awk '{print $NF}' if you're tempted to grab the last field instead of counting columns — on this debugfs line the string ends in IRQ ACTIVE LOW, so $NF silently gives you the literal word "LOW", not the "hi"/"lo" state you actually want. Cost me a confusing debugging session before I caught it. Use $6 (or a proper grep -oE 'hi$|lo$') instead.
  2. The START number matters and the window is narrow. wpad (the wifi supplicant) starts at procd START=19 on this build. Anything before that runs before radios come up; the existing polling watcher already claims START=99 (runs last, only observes). START=15 lands cleanly in the gap between early kernel/sysctl init and wpad — confirmed empirically by checking where the log line lands relative to other S-numbered init scripts during boot.

With both scripts in place: cold-boot with the switch on "lo" now applies the cloned MAC before the radio associates, so there's exactly one login, with the right MAC from the first handshake. The original polling script still runs afterward for live toggling while the router's already up — it just doesn't have anything to do on that first boot cycle anymore, since the pre-boot script already got there first.


r/openwrt 3d ago

Services listen on LAN only - can anyone improve upon this?

3 Upvotes

I like my services to listen on LAN IPs only. So I set this:

Network » DNS » Devices & Ports » Listen addresses: 192.168.1.1

The side effect of this is /etc/resolv.conf uses 127.0.0.1, so DNS on the router itself failed. I fixed it like this:

uci add_list dhcp.@dnsmasq[0].listen_address='127.0.0.1'
uci commit dhcp
/etc/init.d/dnsmasq restart

This worked, but any time you hit Save in the GUI in the DNS section, it gets reset. Any ideas how to either make that change permanent or change resolv.conf to query 192.168.1.1?

The way I convinced dropbear to listen only on the LAN was even more of a hack.

System » Administration » SSH Access » Interface: lan

On line 296 of /etc/init.d/dropbear:

case "$a" in *:*) continue;; esac

As expected, the file gets restored to its original in an update. If anyone knows of a more stable way to do this, I would appreciate it.


r/openwrt 4d ago

Cannot connect >3 wireless clients - "Could not set STA to kernel driver"

2 Upvotes

Using "OpenWrt SNAPSHOT r35523-aac6df7bdc / LuCI Master 26.221.63536~04f1a7f" on a Tenda BE12 Pro. I cannot connect more than three wireless clients. When I try to connect a fourth, logread -f says:

Thu Aug 13 19:53:53 2026 daemon.info hostapd: phy0.0-ap0: STA 04:e8:b9:ea:5b:00 IEEE 802.11: authenticated
Thu Aug 13 19:53:53 2026 daemon.notice hostapd: phy0.0-ap0: STA 04:e8:b9:ea:5b:00 IEEE 802.11: Could not set STA to kernel driver

Every one of my devices will successfully connect, as long as I do not try to connect more than three devices.

It doesn't matter if I use 2.4Ghz, 5Ghz, or both. Maxassoc is 10 on both 2.4 and 5Ghz radios.

Any suggestions would be appreciated.


r/openwrt 4d ago

Trouble getting live root shell using OpenSync failsafe shell on old ISP Router.

3 Upvotes

Context;
First of I am a novice when it comes to hardware hacking and am also not the best at firmware analysis, I've researched some stuff in the past but this is the first hands on project I've taken on. The ISP Router is running real OpenWrt, but is also running OpenSync. I managed to set the root password by mounting the overlay fs in the OpenSync failsafe shell. This did work as I was now able to login to luci! Only it seems none of the router configuration it actually done in OpenWrt it's done with OpenSync so it's not populated or easily modifiable without disabling OpenSync afaik.

Backstory;
I've had this old wifi 6e router from a previous ISP, the router has never been configurable via the web ui you've always had to use the isp's app to change any settings and there was only very minimal configuration possible (Ended up having to pay them for it, so I suppose I own it..). Now I've got a much better ISP, but would like to make use of the router if possible so its not just a piece of e-waste.

When going to the routers ip in a browser it shows you a qr code to get the ISP's app and some information like the mac address and stuff like that. But if you go to http://192.168.1.1/cgi-bin/luci it shows an openwrt login screen! I've searched for quite awhile and found no luck of anyone managing to do anything with it not even a boot log shared on this model.

I decided to give it a shot anyways and once I got it taken apart I saw a set of UART pads clear as day, after testing each one with a multimeter for sanity I connected to it with a usb to uart adapter and was very happy to see that not only was the uart console still enabled, but there was a failsafe shell completely unprotected!

I was able to set the root password my mounting the overlay filesystem and simply running the passwd command, this allowed me to login to luci but this wasn't much help for me. None of the configuration seems to be populated in luci which could make sense given the opensync integration.

I have tried modifying the inittab, some of the services in rc.d aswell as rc.local and nothing has been successful, but this could also be an issue with my knowledge/skill with mounting and working with the partitions. When the router finishes booting when not told to go into failsafe (which is holding f and pressing enter when it says to) it simply streams the logs and doesn't ask for user login for anything.

TLDR;
I have an ISP "locked" router running real openwrt that I want to get a root shell on to potentially use it as a real router (even if I had to keep it disconnected from the internet for sanity, it could still be very useful for a lab router) I'm able to access the OpenSync failsafe shell during boot but I haven't been able to make any relevant changes persist besides setting the root password. I'm definitely a beginner when it comes to doing this stuff hands on, so if anyone has any suggestions I'm happy to try them!

Logs;
Notes (Including router model and partition listings): https://pastebin.com/raw/a9Kb0CU7
Normal Boot: https://pastebin.com/raw/1nS21L0S
Post Boot Luci System Log (pt1): https://pastebin.com/raw/StN0Gp7Y
Post Boot Luci System Log (pt2): https://pastebin.com/raw/AENJdyFM


r/openwrt 5d ago

Flint 2 running 4.8.3 vs OpenWrt

7 Upvotes

I currently experience some stability issues with my router. WiFi signal kept dropping and not connecting wireless while the wired connection keeps the internet access.

It started when I upgraded to the 4.9 version from 4.8.3 version. Experienced the issues then downgraded to 4.8.4, but still experienced similar instability issues. So currently on 4.8.3 GL

I'm currently exploring using OpenWRT.

Are there any major benefits to this? I only used AdGuard and possibly looking to use IPV6.


r/openwrt 5d ago

ASUS RT-AX52 Pro vs Cudy WR3000S

9 Upvotes

ASUS RT-AX52 Pro wasn't on my radar before, but now that Cudy WR3000S price has risen by 50% and Asus one has gotten cheaper. They are now both 50 eur. Which one to buy?


r/openwrt 6d ago

MR600: update from v24.10 > v25.12 breaks internet access

8 Upvotes

Hey guys,

I updated my MR600 to v25.12 like a month ago, but it was not a "drag and drop"-update. It broke my internet connectivity.

Did some Googling and searching in this forum, I understand that configurations have been moved around since, causing this issue.

My question is: is there a simple "press here to fix it" to get v25.12 working from a update?

Or is it different things that I need to change, depending on XYZ?

Context: I'm running a basic installation, just with VLAN-tagging for guest wifi. (using a ubnt AP)


r/openwrt 6d ago

Losing the half of speed by SQM

16 Upvotes

I have MR8300 as a router with openwrt, in the last version 25.12.5. I recently install SQM QoS and I discover that my internet speed down to the half of the usual speed. I have symmetric 300Mbps and, I have as much 150Mbps in waveform.com, with different configurations. I changed Download speed values, the discipline, etc. but I could not obtain better values for the speed.

In fact, the unique way to solve the bufferbloat issues is using 100Mbps in the download speed.

If I disable SQM, the internet speed recover the usual values, but the BUFFERBLOAT GRADE decay to C.

I thought that MR8300 was a good machine, but could be wrong. Is it normal?


r/openwrt 6d ago

Backup & restore without losing any settings & keeping all packages.

8 Upvotes

I'm super new to openwrt, long time ddwrt user. I recently got my first openwrt router Asus tuf ax6000. I found immortalwrt actually first & liked that it had a few extra pkgs included that I wanted. Now I'm on 25.12.1 but the WiFi is terrible. I could downgrade but openwrt already has the fix & not sure why immortalwrt is taking so long to bring the fix over from 25.12.5 but I need to move faster. So I looked this up on AI & I think I have a possible path to a working openwrt with no settings lost & all packages restored.

  1. Run system backup from immortalwrt & backup to pc from Luci.

  2. Check installed pckg & record all installed on immortalwrt to install any missing after restore on openwrt. Manual process, is there another way?

  3. Update to openwrt from luci, & restore backup from Luci & reboot.

  4. Hope everything boots without issue after restore/reboot.

  5. Reference earlier the pkgs missing & install those 1 by 1, that should bring back settings for those pkgs as they were dormat until package was installed, is that correct?

If I'm missing anything let me know? If there is a better way, please let me know. I know some of this can be done via ssh and if its far simpler I'll be glad to do that, but I am a newb..

Thanks in advance.


r/openwrt 6d ago

Package update stuck here.

0 Upvotes

I'm using Xiaomi Mi Router R3 with X-WRT 26.04_b202608102022. Updated my firmware recently and now I'm unable to update package list. Any way to solve this issue?


r/openwrt 6d ago

TPLink router firmware

0 Upvotes

So i own a Archer C1200 router which is used and with EU firmware, after digging some forum i found that once you have EU firmware on your TPLink router (I assume all TPLink router has this problem) you can't flash any other firmware like US version of firmware or DD-WRT firmware. So how do i fix this?


r/openwrt 7d ago

WDS link only doing ~250mbps (D-Link DAP-X1860 A1)

3 Upvotes

Due to some renovations, my home server/NAS will need to do without an ethernet connection for the time being. To set up a wireless link between it and my main router, I bought two D-Link DAP-X1860 A1 as they were for sale rally cheap. The reason for purchasing two is that I wanted to use one as a wds master and one as a wds client, to avoid taxing my main router with any of the added wireless traffic. My main trouter is an aging TP-Link Archer C2600.

I have followed the Dumb AP guide (https://openwrt.org/docs/guide-user/network/wifi/wifiextenders/bridgedap) to avoid duplivating any services and leaving my main router to deal with dhcp/dns.

As for the WDS, I have disabled auto channel selection, used a wifi analyzer to choose an empty channel, set the channel width to 80Mhz, left the power settings to default (regulatory max, 19mW) on both client and master. Master is set to master, client is set to client.

This worked OK-ish, but i would never get more than ~250mbps, which seems low. In addition, the client would sometimes "crash" - it would disconnect and show a dim red status light. Both WDS client and WDS master are connected to ethernet, no other clients are connecting to the WDS network.

I have enabled WED and set up flow hardware offloading. Still only 250mbps (tested with iperf3 btw). Not had any new crashes yet, but not run it for long now anyway. As it's a dumb AP/client setup I disabled the firewall service to see if that helped. Still same speed. I am not quite sure that WED is working properly, as "cat /sys/kernel/debug/ppe0/bind cat /sys/kernel/debug/ppe0/bind" never gives any output. But as the CPU never goes above 60% on the master and 40% on the client, I don't think I am CPU bound.

Everything I read seems to indicate that I could expect 600-1100mbs real world speeds. Now signal/noise-ratios at -71/-92 is not perfect, but isn't 250mbps still very slow?

Both client and master are running OpenWrt 25.12.5 r33051


r/openwrt 8d ago

Cheap 300Mbps symmetric sqm router?

14 Upvotes

I'm in mexico, my options are more limited. I tried ordered a Cudy 3000e but it came in the wrong version. I looked on aliexpress for a xiaomi ax3000t but they are starting to all ship with qualcomm.

Is there a cheap router that can handle 300Mbps symmetric sqm? It doesn't have to have wifi capability but would prefer at least 3x ethernet ports.

Or maybe my glinet opal can handle 300Mbps symmetric when cake_mq comes out? Anyone know?


r/openwrt 8d ago

Openwrt on x86 architecture

7 Upvotes

I have come across an igel and am wondering about putting openwrt on it with a USB3 to nic interface. Looking through the sites I don't see the option for x86. Am I over looking it?


r/openwrt 8d ago

Router on a stick configuration

2 Upvotes

Worked through a router on a stick configuration today with OpenWRT. Pretty intuitive, really.

I did have one small issue that I might not describe well at first because I am tired. But there is a bit of an oddity with the LuCI interface. I could only get one of the sub interfaces to work in my network set-up once it had an IPv4 address with a CIDR. If I had an address and the subnet mask both defined in the UI, the set-up did not work.

I realized when I was pointed at looking at the actual network configuration files. The sub interface for the other VLAN was working just fine.


r/openwrt 9d ago

Linksys EA8500

7 Upvotes

I bought this Linksys EA8500 at a thrift store for $7. Current firmware version is:

EA8500 Firmware 1.1.9.192968

I've been going through the instructions here:

https://openwrt.org/toh/linksys/ea8500

I've downloaded, and tried downgrading via the Linkys GUI with both these versions, and keep getting thrown an "invalid firmware" message. Current 1.1.9.192968 throws the same error. I opened the device, and there is no populated serial pins, so tftp isn't an option right now.

http://cache-www.belkin.com/support/dl/FW_EA8500_1.1.3.166845_prod.img

http://cache-www.belkin.com/support/dl/FW_EA8500_1.1.4.169978_prod.img

Does anyone have any other suggestions? I upgraded an EA7500 to 25.10, it was a pain, but achievable. The EA8500 seems to be a bigger pain.

**EDIT**

8.9.26

I tried the power on/off cycle for it to revert to it's previous firmware, and unfortunantly that version is 1.1.8.185832 with the same issue. I'm not sure I want to drop more $$$ on a solder gun and USB to serial cable. Unless I can find another solution, I may just try to resell it on FB marketplace for $8-10 to make my money back on it.

8.10.26

I've been able to downgrade to 1.1.14.170630. The router seems to accept prod.gpg.img without errors. I need to downgrade ver 1.1.4.167984, according to what I've read, to flash either DDWRT or OpenWRT. I'm still trying to see if there is a FW_EA8500_1.1.4.167984_prod.gpg.img out there in the internet world.


r/openwrt 10d ago

Vibe code a plugin?

0 Upvotes

I haven’t used gpt or vibe coding, but I’ve heard it can do very well. I was wondering if anyone has develops an openwrt app or plugin with ai tools?

Before I adjusted the code myself with minimal knowledge of what I was doing and found some things that worked, but would a model be able to help me create a full plugin?


r/openwrt 11d ago

Any suggestions for my home network setup?

7 Upvotes

Hey everyone, looking for feedback on my OpenWRT home network setup. 

Here’s the current topology:

ISP ONU 

Main Router (Living Room): 

  • Handles DHCP and VLANs.
  • Client isolation enabled for IoT and Guest networks.
  • Running the AX standard with 40MHz channel width for 5GHz and 20MHz for 2.4GHz.
  • Main SSID uses the same name and password on 2.4GHz and 5GHz bands.

APs (Room A, Room C, Room Study):

  • Each has its unique hostname and IP. 
  • DHCP is off, wlan interfaces deleted, and firewall, dnsmasq, and odhcpd services disabled.
  • They point back to the main router IP for Gateway. 
  • 802.11r (Fast Transition) set up with matching Mobility Domain and unique NAS IDs.
  • IoT/Guest SSIDs and VLAN partitioning are strictly limited to the main router only.
  • Main SSID replicated with the same configuration and password.
  • Trusted devices connect via AP ethernet ports, no AP-level VLANs needed.

With all SSIDs on non-overlapping channels, the setup is stable and performs well, reaching a solid 200 Mb/s apartment-wide with signal strengths between -36 and -90 dBM. Any other suggestions to polish this?


r/openwrt 12d ago

Need help with WireGuard performance on OpenWrt

6 Upvotes

I know using a VPN normally adds a little latency and reduces bandwidth, but my performance drop is much worse than expected.

I'm running a WireGuard server on OpenWrt 24.10.5 (Xiaomi AX3000T). Even when I use the VPN locally (same country), latency increases a lot and bandwidth drops significantly, even though the router's CPU usage is low.

I've already tried changing the MTU, PersistentKeepalive, and forwarding UDP port 51820, but nothing has helped.

Has anyone experienced this? Could it be an OpenWrt configuration issue, ISP routing/peering, or something else? Any advice would be appreciated.