架设vpn是一个很折腾人的过程。下面转载的教程是可以一次安装成功的,百度到的好多教程貌似过时了,很多安装包下载不到。# V* R2 n2 M9 d& m& k) n
本次架设vpn成功的系统环境为80vps提供的产品,CentOS5 32bit系统,512M和1024M内存皆可。
* U& N" b0 V U6 f1 V3 t建议在CentOS系统初始情况下安装vpn,然后再安装wdcp等控制面板,如果出现安装顺利但无法连接的情况,可以检查1723端口是否打开,如果没打开,建议在wdcp里面手动添加防火墙规则并保存生效(有些网文提供的命令修改方法,可能因为参数不当而不生效!)
0 a* w0 g7 P( c/ Q o& o& {$ i$ D7 r9 \3 F& y, a" V0 b# p% F3 J
登陆SSH,检查VPS是否有必要的支持。很多人说CentOS下OpenVZ安装PPTP VPN必须要开启PPP和TUN。经过我的测试,只要开启了PPP即可,不需要TUN的支持。安装PPTP VPN需要开启PPP;安装OpenVPN需要开启TUN。 1、检测PPP是否开启,命令如下 # cat /dev/ppp 开启成功的标志:cat: /dev/ppp: No such file or directory 或者 cat: /dev/ppp: No such device or address,可以继续安装过程; 开启不成功的标志:cat: /dev/ppp: Permission denied,请联系服务商开启。 成功开启PPP以后,就可以安装了。 检测tun/tap是否开启 cat /dev/net/tun 显示结果为下面的文本,表明通过: cat: /dev/net/tun: File descriptor in bad state 上述两条只需一条通过,即可安装pptp。如果还有其它问题,或者请你的服务商来解决这个问题。 2、安装ppp和iptables。 yum install -y ppp iptables 3、安装pptp。 rpm -ivh http://acelnmp.googlecode.com/fi ... -1.rhel5.1.i386.rpm (CentOS 5 32位系统使用)rpm -ivh http://acelnmp.googlecode.com/fi ... .rhel5.1.x86_64.rpm (CentOS 564位系统使用) PS: CentOS6 安装上面的rpm 包会出现以下错误: error: Failed dependencies: ppp = 2.4.4 is needed by pptpd-1.3.4-1.rhel5.1.i386rpm -ivh ftp://ftp.pbone.net/mirror/ftp.s ... 3.3-1.rhl9.i386.rpm (CentOS6 适用)1 T- w3 g6 d' @& g) o+ c# `
4、配置pptp。首先我们要编辑/etc/pptpd.conf文件: vi /etc/pptpd.conf 把下面字段前面的#去掉即可: localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245 接下来再编辑/etc/ppp/options.pptpd: vi /etc/ppp/options.pptpd 去掉ms-dns前面的#,并修改成如下字段: ms-dns 8.8.8.8ms-dns 8.8.4.4 5、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件: vi /etc/ppp/chap-secrets 第一和第三个单词分别是用户和密码,注意都是区分大小写的:(此处搞错会导致651错误) crazy pptpd crazymima * 6、修改内核设置,使其支持转发。编辑/etc/sysctl.conf文件: vi /etc/sysctl.conf 将“net.ipv4.ip_forward”改为1: net.ipv4.ip_forward=1 同时在“net.ipv4.tcp_syncookies = 1”前面加# : # net.ipv4.tcp_syncookies = 1 保存退出,并执行下面的命令来生效它: sysctl -p 7、添加iptables转发规则。 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 12.34.56.78 (OpenVZ,12.34.56.78为你的VPS的公网IP地址) iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE (XEN) 保存iptables转发规则: /etc/init.d/iptables saveiptables转发规则写错了会出现错误678提示(亲历),可用iptables -F 删除旧规则再配置!iptables使用方法见http://hi.baidu.com/756091339/item/41c7515418213a474fff207b 重启iptables: /etc/init.d/iptables restart 8、重启pptp服务。 /etc/init.d/pptpd restart 9、设置开机自动运行服务。 chkconfig pptpd onchkconfig iptables on 如果出现错误619则输入命令 rm /dev/pppmknod /dev/ppp c 108 0 还不管用的话(有时出现错误651),请下载vps 上/var/log/messages 查看日志,最后发现: Jan 2 07:26:11 fr pptpd[1604]: CTRL: Starting call (launching pppd, opening GRE) Jan 2 07:26:11 fr pppd[1605]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.5 Jan 2 07:26:11 fr pptpd[1604]: GRE: read(fd=6,buffer=804fa20,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs Jan 2 07:26:11 fr pptpd[1604]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)Jan 2 07:26:11 fr pptpd[1604]: CTRL: Client X.X.X.X control connection finished logwtmp插件版本不兼容出错了!vi /etc/pptpd.conf找到logwtmp,在前面加#service pptpd restart 就解决了!!! 如果你需要图形化管理VPN的话,建议使用Webmin: rpm -ivh http://nchc.dl.sourceforge.net/p ... -1.510-1.noarch.rpm 注意:如果虚拟机内核不支持MPPE的话,无法使用加密,用WINDOWS默认VPN连接会显示“证书信任错误”。 解决方法:修改/etc/ppp/options.pptpd注释掉require-mppe-128这行,然后windows的vpn拨号的属性改为可选加密,再次连接就成功了。 另外附上有用命令: 使用命令查看pptpd服务进程、端口和接口 使用ps命令检查pptpd进程: ps -ef |grep pptpd 使用netstat命令检查pptpd运行的端口: netstat -nutap | grep pptpd 使用ifconfig命令查看ppp0接口 1 e" q& y* g: Y! u
|