Public | Automated Build

Last pushed: a year ago
Short Description
VPN (PPTP) server with chap-secrets authentication.
Full Description

VPN (PPTP) for Docker

This is a docker image with simple VPN (PPTP) server with chap-secrets authentication.

PPTP uses /etc/ppp/chap-secrets file to authenticate VPN users.
You need to create this file on your own and link it to docker when starting a container.

Example of chap-secrets file:

# Secrets for authentication using PAP
# client    server      secret      acceptable local IP addresses
username    *           password    *

Starting VPN server

To start VPN server as a docker container run:

docker run -d --privileged -p 1723:1723 -v {local_path_to_chap_secrets}:/etc/ppp/chap-secrets mobtitude/vpn-pptp

Edit your local chap-secrets file, to add or modify VPN users whenever you need.
When adding new users to chap-secrets file, you don't need to restart Docker container.

Connecting to VPN service

You can use any VPN (PPTP) client to connect to the service.
To authenticate use credentials provided in chap-secrets file.


Docker 1.7.x and connection issues

After upgrading from Docker 1.3.0 to Docker 1.7.1 the containers started from image mobtitude/vpn-pptp stopped accepting connections to VPN without any reason.
Connections were dropped after timeout.

It looked like Docker deamon didn't forward packets for GRE protocol to container.

One of the possible solutions is to start container with networking mode set to host by adding param --net=host to run command:

docker run -d --privileged --net=host -v {local_path_to_chap_secrets}:/etc/ppp/chap-secrets mobtitude/vpn-pptp

Note: Before starting container in --net=host mode, please read how networking in host mode works in Docker:

Docker Pull Command
Source Repository

Comments (8)
2 months ago

How load cpu for 100mb/s?

6 months ago

connected but no traffic!

9 months ago

The last docker run command works but I had to use this command on the host to let it work.
I've got it from the vimagick/pptp

sudo modprobe nf_conntrack_pptp nf_conntrack_proto_gre

After that it worked like a charm! Thanks

a year ago

The command '/bin/sh -c apt-get update && apt-get install -y pptpd iptables' returned a non-zero code: 100

a year ago

Your mounting solution, which actually mounts a file to a file, doesn't work on every filesystem.

mounting "localpath" to rootfs "dockerpath" caused "not a directory".

a year ago

can't connect vpn server.

a year ago

I am confused why add --privileged flag?

2 years ago

I have updated description with troubleshooting connection issues with Dropbox 1.7.x.