今天在vps上装pptp ,和以往一样,只不过不是在自己的vps上,上次ssh代理被封ip,对我的身心造成了深深的影响,所以,这次拿网友放我这的vps来搭建vpn环境。pptp的搭建比openvpn容易多了。以下是我的配置过程,其实和网上差不多,centos6.4 搭建 centos 6.4 搭建pptp vpn ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64 centos6.4安装搭建pptp vpn服务的大致步骤简介,下面会有详细的步骤(我不喜欢写大纲,决定麻烦,但是有人还是看不懂,所以勉为其难的写了个,实在不会的,我在文章的后面提供一些网上的centos pptp vpn 一键安装包,有人写了就不必再写一遍了,一键安装包要是有问题,也别找我,新手想享受自己亲手一步步具体搭建过程的乐趣,就接着看看吧):
#########################################手动搭建配置pptp vpn 详细方法如下######## 第一步:检测是否符合pptp的搭建环境的要求
服务器版本:CentOs 6.4 xen vps
如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:
这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请vps空间商的技术客服为你的VPS打开TUN/TAP/PPP功能了,貌似有部分vps控制面板上提供打开TUN/TAP/PPP功能的按钮。
Cent os 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP,因此下面检查可以忽略:
http://www.dabu.info/?p=2178
检查PPP是否支持MPPE
用以下命令检查PPP是否支持MPPE:
http://www.dabu.info/?p=2178
如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。
第二步:
1.安装ppp和iptables
PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了
http://www.dabu.info/?p=2178
2.安装pptpd
刚才用了yum安装了ppp,但是这里有个问题,几乎大部分的人都会在这里遇到ppp和pptpd不兼容的错误。因为yum安装ppp,总是安装最新版本的ppp,而由于安装的ppp的版本不同,那么就需要安装对应版本的pptpd才行。(参考我的文章《ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64的解决办法及原因|大步's blog》) 我们要先查看已经安装的ppp的版本,在去找对应的pptpd版本。我手头刚好有两个vps,一个是前年装的pptp vpn,一个是一年后装的pptp vpn,所以,装的yum install ppp的版本不同。 使用下面的命令查看ppp的版本,前提你是yum安装的ppp。 旧的vps上的ppp版本显示: #yum list installed ppp 显示:
新的vps上的ppp版本显示; #yum list installed ppp 显示:
所以,要对根据ppp版本选择对应的pptpd版本。这里我主要列出常用的。
贴个ppp和pptpd各个版本的下载地址;http://poptop.sourceforge.net/yum/stable/packages/ 大家下载的时候注意,分清楚你系统的版本是64位的还是32位的。我个人建议ppp用yum安装,pptpd用rpm的安装,因为如果全都rpm或者源码安装,依赖关系很是烦人。文件名含有数字64的就是64位版本,没有的就是32位版本。可以用下面的命令查看自己的系统是32位还是64位的。
下面假设我这里的ppp是2.4.4版本,然后安装pptpd 第一种安装pptpd的方法是直接用yum安装,让电脑自动选择对应的版本: 先加入yum源:
然后用yum安装pptpd:
这是最省时间和力气的。余下的和手动安装没什么区别了。
第二种是手动安装pptpd包:
64位安装的时候如果出现:http://www.dabu.info/?p=2178
第三步:修改配置文件 1.配置文件/etc/ppp/options.pptpd
将如下内容添加到到options.pptpd中:
然后保存这个文件。 解析:ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器。 2.配置文件/etc/ppp/chap-secrets
chap-secrets内容如下:
3.配置文件/etc/pptpd.conf
#cp /etc/pptpd.conf /etc/pptpd.conf.bak 添加下面两行:
关键点:pptpd.conf这个配置文件必须保证最后是以空行结尾才行,否则会导致启动pptpd服务时,出现“Starting pptpd:”,一直卡着不动的问题,无法启动服务,切记呀!(相关文档可以查看:Starting pptpd: 运行不下去的原因) ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64
4.配置文件/etc/sysctl.conf
将net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1 保存修改后的文件
第四步:启动pptp vpn服务和iptables
经过前面步骤,我们的VPN已经可以拨号登录了,但是还不能访问任何网页。最后一步就是添加iptables转发规则了,输入下面的指令: 启动iptables和nat转发功能,很关键的呀: #/sbin/service iptables start //启动iptables #/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE 或者使用下面的一种: #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j SNAT --to-source 207.210.83.140 //注意:命令中的 "-o eth0"是指定网卡名称,如果是多个网卡,就根据需要将 -o eth0 改成你 -o ethXX (ehtXX是你网卡的名称) ,可以通过ifconfig 查看有哪那些连通外网的网卡,一般vps都是单网卡的,而且大都网卡默认名都叫eth0 。但是事情总是多样的,所以如果你的上网的网卡不是 叫 eth0 ,那么就必须去掉 -o eth0 。直接让系统判断你用的网卡,所以将上面的命令改成: iptables -t nat -A POSTROUTING -s 192.168.9.0/24 -j SNAT --to-source 207.210.83.140
//你需要将207.210.83.140替换成你的vps的公网ip地址,因为这里我写的是我的。还有就是有人说我这--to-source前只有一个横杠,其实是有两个横杠的。文章在编辑模式下显示是两个横杠,因为用的是英文输入法,所以,发表后就变成了一个横杆,而且在源码下复制粘贴也是一横,只有在编辑模式下才能看清楚是两横。但是可以明显看到to前面的那一横比source前的那横长一些,这些都是我操作记录下的命令,不会有错的。为了防止你们出错,我还是用不同的颜色标记吧。 这里我先前写的不是很详细,现在补上:
#/etc/init.d/iptables save //保存iptables的转发规则 #/sbin/service iptables restart //重新启动iptables
最后一步:重启pptp vpn
#############################################3 客户端如何拨号登陆vpn,我就不写了,大家可以自行google,因为系统那么多,我不可能xp,win7,centos,mac之类的每个都写,何况网上一大堆,只要你pptp vpn服务器搭建好了,客户端登陆的选择就是简单的事。如果这个也不知道,那我就没法了,自己动手吧。
多余的步骤:设置pptp vpn 开机启动 有的人懒的重启后手动开启服务,所以下面我再补上开机自动启动pptp vpn 和 iptables的命令 #chkconfig pptpd on //开机启动pptp vpn服务 #chkconfig iptables on //开机启动iptables
有问题请先看log,查google,百度,论坛,有的人连软件下载都不自己去搜索,对于这样的人,我也懒得理睬。
贴个openvz的pptp vpn 一件安装包吧:centos,fedora,redhat 6.x 使用的脚本(vps上从没安装过的可以试试这个脚本,不保证一定成功,因为我没测试,只是根据上面的文章内容写的,嫌手动安装难打字): 点击下载
复制下面代码到install.sh中,然后 sh isntall.sh。这个是只支持debian和ubuntu系列,centos不支持。
############################完#############################
如果一件安装包都不知道用,那就真的没法子了
FAQ: 1.报错:重启时候提示
# service pptpd 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即可。 (责任编辑:IT) |