A cheap VPN with WireGuard config file delivery is not a lesser product. It is a different distribution model. The provider generates a .conf file, you download it, and you import it into the standard WireGuard client for your platform. Nothing proprietary sits in the path. Price differences at this end of the market come from server footprint, support depth and bundled extras, and they do not come from the tunnel itself.
That matters because the tunnel is the part you are actually buying. This page explains what a low price should still buy you, what it genuinely costs you, and how to read the config file before you commit any money.
What a cheap VPN with WireGuard config file delivery should still include
Four things are not negotiable at any price. If a provider is missing one of them, the price is not the reason.
- A downloadable
.conffile you can retrieve yourself, without opening a support ticket - A working
DNS =line inside the file, so queries do not fall back to the local resolver - An
AllowedIPsvalue you are permitted to edit, so you can choose full or split tunnelling - An OpenVPN profile on the same account, for networks that drop UDP
The last one is structural rather than a nicety. WireGuard has no TCP transport. The project's own protocol documentation states it plainly: "All packets are sent over UDP" (wireguard.com/protocol). A provider shipping only WireGuard has nothing to offer on a network that blocks UDP, and no amount of configuration on your side changes that.
What cheap usually does cost you
Something has to give, and it is worth naming what usually does.
Fewer server locations. A large location list costs money to run continuously. Budget providers typically hold a smaller footprint, which matters if you specifically need a country that is not on the list. Check the list before you pay rather than after.
Thinner support. Config-file providers often expect you to read a log before asking. That is reasonable for the audience, and it is genuinely worse if you wanted somebody to fix it for you.
No bundled extras. Ad blocking at the resolver, tracker filtering, multi-hop routing and dedicated IP addresses are usually app features or paid add-ons. Proton VPN, for example, exposes NetShield filtering, Moderate NAT and VPN Accelerator as options when generating a configuration (protonvpn.com/support/wireguard-configurations). A cheaper provider generally hands you the tunnel and stops there.
No managed client. There is no app to select a fast server, no automatic reconnect logic beyond what the standard client offers, and no vendor kill switch toggle. You build those with the OS firewall or you do without them.
Here is the same trade set out as what you pay for.
| What you are paying for | Config-file provider | App subscription |
|---|---|---|
| The tunnel itself | Standard WireGuard, standard client | Standard WireGuard, vendor client |
| Server selection | You pick a file | The app picks by load |
| Reconnect behaviour | Whatever the standard client does | Vendor logic, usually more aggressive |
| Kill switch | Your firewall rules | A managed toggle |
| Resolver filtering | Not usually included | Often bundled |
| Support expectation | You read the log first | You open a ticket first |
| Platform coverage | Anything with a standard client | Platforms the vendor builds for |
If the right-hand column describes what you want, buy that instead. A cheap config-file provider is a poor fit for somebody who wants one button, and saying so costs nothing.
What it does not cost you
The protocol implementation is the same regardless of price. Your client is the WireGuard client, not the provider's fork of it, and it speaks the same protocol to any conforming peer. Proton VPN states the same expectation about its own files, noting that they work with any WireGuard client "that also matches official specifications".
So a low price does not buy you weaker cryptography, an older handshake, or a modified client. It buys you a smaller operation around the same tunnel. Judge the price against the location list and the support you expect, not against the security of the protocol.
Speed is a separate question and it is mostly geography. Distance to the server and the path MTU decide throughput far more often than the monthly figure does. See MTU and AllowedIPs for the values worth adjusting.
Reading the config file before you commit
A WireGuard config is short enough to read in full. Every field below is defined in the wg(8) and wg-quick(8) manual pages, and the descriptions in quotation marks come from those pages (wg.8, wg-quick.8).
| Field | What it controls | What breaks if it is wrong |
|---|---|---|
PrivateKey | Your identity. "A base64 private key generated by wg genkey. Required." | The peer never authenticates you and no handshake completes |
Address | The tunnel address assigned to your interface | The server drops your packets because your source address is outside its AllowedIPs |
DNS | "IP (v4 or v6) addresses to be set as the interface's DNS servers" | The system keeps its previous resolver, which is a DNS leak while the tunnel is up |
MTU | Packet size on the interface. "If not specified, the MTU is automatically determined from the endpoint addresses or the system default route" | Small requests succeed and large transfers hang |
PublicKey | The server's identity, under [Peer] | The handshake fails silently and never retries into success |
Endpoint | "An endpoint IP or hostname, followed by a colon, and then a port number" | No handshake at all, because packets go nowhere useful |
AllowedIPs | Which traffic is "directed" to this peer, per the manual | Traffic you expected to tunnel leaves over the normal route instead |
PersistentKeepalive | How often to send "an authenticated empty packet to the peer" to hold a NAT mapping open | The tunnel goes quiet behind NAT and stops passing return traffic |
A complete client config is about a dozen lines, and it should look close to this.
[Interface]
PrivateKey = <your private key, issued to you>
Address = 10.7.0.2/32
DNS = 10.7.0.1
MTU = 1420
[Peer]
PublicKey = <the server public key>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = server.example.net:51820
PersistentKeepalive = 25Check three things against that shape. The Address should be a single host address with a /32 mask, not a subnet, because it identifies you rather than a network. The AllowedIPs line should carry both 0.0.0.0/0 and ::/0 if you want a full tunnel. Leaving out the IPv6 half is a common way to leak IPv6 traffic outside a tunnel that otherwise looks correct. And PersistentKeepalive is documented as an interval between 1 and 65535 seconds, with 25 recommended behind NAT.
A missing DNS = line is the most consequential omission. Without it the system keeps whatever resolver it was already using, so the tunnel carries your traffic while the local network still sees every domain you look up. That is a leak on a working tunnel, and it will not show up as an error anywhere.
If a provider will not show you the file before you pay, you cannot run any of these checks. That is itself a data point.
Where the file goes on each platform
The file is the same on every platform. Only the import path changes. For the client itself, see installing the WireGuard client.
Windows
Install the official WireGuard client, then choose Add Tunnel and import the .conf file. The tunnel appears in the list and activates from the same window. Whatever blocking options your build offers around that tunnel, test them rather than trust them. Start a download, deactivate the tunnel mid-transfer, and watch whether the transfer carries on outside it.
macOS
Install WireGuard from the Mac App Store or with Homebrew, then import the file through the client's tunnel list. The interface is named utun followed by a number, which is assigned by the system rather than by you. Grant the network extension permission the client requests, or the tunnel will not come up.
Linux with wg-quick
Place the file at /etc/wireguard/wg0.conf and bring it up with wg-quick up wg0. Check the result with wg show, which prints the latest handshake time and the transfer counters. Use systemctl enable wg-quick@wg0 if you want it to start at boot.
Android and iOS
Import the file through the official WireGuard app, either from storage or by scanning a QR code where the provider supplies one. PulseVPN issues the file itself and has no QR export, so move the .conf onto the device and import it from storage. Blocking traffic when the tunnel drops is a system setting on both platforms rather than a field in the config. Open the system VPN settings on your own device and read what it offers, because the wording and the placement move between versions.
For the general procedure on any platform, see importing a WireGuard config.
One config on several devices
Ask this before you buy, because the answer decides how many files you need and budget providers rarely state it.
A WireGuard peer is identified by one public key. The server holds that key against one entry, and it records one endpoint address for it: the address the most recent valid handshake arrived from. Put the same config on a laptop and a phone, use both at once, and each handshake overwrites the other's endpoint. Return traffic then goes to whichever device completed the most recent handshake, so both connections break intermittently and neither produces an error.
Used one at a time the same file is fine, and the failure only appears under concurrent use. The clean answer is one config per device, each with its own keypair, which also lets you revoke a lost phone without disturbing anything else. So the buying question is not whether copying is allowed. It is whether you can generate a second config yourself, and how many the plan includes.
PulseVPN answers both halves of that question with a number. A subscription covers three simultaneous connections, and an account holds up to three WireGuard configs. Generate the second and third yourself rather than requesting them. OpenVPN profiles are not capped in the same way, so a spare .ovpn for another region costs you nothing against the WireGuard three.
Why an OpenVPN fallback matters at this price point
This is the single most useful thing to check before buying, and it is the thing budget comparisons never mention.
Restrictive networks tend to permit outbound TCP 443 because they have to, and they often drop UDP wholesale. WireGuard is UDP-only, so on such a network it does not degrade, it simply fails. OpenVPN can be configured with proto tcp and a remote on port 443, and it usually gets out. OpenVPN's own guidance describes the same hierarchy: Access Server "works best over UDP", and "TCP 443 is the preferred fallback option when firewalls block UDP" (blog.openvpn.net/vpn-server-behind-firewall).
You cannot improvise that fallback. If your provider does not issue an .ovpn profile, you have no second option on a hotel or campus network. The full procedure is covered in using OpenVPN on TCP 443 to bypass a firewall. The buying-side question for the .ovpn half is covered in what to check in a VPN that gives you .ovpn config files.
How PulseVPN prices it
PulseVPN is config-file based. You import a WireGuard config or an .ovpn profile into a standard client, and there is no proprietary PulseVPN app. Both protocols run on the same account at the same time. Sixteen exit regions are available, and a subscription covers three simultaneous connections.
| Term | Price | Per month |
|---|---|---|
| 1 month | $2.50 | $2.50 |
| 3 months | $7.50 | $2.50 ($7.50 ÷ 3) |
| 6 months | $14.00 | $2.33 ($14.00 ÷ 6) |
| 12 months | $26.00 | $2.17 ($26.00 ÷ 12) |
A 24-hour free trial is available with no card, and subscriptions can be settled in cryptocurrency. See paying with crypto for that path and creating a config for the first-run steps.
Spend part of that trial reading the file rather than testing the speed. Open the config you are issued and check it against the field table above. A PulseVPN config carries DNS = 1.1.1.1, AllowedIPs = 0.0.0.0/0, ::/0 and PersistentKeepalive = 25, so the resolver, the full tunnel and the NAT keepalive are all set for you.
One field is deliberately not there. The file carries no MTU = line, so your client derives the value from the route to the endpoint. That is the right default and it is not always the right number. Add a line only if large transfers stall, and measure the path before you pick a value.
Quick answers
- Is a cheap VPN slower than an expensive one
- Not because of the price. Throughput on a WireGuard tunnel is governed mostly by distance to the server and by whether the path MTU is correct. A wrong MTU shows up as large transfers stalling while small requests succeed, and it is fixable in the config file. Server load and location choice matter too, and neither is a protocol property.
- Can I edit the config file the provider gives me
- Usually yes, and some fields are safe to change while others are not. AllowedIPs, DNS, MTU and PersistentKeepalive are yours to adjust. PrivateKey, PublicKey and Address are issued by the provider and paired with server-side state, so changing them breaks the tunnel. Keep an unedited copy before you experiment.
- Do I need the WireGuard app or can I use the config with something else
- Any conforming WireGuard client will read the file. On Linux that is usually wg-quick with wg0.conf. NetworkManager, OpenWrt, pfSense and several NAS operating systems accept the same file through their own import paths. Proton VPN describes the same expectation for its files, saying they work with any client matching official specifications.
- Can I pay without giving an email address
- That depends entirely on the provider and it is worth confirming before purchase. Some providers issue an account identifier with no email required and settle in cryptocurrency. Others require a verified email address and a card. Note also that VPN credentials are sometimes separate from dashboard credentials, so check which set the config file is tied to.
- What happens when the trial expires
- The PulseVPN trial runs for 24 hours. It takes no card, so there are no payment details on file to charge. To continue, choose a plan of one, three, six or twelve months and pay in cryptocurrency. Buying a plan ends the trial question entirely, since no trial runs alongside a paid subscription. Ask at the start whether the config issued for the trial carries over into a paid subscription, because the answer decides whether day two begins with a fresh import. Start with the trial rather than the price list. PulseVPN offers a 24-hour free trial with no card, so you can download a real WireGuard config and read every field described above before deciding. Plans afterwards are $2.50 for one month, $7.50 for three months, $14.00 for six months and $26.00 for twelve months, settled in cryptocurrency. Both WireGuard and OpenVPN are supported, and both arrive as files you keep.