How to connect android Device to PPTP VPN

12.9k Views Asked by At

I have create a PPTP VPN server using ubuntu's guide .

Now I have:

enter image description here

My problem now is that my android phone could not connect to the pptp which I created. When i try to enter the username and password then hit connect , the only message i have is Connecting... but afterwards is Unsuccessful.

So I searched and found this link for general overview on how to connect to my PPTP VPN. I also came here but I still cant get my phone connected to the VPN. I have exactly followed what ubuntu's guide is saying, and I don't know now what to do, to achieve my goal. Please give some link or a guide that should I do so that my android phone will be able to connect to my PPTP VPN.

syslog of the server

Aug 26 14:44:50 jameshwart-System-Product-Name pptpd[31320]: CTRL: Client 192.168.1.27 control connection started
Aug 26 14:44:51 jameshwart-System-Product-Name pptpd[31320]: CTRL: Starting call (launching pppd, opening GRE)
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: pppd 2.4.5 started by root, uid 0
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: Using interface ppp0
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: Connect: ppp0 <--> /dev/pts/24
Aug 26 14:44:51 jameshwart-System-Product-Name NetworkManager[969]:    SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Aug 26 14:44:51 jameshwart-System-Product-Name NetworkManager[969]:    SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
Aug 26 14:44:51 jameshwart-System-Product-Name NetworkManager[969]: <warn> /sys/devices/virtual/net/ppp0: couldn't determine device driver; ignoring...
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: peer from calling number 192.168.1.27 authorized
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: MPPE required, but MS-CHAP[v2] nor EAP-TLS auth are performed.
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: Connection terminated.
Aug 26 14:44:51 jameshwart-System-Product-Name NetworkManager[969]:    SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: Exit.
Aug 26 14:44:51 jameshwart-System-Product-Name pptpd[31320]: GRE: read(fd=6,buffer=7f2daa2874a0,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
Aug 26 14:44:51 jameshwart-System-Product-Name pptpd[31320]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
Aug 26 14:44:51 jameshwart-System-Product-Name pptpd[31320]: CTRL: Reaping child PPP[31321]
Aug 26 14:44:51 jameshwart-System-Product-Name pptpd[31320]: CTRL: Client 192.168.1.27 control connection finished

syslog of the client

Sent control packet type is 1 'Start-Control-Connection-Request'
Aug 26 14:45:17 felman-To-be-filled-by-O-E-M pptp[10347]: nm-pptp-service-10324 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
Aug 26 14:45:17 felman-To-be-filled-by-O-E-M pptp[10347]: nm-pptp-service-10324 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
Aug 26 14:45:18 felman-To-be-filled-by-O-E-M pptp[10347]: nm-pptp-service-10324 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Aug 26 14:45:18 felman-To-be-filled-by-O-E-M pptp[10347]: nm-pptp-service-10324 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
Aug 26 14:45:18 felman-To-be-filled-by-O-E-M pptp[10347]: nm-pptp-service-10324 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 21504).
Aug 26 14:45:18 felman-To-be-filled-by-O-E-M pppd[10328]: CHAP authentication succeeded
Aug 26 14:45:19 felman-To-be-filled-by-O-E-M pppd[10328]: MPPE 128-bit stateless compression e

options.pptp file

###############################################################################
# $Id: options.pptp,v 1.3 2006/03/26 23:11:05 quozl Exp $
#
# Sample PPTP PPP options file /etc/ppp/options.pptp
# Options used by PPP when a connection is made by a PPTP client.
# This file can be referred to by an /etc/ppp/peers file for the tunnel.
# Changes are effective on the next connection.  See "man pppd".
#
# You are expected to change this file to suit your system.  As
# packaged, it requires PPP 2.4.2 or later from http://ppp.samba.org/
# and the kernel MPPE module available from the CVS repository also on
# http://ppp.samba.org/, which is packaged for DKMS as kernel_ppp_mppe.
###############################################################################

# Lock the port
lock

# Authentication
# We don't need the tunnel server to authenticate itself
noauth

# We won't do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2
# (you may need to remove these refusals if the server is not using MPPE)
refuse-pap
refuse-eap
refuse-chap
refuse-mschap

# Compression
# Turn off compression protocols we know won't be used
nobsdcomp
nodeflate

# Encryption
# (There have been multiple versions of PPP with encryption support,
# choose with of the following sections you will use.  Note that MPPE
# requires the use of MSCHAP-V2 during authentication)

# http://ppp.samba.org/ the PPP project version of PPP by Paul Mackarras
# ppp-2.4.2 or later with MPPE only, kernel module ppp_mppe.o
# {{{
# Require MPPE 128-bit encryption
#require-mppe-128
# }}}

# http://polbox.com/h/hs001/ fork from PPP project by Jan Dubiec
# ppp-2.4.2 or later with MPPE and MPPC, kernel module ppp_mppe_mppc.o
# {{{
# Require MPPE 128-bit encryption
mppe required,stateless
# }}}
4

There are 4 best solutions below

0
On BEST ANSWER

thanks to you all but i solve it by checking my pptpd-options file and change
#require-mschap-v2 to require-mschap-v2
#require-mppe-128 to require-mppe-128

i have also change ,removing # like this

refuse-pap

refuse-chap

refuse-mschap

newpeople update:

And be sure to remove the noauth option. In his case because it is before the require-mppe-128 and require-mschap-v2 it has no effect but if you still cant make it happen check for noauth and remove it.

3
On

Fisrt, you need check which side makes the connection fail, Client or Server? You can use another PC instead of phone to connect the pptpd server. If it fails too, the problem maybe in server side. You can find the log information in /var/log/syslog. Also, you may want to restart pptpd server with debug option to enable verbose log.

From your log, this is the cause:

Aug 26 14:44:51 jameshwart-System-Product-Name pppd[31321]: MPPE required, but MS-CHAP[v2] nor EAP-TLS auth are performed.

It says that your kernel does not have MPPE support.Do you have ppp_mppe enable as a module or compiled in your kernel? In your .config file for your kernel you would see something like

CONFIG_PPP_MPPE=m 

or

CONFIG_PPP_MPPE=y
0
On

I know this is an old question and this may not be applicable for this case but a simple solution I have found for vpn connection issues on android is to make sure power saving mode is turned off. I looked all over the internet to figure this out and discovered it by accident. Hope it helps someone else. I was using Betternet which is a great VPN service but it would not connect. I turned power saving mode off and it connected instantly.

1
On

It is a bit hard to guess with such little information. This is based on the assumption that your phone is connecting but you can't tell that it is because it is not able to access the internet or some other network resource.

However it seems likely that your phone may be connected to your pptp VPN but is just not routing the internet through it. You may need to setup a proxy on your ubuntu server and direct your phone to use that to access the internet.

To install tiny proxy run:

sudo apt-get install tinyproxy

For a tutorial on how to set it up see http://www.justinmccandless.com/blog/Set+Up+Tinyproxy+in+Ubuntu

Now for the phone there are a number of apps that can help you easily set your phone to use the proxy server you have just setup inside your vpn. I use ASProxy which can be found in Google Play. https://play.google.com/store/apps/details?id=com.Alsu.ASProxy&hl=en

This solution is just a guess though. Without more information on what you are trying to achieve and what you have done I am just guessing and may be off the mark.