I would like to set up a bridged access point on my Raspberry Pi so I can connect ESP32 devices and do update them. On my Raspberry Pi, I have a apache server and the ESP32 devices are able to connect to Raspberry Pi server and perform OTA (Over The Air) update.

I used to be able to do that all on Wi-Fi, but I am moving the system to a different location where Wi-Fi is not available. I only connect the ethernet cable to my Raspberry Pi.

So my Raspberry Pi must create access point (I don't know bridge or routed?) so the devices can connect to the Raspberry Pi wirelessly and update.

I have followed the following guide step by step:


After restarting the Raspberry Pi, on the top left, I can see that : br0:Configured

But my ESP32 devices are not able to connect to this network for some reason. I am able to establish a connection between the phone and the access point, however I am not able to reach the internet.

Can someone give me advice on how to debug this problem and whether I should be using routed or bridged AP?

2 Answers 2


The tutorial from the official Raspberry Pi web site is known to work but it uses traditional networking technology with additional helper program (hostapd) mixed up with modern systemd-networkd. For my opinion it is not very intuitive but error prone and does not support the powerful networking issues of systemd-networkd.

I suggest to try a clean systemd-networkd solution as shown at Setting up a Raspberry Pi as an access point - the easy way.

You are asking if to use a bridged or routed solution. This depends on your use case. You can use the routed configuration as shown in section ♦ Setting up an access point and with eth0, with NAT (recommended) or you can use section ♦ Setting up an access point with a bridge. If you have a look at the schemas on top of the sections you can see the important difference. With the routing solution you have the access point with your own "fixed" subnet with ip addresses from e.g. But you always have to ensure that this subnet is different from the subnet that the uplink router uses. With the bridged solution you become part of the connection to the uplink router and use its DHCP server and the ip addresses it provides.


did you enable IP forwarding ? (it is not mentioned in step-by-step)

dynamicaly (either) :

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

or edit /etc/sysctl.conf (to have it persistant)

net.ipv4.ip_forward = 1

you can check using

sysctl net.ipv4.ip_forward

disabling is done using 0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.