Instructions to use ProtonVPN on iPhone without any apps installed

There was a great post by u/10minsaccount a year ago that includes instructions on how to create an IKEv2 profile that adds a ProtonVPN configuration to iPhone.

The need for this was largely superseded by the official app, and my work on a web-based mobile configuration tool was also abandoned.

There are a few reasons you might prefer this over the official app. I have noticed there is better persistency with these profiles and the connection is less likely to just drop and stay disconnected.

The original instructions are now dated with changes to iOS, a dead link, and u/ProtonVPN has issued a new certificate so these are the revamped instructions.

Proceed with caution - there be dragons!

Step 1

a) On your iPhone, you will need to install ProtonVPN’s official certificate.

b) In Safari, open https://protonvpn.com/download/ProtonVPN_ike_root.der

c) Select ‘Allow’ and ‘iPhone’.

d) Go to iPhone > Settings > Profile Downloaded (at the top) > Install.

Step 2

e) On a PC/Mac copy the below code into notepad/textedit found here: https://0bin.net/paste/gwTMS3JO0QuYDtd7#Et6or6ohXK6Wf41kBcx-N3QUQU8Zmeh/FwFsqHStx1g

f) Make the following changes, best just Find or Replace All.

  • Change USERNAME to your OpenVPN username found in your dashboard.

  • Change PASSWORD to your OpenVPN password found in your dashboard.

  • Change IPADDRESS to the IP address of your preferred server.

g) Save that file as anything.mobileconfig and email/Airdrop it to your iPhone.

h) Open that configuration profile in iPhone > Settings > General > Profiles.

i) To remove at anytime, simply delete the profiles in iPhone > Settings > General > Profiles.


There is no simple way to switch servers once you do this but you can use it in conjunction with the official app - just disable the one you’re not using.

Personally, I have emailed myself a few different configuration files and I install them as I need to swap. It takes no longer than changing the server in the app and ProtonVPN seems to randomly take servers offline without any notice.

This has the ‘Always-on VPN’ configured and seems to have better persistency than the app does too.

There are some other settings available in the linked XML code, such as split-tunnelling, that I haven’t included.

Please reply below if you have questions. I can not provide 1:1 support via private message.


^This ^was ^posted ^by ^a ^human ^on ^a ^shared ^reddit ^account ^r/sydney_user ^that ^is ^accessed ^by ^a ^small ^group ^of ^Australian ^privacy ^enthusiasts. ^We ^share ^this ^account ^to ^defeat ^stylometry ^attacks. ^PM ^for ^more ^details.

Very nice! Thank you

Thanks for sharing this.

I tried it and it seems to provide a much more reliable connection for me. I had been having troubles since iOS 13 and since working through it with support I just gave up on using Proton VPN because it had become such a pain.

Could you elaborate on how this is different to the profile that the app installs?

By the looks of it, unlike with the proton app, wifi does not seem to disconnect ever with this manual profile. It looks like the VPN connection is constantly maintained. I had 10% battery loss throughout the night with this profile - it seems that wifi did not sleep the whole time. Is this expected?

Could you please elaborate on what settings can be changed with this manual profile?

Could /u/protonvpn please chime in on this method of using protonvpn - advantages and drawbacks? Would it be worthy of having an official addition to the existing ikev2 manual installation page on protonvpn.com?

The main advantage I see is that it retains the connect on demand aspect. I find the battery loss quite substantial though.

I intentionally wanted the profile to be aggressive so it does a better job at keeping the connection up. The profile itself can do anything you want.

It’s likely the DeadPeerDetectionRate. I currently have it set to check every 10mins but you can dial that down.

Alternative options here: NEVPNIKEv2DeadPeerDetectionRate | Apple Developer Documentation

I might check the rest of the settings. What did you want it to do when on WiFi?

:slight_smile:

First of all, we would like to understand and investigate more about your connection issues on iOS 13. Could you please let us know your ticket ID so we can check the whole communication with our Support team? Regarding your question, our team needs to test this behavior so we could provide you with a clear answer. We will keep you updated.

I don’t know what I wanted it to do specifically, I just thought that your profile might work better than the proton’s app which is currently unusable for me.

Proton support wanted me to do the manual ikev2 install but this was totally pointless as that does not have connect on demand so it’s going to get disconnected either way.

Your manual profile does not have this issue, but I’m not sure forcing a connection and inhibiting the powersaving sleep functions is worth it for me - I stopped using protonvpn because i would regularly have no internet access despite everything being ‘connected’ and i don’t think that draining my battery is a good trade off either in terms of phone-usability either.

Would you happen to know the exact settings used in proton vpn’s official configuration?.. this stuff is not very obvious to the inexperienced but that would be a great way for me to start.

In any case, thanks for the link to apple docs and for sharing your profile - I had only managed to find some swan ikev documentation that helped my understanding so far so that is certainly useful!

Unfortunately, I don’t have my ticket number as I deleted all my old messages.

If you really wish to investigate further, I could send a link to this thread from my protonmail account and you could search the tickets on your end. Just let me know where to send the link if not [email protected].

Anyway, I’m definitely looking forward to hearing from your input following your team’s testing of this behavior.

Let me have a look and I’ll get back to you? I feel like we can nail this as a community.

I was actually thinking today of trying to extract ProtonVPN’s profile settings. I’m not sure why I haven’t thought of it earlier.

Honestly, this is more stuff /u/rafficer does so I’m only leaning on his support offline, so thanks to him too.