Skip to content

Instantly share code, notes, and snippets.

@aioutecism
Last active August 28, 2025 08:34
Show Gist options
  • Select an option

  • Save aioutecism/2638bb9eaf9ffc13348c to your computer and use it in GitHub Desktop.

Select an option

Save aioutecism/2638bb9eaf9ffc13348c to your computer and use it in GitHub Desktop.
Set up a VPN Server (PPTP) on AWS and use it anywhere

Set up a VPN Server (PPTP) on AWS

  1. Create a EC2 instance using Ubuntu 14.04.
  2. In Secure Group Inbound Rules, add a SSH Rule(TCP, Port 22, 0.0.0.0/0) and a Custom TCP Rule(TCP, Port 1723, 0.0.0.0/0).
  3. Optional: Associate a Elastic IP with the instance.
  4. SSH into the instance.
  5. sudo apt-get install pptpd.
  6. sudo vim /etc/pptpd.conf. Uncomment localip 192.168.0.1 and remoteip 192.168.0.234-238,192.168.0.245.
  7. sudo vim /etc/ppp/pptpd-options. Uncomment ms-dns and ms-wins. Change the IP to Google's DNS like this:
ms-dns 8.8.8.8
ms-dns 8.8.4.4

#...

ms-wins 8.8.8.8
ms-wins 8.8.4.4
  1. sudo vim /etc/ppp/chap-secrets. Add VPN users in this format <username> pptpd <passwd> *.
  2. sudo vim /etc/sysctl.conf. Uncomment net.ipv4.ip_forward=1.
  3. sudo /sbin/sysctl -p.
  4. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.
  5. sudo vim /etc/rc.local. Add iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE before exit 0.
  6. sudo /etc/init.d/pptpd restart.

OSX Usage

  1. Go to System Preferences > Network.
  2. Click the + button. Choose VPN as interface. PPTP as VPN Type. And enter a name you can understand. Click Create.
  3. Enter your instance's Public IP in Server Address.
  4. Enter your <username> in Account Name.
  5. Click Authentication Settings. Choose Password and enter your <password>.
  6. Click Advanced. Check Send all traffic over VPN connection. Click OK.
  7. Click Apply.
  8. Click Connect.
  9. You are good to go.

iOS Usage

  1. Go to Settings > General > VPN.
  2. Touch Add VPN Configuration....
  3. Choose PPTP.
  4. Enter any name in Description.
  5. Enter your instance's Public IP in Server.
  6. Enter your <username> in Account.
  7. Enter your <password> in Password.
  8. Turn on Send All Traffic.
  9. Save.
  10. Switch on the VPN connection.
  11. You are good to go.
@hubdotcom
Copy link
Copy Markdown

Google's DNS is 8.8.8.8 and 8.8 .4.4
https://developers.google.com/speed/public-dns/

@Sjors
Copy link
Copy Markdown

Sjors commented Feb 16, 2018

It seems iOs no longer supports PPTP.

@gexplozer
Copy link
Copy Markdown

Thanks so much!

Copy link
Copy Markdown

ghost commented Sep 14, 2020

can I use some other ports
or some other protocol e.g, UDP?

@dbackeus
Copy link
Copy Markdown

Ubuntu 14.04 is no longer supported on AWS. After following these steps on Ubuntu 20.04 the PPTP VPN didn't work and after exiting the SSH session I wasn't able to log back in.

@rutkk
Copy link
Copy Markdown

rutkk commented Mar 7, 2022

I'm trying to set this up to bypass a carrier NAT, though I still get NAT type C using this vpn (the IP is different so the VPN is definitely working). Any help?

@flourigh
Copy link
Copy Markdown

flourigh commented May 17, 2023

image

Any help?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment