Making EE run IPv4 only so that VPNs work

Apparently, EE (the UK mobile phone network) did “something” to their network at some time in between when I last used my VPNs with them and now-ish, apparently involving adding IPv6 which sometimes does not do IPv4 properly.

I don’t know the background of that, what the underlying situation is, or why it seems to cause my primary VPN (OpenVPN on a Raspberry Pi at home, to allow me to access home-LAN-only resources from external) to not work. Don’t work on my [Android] phone, also don’t work when using phone-as-hotspot for a laptop. Just can’t reach the IPv4-address referenced by an A-record somehow, so OpenVPN can’t connect.

It’s not that EE is “blocking VPNs”, but they’ve done something which breaks certain things, and VPNs (both homebrew and commercial service offerings, it seems) is one of the things that it breaks.

What I do know is that after various experimenting with suggestions from various sources on APN (Access Point Name) configurations, I found that following the APN Android instructions listed hereexactly and precisely – made stuff work for me again.

The specific details (Android-centric) listed on that page – just in case it ever goes away – are as follows (these relate to creating a new APN – find that dialog on your own):

Name: EE internet
APN: everywhere
Proxy: Not Required
Port: Not Required
Username: eesecure
Password: secure
Server: Not Required
MMSC: http://mms/
MMS proxy: 149.254.201.135
MMS port: 8080
MCC: 234
MNC: 30
Authentication type: Not Required or just use the default value shown.

When following various different guides and such which didn’t work for me, I had been ignoring the MMS-related stuff – on the basis that I don’t care about MMS. But when I followed exactly those details and put all of them in, it worked for me. I have no idea if including the MMS-related stuff is necessary for the APN to work properly or not – as soon as my settings started working, I stopped investigating.

The only variation to the settings above would be to find the “IPv6 and IPv4” thing and set that to “IPv4 only” – otherwise there’s not much point.