What worked for me:
I had an intermittent WiFi connection. When I looked at the VPN control [General Settings: VPN & Device Management] I found that the current VPN config. was shutting off, and then restarting itself several times each minute. I could manually click the VPN to OFF; but within a few seconds the switch would turn itself back ON. Then within another few seconds, the VPN would turn itself back OFF. This behavior would continue -- effectively gating the WiFi connection ON and OFF every 15 seconds or so. (And that's what my apps were doing--Weather would initially report No Internet, then after a wait it would update and report current conditions.)
I went to the current active VPN config. and clicked DELETE, and confirmed that command. Poof went the bad VPN configuration; and WiFi has been solid ever since. In my case, the VPN is done entirely in the TCP/IP connection software; there is no dedicated VPN hardware. So no hardware reset/restart was needed. I deleted one defective VPN config. from my iPhone settings, and the problem vanished. I have not yet tried to configure a replacement VPN. The one I was using was Google's free "1.1.1.1" VPN. But any VPN config. can go bad, any time any participant in that config. sends an update. In my case that was Google (VPN vendor,) and Apple (iPhone and iOS vendor.) Even if Apple were the vendor for the entire configuration, we still couldn't bet that an in-use configuration would survive every update. Hope this helps!