一、检查1.0 # modPRobe ppp-compress-18 && echo ok(用模块方式支持MPPE加密模式浏览,如果内核支持检测不到。)
这条执行执行后,显示“ok”则表明通过,如果显示“Module ppp_mppe not found.”,那我们先手动升级mppe 1)首先切换到 cd /tmp 目录 2)下载:
wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm wget http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
dkms是一个新的软件,能让你在不编译内核的基础上,外挂一些内核的模块。 kernel_ppp_mppe就是mppe支持的内核模块了。 3)安装
rpm -ivh dkms-2.0.17.5-1.noarch.rpm rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
以上二个是为CENTOS加载MPPE[MICROSOFT的加密协议] ..不安装的话就不能使用加密连接
4)如果没有出现错误,gcc is needed by kernel_ppp_mppe-1.0.2-3dkms.noarch,则跳过这一步
yum -y
install
gcc gcc-c++
ps:(rpm的安装方式比较原始,如果依赖的库不存在,就是提示错误;yum的安装方式相对先进,如果依赖的库不存在,就会关连下载安装
网上有很多用rpm的方式装gcc坑了我不少啊,老师not found such file,不知道我等小白只懂得复制粘贴,我去哪给你找这个file再rpm安装啊)
成功之后,我们再安装刚才失败的那一步,
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
2.0 检查ppp和tun有没有启用
cat /dev/ppp cat /dev/net/tun
显示结果为:
则通过,否则
你可以给VPS提供商Submit 一个 Ticket请求开通:
--结束
二、安装ppp和iptables。默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有。我们输入下面的命令来确认,如果没有则进行安装,有的话系统不会做任何动作:
yum install -y ppp iptables
三、安装pptp。这个软件在yum源里是没有的,我们需要手动下载。我们先切换到tmp目录:
#cd /tmp
然后执行下面的命令来下载pptp安装包:
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
如果你的CentOS是32位的,则执行32位的那条指令;如果是64位的CentOS,则执行64位的那条指令。注意不要搞错了。
接下来安装pptp,同样分32位和64位系统:
#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
1)出现” ppp = 2.4.4 is needed by pptpd-1.3.4-1.rhel5.1.x86_64“的错误
运行命令,查看ppp版本:yum list installed ppp
结果显示:ppp.x86_64 2.4.5-5.el6
在网上搜索了一下ppp跟pptp版本的对应关系如下:
ppp 2.4.4——————>pptpd 1.3.4
ppp 2.4.5——————>pptpd 1.4.0
也就是说我们之前安装的pptpd1.3.4的版本太低了不行,要1.4.0的才行。
看来只能让电脑自动选择对应的pptpd版本了。
首先先加入yum源:#rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
然后用yum安装pptpd:
#yum install pptpd
一般电脑都会成功安装pptpd,
结果显示pptpd.x86_64 1.4.0-1.el6
四、修改配置文件
1.0配置文件/etc/ppp/options.pptpd
#cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
先备份一个文件到bak,在再原来的文件上修改
#vim/etc/ppp/options.pptpd
在末尾加入,两行google的dns服务器。
ms-dns 8.8.8.8 ms-dns 8.8.4.4
在这里有些朋友会不懂得编辑加入这两行数据,补补编辑的命令吧:
1.0 按i可以进入编辑模式(左下角会有--insert--标记),要想结束编辑可以按esc可以进入命令模式,在命令模式下输入 : 进入末行模式 。
2.0 xshell 保存文件常用命令保存,但不退出 vi:w
保存并退出 vi:wq
退出 vi,但不保存更改:q!
用其他文件名保存:w filename
在现有文件中保存并覆盖原文件:w! filename
最好打开这个文件里的debug选项(去掉debug前面的“#”),以方便我们在出错的查看日志排错。错误日志在/var/log/messages里,用命令:cat /var/log/messages | grep pptpd 查看有关PPTP的错误信息
2.配置文件/etc/ppp/chap-secrets
#cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak #vim/etc/ppp/chap-secrets
# Secrets for authentication using CHAP# client server secret IP addresses
name pptpd pwd *
格式:用户名+空格+pptpd+密码+*,*表示对任何ip都可以使用这个vpn,记得不要丢了这个星号。
一行表示一个账户密码,可以多行,如果前面自动补了#记得删除#,因为#表示注释。
3.配置文件/etc/pptpd.conf
#cp /etc/pptpd.conf /etc/pptpd.conf.bak#vim/etc/pptpd.conf
添加下面两行:
localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245//表示vpn客户端获得ip的范围
关键点:1.pptpd.conf这个配置文件必须保证最后是以空行结尾才行,否则会导致启动pptpd服务时,出现“Starting pptpd:”,一直卡着不动的问题,无法启动服务,切记呀!2.这里的IP段设置,将直接影响后面的iptables规则添加命令。
4.配置文件/etc/sysctl.conf
#vim/etc/sysctl.conf //修改内核设置,使其支持转发
将net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
保存修改后的文件,
并执行下面的命令来生效它:
#sysctl -p
接着又蹦出了下面的错误:(有错误我们一定先解决错误,对吧)
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown keyerror: "net.bridge.bridge-nf-call-iptables" is an unknown keyerror: "net.bridge.bridge-nf-call-arptables" is an unknown keynet.netfilter.nf_conntrack_max = 64000error: permission denied on key 'net.nf_conntrack_max'
又在网上七找八翻的终于找到了,据说是openvz模版的问题(谷歌翻译是这样说的),要进行修复操作, 执行下面四个命令
修复modprobe的:
rm -f /sbin/modprobe ln -s /bin/true /sbin/modprobe
修复sysctl的:
rm -f /sbin/sysctl ln -s /bin/true /sbin/sysctl
再次执行
#sysctl -p
好了,终于没报错了。
五、启动pptp与iptables
1.0 启动pptp
#service pptpd start
显示ok,表明成功,到这一步我们终于可以连上vpn啦,赶紧测试一下吧(能连接上去,但是还没有网速)
连接提示:
ip:你vps的ip
用户名,密码:刚才在/etc/ppp/chap-secrets里面设置,忘记了的可以运行一下命令查看
#vim /etc/ppp/chap-secrets
2.0启动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
(为什么我的网卡就叫venet0呢!!!所以我决定采用这种方式iptables -t nat -A POSTROUTING-s 192.168.9.0/24 -j SNAT --to-source 207.210.83.140)
接着
#/etc/init.d/iptables save //保存iptables的转发规则
#/sbin/service iptables restart //重新启动iptables
最后一步:重启pptp vpn
#service pptpd restart
如果你走到了这一步恭喜你,vpn已经配置成功啦,赶紧上Google测试一下吧。
另外:可以设置pptp vpn 开机启动
有的人懒的重启后手动开启服务,所以下面我再补上开机自动启动pptp vpn 和 iptables的命令
#chkconfig pptpd on //开机启动pptp vpn服务
#chkconfig iptables on //开机启动iptables
最后感谢@大步:http://www.dabu.info/centos6-4-structures-pptp-vpn.html
@逍遥:http://blog.xaoyo.net/post/359/
新闻热点
疑难解答