在ubuntu14.04下安装pptp vpn服务

head_image
最近自己想搭一个vpn服务给手机用,网上一搜教程一大堆,但是也有一些坑,还好找到一个靠谱的搭建教程,以下就是我的搭建过程。

需要

一台能访问外网的服务器,还有。。。没有了。

什么你没有服务器,好吧,买一个吧,推荐一个国外的vps,因为只需要搭建一个vpn所以买个低配的就行了.

开始

第一步

ssh上去,首先安装pptp

1
2
sudo apt-get update
sudo apt-get install pptpd

第二步

安装完后编辑pptp.conf配置文件

1
sudo vi /etc/pptpd.conf

在当前文件下写入以下配置

1
2
3
4
option /etc/ppp/pptpd-options                    #指定PPP选项文件的位置
debug #启用调试模式
localip 192.168.0.1 #VPN服务器的虚拟ip
remoteip 192.168.0.200-238,192.168.0.245 #分配给VPN客户端的虚拟ip

第三步

编辑PPP选项配置文件

1
sudo vi /etc/ppp/pptpd-options

写入以下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name pptpd                      #pptpd服务的名称
refuse-pap #拒绝pap身份认证模式
refuse-chap #拒绝chap身份认证模式
refuse-mschap #拒绝mschap身份认证模式
require-mschap-v2 #允许mschap-v2身份认证模式
require-mppe-128 #允许mppe 128位加密身份认证模式
ms-dns 8.8.8.8 #使用Google DNS
ms-dns 8.8.4.4 #使用Google DNS
proxyarp #arp代理
debug #调试模式
dump #服务启动时打印出所有配置信息
lock #锁定TTY设备
nobsdcomp #禁用BSD压缩模式
logfile /var/log/pptpd.log #输出日志文件位置

第四步

建立你的vpn的账户,编辑用户配置

1
sudo vi /etc/ppp/chap-secrets

添加的格式如下

#用户名     服务类型     密码      分配的ip地址

test                  *            1234             *

重启pptpd

1
sudo service pptpd restart

第五步

配置网络和路由规则 设置ipv4转发

1
2
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl -p

sudo sysctl -p 使用这条命令的时候可能会报错
error: permission denied on key ‘net.nf_conntrack_max’

解决办法,运行完下面的命令后再执行

1
2
3
4
rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe
rm -f /sbin/sysctl
ln -s /bin/true /sbin/sysctl

第六步

设置iptables, 首先是使用ifconfig来查询你的外网网卡是哪个,我这里是venen0,查看到你的网卡后将你的网卡名替换到下面的命令中

1
2
sudo iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o venen0 -j MASQUERADE

因为iptable的配置在服务器重启后都会重置,所以我们可以将当前的命令加入到/etc/rc.local中这样每次启动都会执行

结束

搭建完成现在可以放心使用,如果发现可以连接上vpn但是访问不了外网,那就可能是第六步iptables的配置有问题,建议换个网卡名试试。

头图来自海外头条 侵删