Flint 3 - need to exclude server from VPN client to make Docker services externally accessible

Hi all!

I recently switched from the Flint 2 to the Flint 3. Before making the change, I cross-checked every setting side by side to ensure consistency.
The VPN client is connected to Mullvad and active. I've excluded some devices from the VPN, such as my Chromecast.

On my server, I have Immich, Seafile, and Kasm Workspaces set up to be accessible from outside. However, I noticed that as soon as the VPN client is active, these services become unreachable from outside.

The Flint 3 is currently running firmware version 4.7.13. IP masquerading is enabled for the VPN client, while the other VPN client options are disabled.

Global options are set as follows:

I've spent a lot of time comparing the configurations between the Flint 2 and Flint 3, including settings in LuCI, but couldn’t find any relevant differences.

So I put the Flint 2 back in place, and the services hosted on my server (running via Docker) became reachable from outside again. The server traffic was correctly routed through the Mullvad IP with Flint 2.

At this point, I’m out of ideas. I didn’t make any manual changes via shell or LuCI on Flint 2 either.
I could exclude the server from the VPN as a workaround, but I’d really prefer not to – it worked perfectly on Flint 2.

Any advice or insight would be greatly appreciated!

Best Regards,
Tom

Hi

Is your Flint 3's hardware acceleration still turned on?

Are your VPN client and server on the same LAN? Is the device accessing the service from the outside can be any device?

You can try to check the routing table of Flint 3. Manually add temporary port forwarding rules for testing.Check whether the router forces all traffic to go through VPN, covering the public network access route of the server.

Hi alen5193!

At the moment, network hardware acceleration is disabled on my Flint 3. There are a few reasons for that: I read in another thread that hardware acceleration may cause issues on Qualcomm-based models (at least currently). Also pushing down the cpu temp is one reason. In my case, however, I didn’t notice any difference in behavior — the external services were still not reachable, even when the VPN client was enabled on the Flint 3.

No, the VPN server is not on my LAN. My Flint 3 is acting as a WireGuard VPN client and connects to Mullvad — so the server is external. However, the services I'm hosting (e.g. Immich) are located behind the Flint 3, on the same LAN (Unraid server at 192.168.8.150).

Yes, I checked the routing table (ip rule, ip route) and I’ve already tested several policy routing options. Unfortunately, it seems that Flint 3 is forcing all outgoing traffic through the VPN, including traffic meant to reach my public services via domain. Even with port forwarding, they remain unreachable when the VPN client is active.

Yes, the services should be accessible from any external device (not limited to my phone) — for example, via browser from a desktop or mobile device using the domain name like https://immich.mydomain.org.

The configuration is exactly the same as on my Flint 2, where everything works as expected. I’m starting to wonder if there might be some underlying differences between Flint 2 and Flint 3 — for example, related to nftables or other low-level routing mechanisms that are not exposed in the current GUI.

Thanks in advance for any guidance — I’m happy to test further!

Best regards,
Tom

What is your network topology like? Could you please re-describe it or draw a simple diagram?
I would like to try to simulate your network topology to test.

Hi Alen!

Okay, I'll try.

Phone is on mobile network connects via WireGuard to Flint 3 acting as WG Server. Flint is VPN Client connected to Mullvad VPN via WG. Server running docker containers - part of them externally reachable and setup with Nginx Proxy Manager and internally on AdguardHome, so I use FQDNs locally and remotely. Server on local network uses Flints VPN connection to Mullvad and got a Mullvad IP. All Flint's clients - no matter at home or remotely connected - use Mullvad VPN IP.

This is exactly a copy of what I had on Flint 2. It used to work. Now it doesn't.

I'm afraid there's no better way to describe my setup.

Best regards,
Tom

2 Likes

I tested it with Flint3_V4.8.1 and it seems to be reproducible.
I will test it with a different router version next week to confirm the issue.

Hi alen!

Thank you for taking the time to test this!
I really appreciate that you were able to reproduce the behavior with Flint 3 and are even planning to try a different firmware version next week.

Looking forward to hearing your results!

I'm still not entirely sure whether the setup on the Flint 2 (which, from my perspective, works as expected) is how it's supposed to behave – or whether the behavior of the Flint 3 with the latest stable firmware is actually the “correct” one.

Best regards,
Tom

I used Flint 3 version 4.7.14 for simulation testing and was able to access intranet services.
Version 4.8.1 was unable to access intranet services.

I also tested the AXT1800 router version 4.8.0, and under the same conditions, I was able to access intranet services.

All of these settings were set to default, and without hardware acceleration enabled.

You mentioned that the version you are currently using should be V4.7.14. right?
I can access the intranet service normally with this version.

Hi Alen!

Thank you again for your effort and for testing multiple firmware versions – I really appreciate your detailed response!

To clarify your question: yes, my Flint 3 was indeed running firmware version 4.7.13, as shown in the screenshot I previously shared. I haven't tried flashing version 4.7.14 yet.

At the moment, I've switched back to using my Flint 2 with firmware version 4.7.7, and everything is working as expected there – including access to intranet services while the VPN client is active.

It's quite interesting (and honestly a bit confusing) that:

  • version 4.7.13 doesn't work correctly on Flint 3 (intranet access broken),
  • version 4.7.14 does work, as you've confirmed,
  • and version 4.8.1 breaks it again.

To me, this inconsistency suggests that something might have changed internally between these versions, and it may be worth a deeper look from one of the GL.iNet developers.

It would be great if someone could help shed some light on what’s happening under the hood – especially why version 4.7.14 behaves “correctly”, while both 4.7.13 and 4.8.1 do not. Ideally, this behavior should remain consistent across firmware updates.

Thanks again for your support!

Best regards,
Tom

Yes, we will find the cause of this issue.

Currently, you can use version 4.7.14

Hi,

I have tried to reproduce this issue and just checked it with R&D.

We found that VPN server (as Flint3) is missing a route rule, will submit a issue ticket for R&D to further analyze the reasons and improve the issue.

Thanks for your confirmation!

1 Like

Hi,

The latest firmware v4.8.1 has resolved this issue.
Please update to the latest firmware version for BE9300/Flint3.

Hi Bruce,

many thanks for your follow-up and for analyzing and fixing the issue so quickly! It’s great to see that the root cause was identified and already resolved in the new firmware. :+1:

One small question: you mentioned that the problem was due to a “missing route rule.” Would it theoretically have been possible to add this rule manually via LuCI / OpenWRT configuration? I did some comparisons in LuCI between Flint 2 & 3 back then but couldn’t spot any differences – though it’s quite possible that with my limited knowledge I might have missed something.

Thanks again for your support and the swift solution!

Best regards,
Tom

It does not display in Luci, but in the codes. :sweat_smile: