Port 1723 (PPTP)
TCPPoint-to-Point Tunneling Protocol — PPTP listens on port 1723 by default.
What is Port 1723?
Port 1723 is used by PPTP (Point-to-Point Tunneling Protocol), one of the earliest VPN protocols developed by Microsoft, Ascend Communications, and others in 1999 (RFC 2637). PPTP establishes a control channel on TCP port 1723 for connection management, while the actual VPN data tunnel uses GRE (Generic Routing Encapsulation, IP protocol 47).
PPTP was widely adopted because it was built into every version of Windows since Windows 95 OSR2, required no additional client software, and was simple to configure. The protocol encapsulates PPP (Point-to-Point Protocol) frames within GRE packets, creating a tunnel between the client and server.
PPTP supports authentication via MS-CHAPv2 (Microsoft Challenge Handshake Authentication Protocol version 2) and encryption via MPPE (Microsoft Point-to-Point Encryption) using the RC4 stream cipher with 40-bit or 128-bit keys.
PPTP vs Modern VPN Protocols
| Feature | PPTP | OpenVPN | WireGuard | IKEv2/IPsec |
|---|---|---|---|---|
| Port | TCP 1723 + GRE | UDP/TCP 1194 | UDP 51820 | UDP 500, 4500 |
| Encryption | MPPE (RC4, broken) | AES-256-GCM | ChaCha20-Poly1305 | AES-256-GCM |
| Security | Broken | Strong | Strong | Strong |
| Speed | Fast (low overhead) | Moderate | Very fast | Fast |
| NAT Traversal | Problematic (GRE) | Excellent | Excellent | Built-in (NAT-T) |
| Mobile Support | Built into older OS | App required | App required | Native (iOS/Android) |
| Codebase | Proprietary | ~100,000 lines | ~4,000 lines | OS kernel |
Recommendation: For new deployments, use WireGuard for best performance, IKEv2/IPsec for mobile devices (native OS support), or OpenVPN for maximum compatibility and firewall bypass capability (can run on TCP 443).
Why PPTP Is Insecure
MS-CHAPv2 Authentication Is Broken: In 2012, security researcher Moxie Marlinspike demonstrated that MS-CHAPv2 can be reduced to cracking a single DES key. Using the tool chapcrack, any MS-CHAPv2 handshake can be converted to a single DES challenge, which can be brute-forced in under 24 hours using FPGA hardware or online services like CloudCracker. This means any PPTP password, regardless of complexity, can be recovered.
MPPE Encryption Depends on MS-CHAPv2: MPPE derives its encryption keys from the MS-CHAPv2 handshake. Since MS-CHAPv2 is broken, the MPPE encryption keys are also compromised. Additionally, MPPE uses RC4, which has known biases and vulnerabilities (the same weaknesses that led to WEP being deprecated in WiFi).
No Perfect Forward Secrecy: PPTP does not support Perfect Forward Secrecy (PFS). If the master key is compromised, all past and future sessions can be decrypted. Modern protocols like WireGuard and IKEv2 use ephemeral key exchange to ensure that compromising one session does not affect others.
GRE Tunnel Vulnerabilities: The GRE encapsulation used by PPTP does not provide integrity protection, making it susceptible to bit-flipping attacks. GRE is also problematic for NAT traversal, as many consumer routers and firewalls do not properly handle GRE passthrough, causing connection failures.
Known CVEs: Multiple critical vulnerabilities have been found in PPTP implementations, including buffer overflows in Microsoft's PPTP implementation (MS09-063), authentication bypasses, and denial-of-service attacks against the PPTP control channel on port 1723.
Migration Guide: PPTP to Modern VPN
If you are still running PPTP on port 1723, here is a step-by-step approach to migrate to a secure alternative:
Step 1: Choose a Replacement Protocol
- WireGuard: Best choice for performance and simplicity. Minimal configuration, modern cryptography, kernel-level implementation.
- IKEv2/IPsec: Best for environments with iOS/Android devices. Built into mobile operating systems, supports seamless roaming between WiFi and cellular.
- OpenVPN: Best for maximum compatibility. Runs on any port (including TCP 443 to bypass firewalls), mature and well-audited.
Step 2: Deploy the New VPN Server
Example WireGuard setup on Ubuntu/Debian:
# Install WireGuard
apt install wireguard
# Generate server keys
wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <server-private-key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <client-public-key>
AllowedIPs = 10.0.0.2/32
Step 3: Migrate Clients and Close Port 1723
- Distribute new VPN client configurations to all users
- Run both PPTP and the new VPN in parallel during transition
- Monitor PPTP connections to identify remaining users
- Disable PPTP server and close port 1723 in your firewall
- Block GRE (protocol 47) at the firewall as well
Port 1723 Configuration
Windows (Built-in PPTP Client)
Windows still includes a PPTP client in Settings > Network > VPN. To connect:
# PowerShell: Create PPTP VPN connection
Add-VpnConnection -Name "Legacy VPN" `
-ServerAddress "vpn.example.com" `
-TunnelType Pptp `
-AuthenticationMethod MSChapv2 `
-EncryptionLevel Required
# Connect
rasdial "Legacy VPN" username password
Linux (pptpd Server)
# /etc/pptpd.conf (NOT recommended for production)
option /etc/ppp/pptpd-options
localip 10.0.0.1
remoteip 10.0.0.100-200
# /etc/ppp/pptpd-options
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
# Firewall: allow TCP 1723 + GRE
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
How to Check Port 1723
Remote Scanning
To check if port 1723 is open on a remote host:
- nmap:
nmap -sV -p 1723 hostname— detect PPTP service - netcat:
nc -zv hostname 1723— quick TCP connection test - PowerShell:
Test-NetConnection -ComputerName hostname -Port 1723 - GRE check:
nmap -sO -p 47 hostname— check if GRE protocol is allowed
Local Listening Check
To check if port 1723 is listening on your local machine:
- Linux:
ss -tlnp | grep 1723ornetstat -tlnp | grep 1723 - macOS:
lsof -i :1723 - Windows:
netstat -an | findstr 1723
Note: PPTP requires both TCP port 1723 and GRE (IP protocol 47) to function. If port 1723 is open but GRE is blocked, PPTP connections will fail during the data tunnel phase.
Troubleshooting Port 1723
Connection refused: The PPTP server (pptpd) is not running. Check with systemctl status pptpd on Linux or verify the Routing and Remote Access Service (RRAS) is running on Windows Server.
Connection drops after authentication: GRE (protocol 47) is blocked by a firewall or NAT device. Many consumer routers don't support GRE passthrough. Enable GRE passthrough in router settings or switch to a VPN protocol that doesn't use GRE (OpenVPN, WireGuard).
Error 619 (Windows): The connection could not be established. Common causes: firewall blocking port 1723 or GRE, ISP blocking PPTP traffic, or a double NAT situation preventing GRE passthrough.
Error 807 (Windows): Network connection between your computer and the VPN server was interrupted. Check internet connectivity, verify the PPTP server is reachable on port 1723, and ensure no intermediate firewall is blocking GRE.
Authentication failures: Verify MS-CHAPv2 is enabled on both client and server. Check that the username/password is correct in /etc/ppp/chap-secrets (Linux) or Active Directory (Windows). Note that EAP-TLS is not supported by PPTP.
Slow performance: PPTP uses single-threaded encryption (MPPE/RC4) which cannot utilize modern multi-core CPUs efficiently. Consider WireGuard, which achieves near-wire-speed performance using modern parallel cryptography (ChaCha20-Poly1305).
Related Ports
Frequently Asked Questions
What is port 1723 used for?
Is PPTP (port 1723) secure?
chapcrack. Its encryption (MPPE) uses RC4 which has known weaknesses, and the key derivation depends on the already-broken MS-CHAPv2 handshake. Both Microsoft and security researchers recommend migrating to WireGuard, IKEv2/IPsec, or OpenVPN.What should I use instead of PPTP?
Why do some organizations still use PPTP?
How do I check if port 1723 is open?
nmap -sV -p 1723 hostname to scan remotely and identify PPTP, nc -zv hostname 1723 for a quick TCP test, ss -tlnp | grep 1723 to check locally on Linux, or Test-NetConnection -ComputerName hostname -Port 1723 in Windows PowerShell. Remember that PPTP also requires GRE (protocol 47) to be allowed through firewalls.How do I migrate from PPTP to WireGuard?
wg genkey and wg pubkey, configure the WireGuard interface with the server's private key and client public keys, set up firewall rules for UDP port 51820, distribute client configurations, run both protocols in parallel during transition, then disable PPTP and close port 1723 and GRE at the firewall.🔍 Check Your IP Address
While you're here, find out your public IP address, location, and ISP details instantly.
Check My IP →