MikroTik CHR: How to set-up PPTP VPN Server (+ video)

Setting up a PPTP VPN server on a MikroTik router is one of the fastest ways to get a basic VPN up and running — whether you're working on a MikroTik Cloud Hosted Router (CHR) or a physical MikroTik device. This guide walks you through the complete process step by step, covering both the WinBox 4 interface and the RouterOS CLI.

Security notice: PPTP is not supported on Apple devices and is blocked on many newer Android phones (varies by manufacturer). More importantly, it is considered cryptographically weak and is easily detected and blocked by firewalls. We strongly recommend against using PPTP in any production environment. If you need a reliable, modern VPN protocol, use OpenVPN (RouterOS v6+) or WireGuard (RouterOS v7+) instead.

Here's a video overview of the full setup before we get into the details:

1
Add an IP address pool for VPN clients

The IP pool defines the range of addresses that will be assigned to connecting VPN clients. Every user who dials in to your PPTP server will receive an IP from this pool, so size it accordingly. Go to IP > Pool and click New. Give the pool a descriptive name and enter the address range in the Addresses field.

Both CIDR notation (10.0.0.128/25) and range notation (10.0.0.128-10.0.0.254) are supported, though range notation is generally clearer for single-subnet use cases. You can add additional ranges by clicking the + button next to the Addresses field.

MikroTik RouterOS WinBox — creating a new IP Pool named PPTP-Pool with range 192.168.99.10-192.168.99.200 under IP > Pool

RouterOS CLIip pool add name=PPTP-Pool ranges=192.168.99.10-192.168.99.200
2
Create a PPP profile (optional)

For most basic setups, the built-in default-encryption profile is perfectly fine. If you need to customize connection parameters — things like speed limits, DNS servers, encryption settings, or IPv6 behaviour — you can create a dedicated profile instead.

In this example, the profile uses encryption, custom DNS servers (1.1.1.1 and 1.0.0.1 from Cloudflare), our IP pool from Step 1, and restricts each secret to a single concurrent session. Go to PPP > Profiles, click New, and fill in the tabs as described:

MikroTik WinBox — PPP Profiles tab showing the New button to create a custom PPP profile RouterOS — New PPP Profile General tab with PPTP-Pool set as both Local and Remote Address, DNS servers 1.1.1.1 and 1.0.0.1, encryption enabled, IPv6 disabled, and Only One set in the Limits tab

RouterOS CLIppp profile add change-tcp-mss=yes local-address=PPTP-Pool name=PPTP-Profile only-one=yes remote-address=PPTP-Pool use-encryption=yes dns-server=1.1.1.1,1.0.0.1 use-ipv6=no
3
Create VPN user accounts (PPP Secrets)

PPP Secrets are the user accounts for your VPN. A single secret works across PPTP, L2TP, SSTP, and OpenVPN simultaneously — you can restrict which protocol a user can connect via by changing the Service field if needed.

Since we're using a PPP profile that assigns addresses from the pool automatically, you don't need to set individual local or remote addresses per user — the profile handles that. Go to PPP > Secrets, click New, enter the username and a strong password, then select the PPP profile you created in Step 2 (or default-encryption if you skipped that step).

RouterOS WinBox — PPP Secret creation dialog with username user1, password field, and PPTP-Profile selected

RouterOS CLIppp secret add name=user1 password=p@sSword1 profile=PPTP-Profile
4
Enable the PPTP server

With the pool, profile, and users in place, enabling the PPTP server is a one-step operation. Navigate to PPP > Interface, then click PPTP Server in the side menu. Tick the Enabled checkbox, set your custom profile as the default (or leave it on default-encryption), and make sure the chap, mschap1, and mschap2 authentication methods are all checked.

RouterOS WinBox — PPTP Server dialog with Enabled checked, PPTP-Profile set as Default Profile, and chap, mschap1, mschap2 authentication ticked

RouterOS CLIinterface pptp-server server set authentication=chap,mschap1,mschap2 default-profile=PPTP-Profile enabled=yes
5
Allow PPTP traffic through the firewall (optional)

If your MikroTik CHR or physical device runs a restrictive firewall — such as the one described in our basic CHR security guide — you'll need an explicit rule to let PPTP connections through. Without it, inbound traffic on TCP port 1723 will be silently dropped and no clients will be able to connect.

Go to IP > Firewall, click New, and create a filter rule with these settings: chain input, protocol tcp, destination port 1723, action accept.

MikroTik RouterOS — Firewall filter rule accepting TCP port 1723 on the input chain for PPTP VPN traffic

When the rule is saved it lands at the bottom of the firewall list, below any drop rules — meaning it won't actually work yet. Drag it above the first blocking rule so it gets evaluated first. In WinBox, this is just a matter of dragging the row up the list:

Animation showing the PPTP allow rule being dragged above the drop-everything rule in the MikroTik WinBox firewall filter list

For CLI users, first print the existing rules to find the correct position, then use place-before to insert the new rule above the first drop rule. Replace X with the rule number from the print output:

RouterOS CLIip firewall filter print --- Firewall rules output --- ip firewall filter add chain=input comment="PPTP VPN" dst-port=1723 protocol=tcp place-before=X
6
Enable NAT masquerading for internet access

This step is easy to miss, but without it your VPN clients will reach your router and nothing else — no internet access, no external resources. A masquerade rule in the NAT table is what makes the traffic routable from your VPN subnet out to the internet.

Go to IP > Firewall > NAT, click New, and set chain to srcnat, out-interface to ether1 (or whichever interface carries your WAN connection), and action to masquerade.

MikroTik RouterOS — NAT masquerade rule with chain srcnat and out-interface ether1 to give PPTP VPN clients internet access

RouterOS CLIip firewall nat add chain=srcnat out-interface=ether1 action=masquerade
7
Set up interface binding by username (optional)

By default, each PPTP connection gets a dynamically named interface (like <pptp-user1>). Creating a static server binding ties a fixed interface name to a specific username, which makes it much easier to reference that connection in firewall rules, apply per-user traffic policies, or monitor usage over time.

To add a binding, go to PPP > Interface, then click PPTP Server Binding in the side menu (or use the Interface list directly as shown below). Enter a name for the interface and set the User field to the PPP Secret username you want to track:

RouterOS WinBox — creating a PPTP Server Binding named pptp-in1 for user1 under the Interface list

RouterOS CLIinterface pptp-server add name=pptp-in1 user=user1

That's everything — your MikroTik router is now set up as a PPTP VPN server and ready to accept client connections. The same setup works on both MikroTik CHR instances and physical RouterOS devices.

Need a MikroTik CHR to run your VPN server on? BGOCloud's MikroTik VPS plans give you a fully licensed Cloud Hosted Router with SSD-backed performance, a public IP, and unlimited traffic options — deployed in under a minute. Everything in this guide works out of the box on our CHR instances.

MikroTik VPS: Because your business deserves the best!

Get Started!
icon knowledge

Related Articles

MikroTik CHR How to set-up L2TP VPN Server. VPN server for Apple devices - Iphone, MacBook. (+ video)

L2TP/IPsec is one of the best-supported VPN protocols for Apple devices — it works natively on...

Set up L2TP over IPSec / PPTP VPN client in Android

In this article, we will show you how to set up a PPTP/L2TP VPN connection to your Android device...

Troubleshooting OpenVPN Server issues on a MikroTik CHR

In this article you can find how to resolve any issues that might occur while setting up your...

How-to: Create and share users in MikroTIk Back To Home

Creating new Back To Home users to share your home network is really easy and done in couple of...