Setting MTU size for PPTP server solves Windows browsing issues

After setting up pptpd on a cheap VPS sat in New York to gain access to Netflix USA, I noticed some problems with several websites when connected to the VPN on Windows. Strangely these issues can not be replicated using a Mac.

After a little bit of playing around, I noticed an interesting difference between a Windows and Mac connection in the ifconfig output:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.6.0.1  P-t-P:10.6.0.101  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1
          RX packets:126 errors:0 dropped:0 overruns:0 frame:0
          TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:14384 (14.3 KB)  TX bytes:6301 (6.3 KB)

ppp1      Link encap:Point-to-Point Protocol  
          inet addr:10.6.0.1  P-t-P:10.6.0.102  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:2412 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:1174836 (1.1 MB)  TX bytes:644382 (644.3 KB)

The ppp0 connection is a Windows machine and ppp1 is a Mac. For some reason the Windows machine is using an MTU of 1396 while the Mac is using 1496. It seems to be a common problem that a lower than normal MTU causes some websites not to load (at least there are numerous similar or related articles on Google).

Fortunately there is a simple fix, I just added this line to the bottom of /etc/ppp/ip-up:

/sbin/ifconfig $PPP_IFACE mtu 1500

Future connections now all use an MTU of 1500 and the browsing issues are gone (I’m using Ubuntu 14.04 Server for the pptpd server).

Share