Hi daffy,
usually if your gateway is not in the local range you need to add the route for the gateway for it to work as linux assumes that if its not directly connected it is not reachable.
You can check this by searching through journalctl -u network or networking depending on the distro, the faulure to add the route should be logged.
In Debian you can add the route by adding the route command to the /etc/network/interfaces config file (see NetworkConfiguration - Debian Wiki, something like up ip route add default via 94.23.x.x . In Centos this can be done by adding a route to a file like /etc/sysconfig/network-scripts/route-eth0 (something like default via 94.23.x.x dev eth0). Google this
This normally works in lxc containers because proxmox adds these routes/files for you. So maybe just check how proxmox added these routes on you lxc cpontainers and you will find the answer as well
hope this helps