Before you download another client, check what the operating system already implements, because the answer is often enough to skip the installer entirely. Windows, macOS and ChromeOS each ship a fixed, short list of tunnel protocols, and a gateway that speaks one of them needs no extra driver, service or update path. What decides this is not the vendor name on the brochure. It is the protocol, how the endpoint authenticates, and which address it expects.

Ask for the protocol, not the product name

A product name says very little about what crosses the wire. Two gateways sold under the same label can demand entirely different tunnels, and one may accept a built-in client while the other refuses anything except its own portal. Two administrators describing the same box can disagree and both be right, because they are describing different layers. The tunnel underneath is what decides whether an installer is needed.

Put three questions to whoever runs the gateway: which tunnel protocol, which authentication method, and which address and DNS suffix the client must accept. Ask for the protocol by name, and when the answer comes back as a product name, explain why the protocol is what you need. Those three answers settle the client question before any software is downloaded.

There is a reason the product name survives in so many tickets. The portal URL is what users see, and the tunnel is invisible while it works. Writing the protocol into the handover note costs one line and removes the ambiguity for everyone who comes after.

Where the built-in list stops

The native lists are short, and their edges matter more than their contents. A platform that speaks L2TP over IPsec with a pre-shared key will not speak SSTP, and that difference decides the client. The table is keyed by tunnel rather than by vendor, so you can look up the protocol the gateway named.

TunnelWindowsmacOSChromeOSLinux
PPTPbuilt inremoved in 10.12nopackage
L2TP over IPsec, pre-shared keybuilt inbuilt inbuilt inpackage
L2TP over IPsec, certificatebuilt inbuilt inbuilt inpackage
SSTPbuilt innonopackage
IKEv2built inbuilt innopackage
Cisco IPsec with XAuthnobuilt innopackage
OpenVPNnonobuilt inpackage

Read the grid against the gateway's requirements rather than against a brochure. If the answer is L2TP over IPsec with a pre-shared key, the first three platforms connect with nothing extra installed. If the answer is OpenVPN, only ChromeOS is covered before you install anything. A protocol that appears in no built-in column is the honest signal that an installer is coming.

Linux is the column that resists generalisation. Its protocol support lives in daemons and plugins the distribution chooses to package, so a minimal image may speak none of these until you add them, and two distributions with the same desktop can differ.

Build the profile from a command line

Everything the graphical panel writes is stored somewhere you can reach, which is what makes a built-in profile automatable. Windows keeps VPN entries in .pbk files under the user profile and under ProgramData, and rasphone can list and edit entries that the network list does not show. That matters when a machine is provisioned by script and nobody will click through a wizard. It also explains how a profile can exist without ever appearing in the tray.

rasdial
rasdial "VpnName" alice
rasdial "VpnName" /disconnect

Hand-editing a .pbk file works, and it is also the fastest way to corrupt one, so let the tool own the format. macOS keeps its services in the system configuration, and networksetup addresses them by service name; several flags want an address rather than a hostname, so resolve the endpoint first and store the value the client will actually use. That distinction bites during automation, because a script that works with an address can fail with a name and the error looks like a broken gateway rather than a rejected argument.

networksetup -listallnetworkservices
networksetup -getinfo "ServiceName"
networksetup -setmanualwithdhcprouter "ServiceName" 198.51.100.20

Service names are localised and user-editable, so a script that hardcodes Wi-Fi breaks on the first machine set to another language. Read the name from the list command and pass it through rather than guessing.

Certificates without a proprietary client

Some deployments need a client certificate and nothing else proprietary, which is the middle case worth testing before you accept a driver. Placing a certificate in the platform store is supported; it is not the same act as dropping a vendor root in and trusting the client to find it. The first is a deliberate placement; the second is a guess with a support ticket attached.

The detail that catches people is which store the client reads. A certificate in the user store is invisible to a client configured for the machine store, and the message you get says the certificate is missing rather than that it sits in the wrong place. Check both stores before concluding the certificate is wrong. Write down which one the working configuration uses, because that note outlives the certificate when the machine is rebuilt.

Windows separates the two stores explicitly, and macOS splits the login keychain from the system keychain. The names differ, but the failure mode is identical: a valid certificate that the client never looks at.

What forces an installer

Some gateways tie the client to a private certificate store, a posture agent, or a sign-on exchange the operating system has no way to perform. Deployments built on Check Point, Cisco or Fortinet hardware often land there, and in those the built-in client is not a shortcut. A third-party replacement may connect and still violate policy, which makes this a security decision rather than a convenience one. Install what the policy requires and record the reason next to the installer version.

That record is the part people skip and the part that saves the next administrator a week: protocol, authentication method, address family and required suffix, with one line of justification for every binary that had to be added. Put it where the installer notes live rather than in a chat thread. Two lines of documentation prevent a repeat investigation.

Аффингæй хæстæг статьялтæ