centos6中安装pptp vpn的方法

作者: aries 分类: 杂七杂八 发布时间: 2015-01-22 09:51 ė 2737次浏览 6 0评论

首先需要验证是否开启了ppp,一般只有VPS才需要验证,自己的服务器肯定是开启的。

# cat /dev/ppp 
cat: /dev/ppp: No such device or address

如果出现以上提示则说明ppp是开启的,可以正常架设pptp服务,若出现Permission denied等其他提示,你需要先去VPS面板里看看有没有enable ppp的功能开关,如果没有则需要发个ticket给你的提供商,让他们帮你开通,否则就不必要看下去了,100%无法成功配置PPTP。

修改内核,使其支持包转发

# vi /etc/sysctl.conf 
将net.ipv4.ip_forward的值从0改为1,否则服务器将不会进行包转发操作 
# sysctl -p 
使内核配置生效
这里注意,有可能会出下在的错误:

出了错误也不用怕,执行下面的命令:

modprobe bridge
lsmod|grep bridge

但是执行第一条命令又出问题了

FATAL: Module bridge not found.

这也没啥,修复一下

rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe 
#再修复sysctl
rm -f /sbin/sysctl  
ln -s /bin/true /sbin/sysctl

OK了
安装PPP和iptables

# yum -y install ppp iptables
如果你需要用户连接到你的服务器后可以访问外网,则iptables是必要的,它主要用来做地址转换,将内网IP转换成公网IP(NAT),从而实现上网。否则用户只能访问你服务器上的内网。

安装完成后显示

Installed:
  ppp.i686 0:2.4.5-5.el6
这里ppp和pptp有一个版本对应的关系,这里我主要列出常用的。
ppp 2.4.4——————>pptpd 1.3.4
ppp 2.4.5——————>pptpd 1.4.0

下载地址在这里:http://poptop.sourceforge.net/yum/stable/packages/ 安装pptp

rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.i686.rpm

64位系统用以下命令安装,上面针对32位用户

rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

由于yum源中没有pptpd这个包,所以这种安装方式是必要的,你也可以自己去寻找软件包,注意32位系统和64位系统需要选择各自的软件包

安装时如果出现

/usr/bin/perl is needed by pptpd-1.4.0-1.el6.i686

说明你需要安装perl

执行以下命令:
yum  -y install perl

配置pptp

# vi /etc/pptpd.conf

打开配置文件后,在最下面找到

#localip 192.168.0.1 
#remoteip 192.168.0.234-238,192.168.0.245 
将注释去掉,并改成你自己想要设置的IP段 
localip就是指定你服务器的内网IP地址,其实即便网卡没有配置成这个地址也无所谓 
remoteip就是用户连接到你的服务器后,服务器为用户分配的ip地址范围,注意格式。
localip 192.168.1.254 
remoteip 192.168.1.1-253

配置options.pptpd文件

# vi /etc/ppp/options.pptpd 
打开后,找到下面字段,去掉注释,并修改成你想要为用户分配的dns服务器,一般指定google的即可 
ms-dns 8.8.8.8 
ms-dns 8.8.4.4

配置iptables转发规则

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source XX.XXX.XXX.XXX(你的公网IP)

以上命令的作用就是让192.168.1.0这个段的ip地址,可以通过XX.XXX.XXX.XXX这个公网地址上网。
你需要将192.168.1.0/24替换成你在pptp.conf中设置的ip段和子网掩码,将XX.XXX.XXX.XXX替换成你服务器自己的公网ip地址,否则拨上来的用户是没有办法上网的。 (注意也要把pptp的端口1723加到iptables中)

# service iptables save

将新增的转发规则写入文件保存,不执行此命令,服务器重启后上面的转发规则就没了

清空iptables转发规则

# iptables -F -t nat 
# iptables -X -t nat 
# iptables -Z -t nat

如果不小心配置了错误的转发规则可以使用以上三条命令清空

# service iptables save

清空后别忘了再次使用保存命令将清空后的配置写入文件,否则重启后上次配置的转发规则又回恢复。

添加VPN账号密码
以上配置完成后,我们就可以添加VPN账号密码进行测试了

# vi /etc/ppp/chap-secrets
需要添加的4个字段分别为用户名,服务,密码,ip地址(如果为*,则表示随机分配,范围即为你在pptp.conf中的设置)

如:

username pptpd password *

保存以后我们就可以启动相关服务进行测试了。

启动相关服务

# service pptpd start 
# service iptables start

此时就可以在另一台机器上建立VPN来测试了

将服务配置为开机自动启动

# chkconfig pptpd on 
# chkconfig iptables on
其他提示:

1.报错:重启时候提示

# service pptpd restart
Shutting down pptpd: [失败]
Starting pptpd: [失败]
Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results. Use restart-kill to
destroy existing connections during a restart.

解决办法:根据提示,可能是你重启pptpd服务的时候,没有切断已经存在的连接,所以新的连接会被分配为相同的ip地址,导致一些不可预料的问题。所以你重启 pptpd服务前,先用下面的命令断开当前存在的连接:#service pptpd restart-kill,然后再#service pptpd start
2.有的vps不支持加密连接,导致不能拨号成功登陆vpn。
解决办法:是编辑/etc/ppp/options.pptpd(vim /etc/ppp/options.pptpd),在require-mppe-128前面加个#(# require-mppe-128);
在windows的VPN连接属性里,加密方式选择为可选加密,并允许未加密的密码。
3.能够直接用域名作为vpn的拨号地址,而不用vps的ip。因为ip不方便记忆,我自己也记不住自己的服务器的ip。
解决办法:去dns里面设置,将域名设置为A记录,这样就可以直接用域名作为vpn的服务器的地址了。
4.有的链接 pptp vpn时候失败,提示619.
解决办法:执行下面的命令:

# rm -r /dev/ppp
# mknod /dev/ppp c 108 0
然后重启VPS即可。
换一个
暂无评论
Ɣ回顶部