I recently developed an embedded web server application for a control of a product. One of the issues to solve was the ability to access the product were ever it was. We wanted to avoid asking the customer to connect to the device to configure the network connections.
I implemented a system where the embedded system automatically configures with a VPN server at a known address and exchanges key data to allow VPN connectivity. The VPN server also implements a reverse proxy server for HTTP, to then allow web connectivity.