CentOS 6 pptp 一键安装包,所有安装文件来源于官方网站,完美兼容32、64位
localip和remoteip改为对应自己的服务器和客户端的IP,然后复制内容另存为一个sh文件直接执行即可
yum remove -y pptpd ppp
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp
arch=`uname -m`
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.$arch.rpm
yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers dkms kernel_ppp_mppe ppp
rpm -Uvh pptpd-1.3.4-2.el6.$arch.rpm
mknod /dev/ppp c 108 0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "localip 107.6.45.234" >> /etc/pptpd.conf
echo "remoteip 107.6.45.2-254" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
pass=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass=$1
fi
echo "vpn pptpd ${pass} *" >> /etc/ppp/chap-secrets
iptables -t nat -A POSTROUTING -s 107.6.45.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
iptables -A FORWARD -p tcp --syn -s 107.6.45.0/24 -j TCPMSS --set-mss 1356
service iptables save
chkconfig iptables on
chkconfig pptpd on
service iptables start
service pptpd start
echo "VPN service is installed, your VPN username is vpn, VPN password is ${pass}"
常见错误解决
1:619错误
有些同学说要手动建立ppp文件,我觉得其实应该是检查iptables的NAT功能是否正常
用iptables -t nat -L 看看nat规则是否正常
有同学建议 mknod /dev/ppp c 108 0
但其实出现这问题的大部分都是本身已经存在这个文件会提示 mknod: `/dev/ppp’: file exists,
如果你不敢确认,那就完全也可以先用rm删除这个设备文件,然后再建个
另外确认net.ipv4.ip_forward=1是否生效
2:800错误
一般是vpn服务器关闭了,或者停止了,如果你是用域名访问vpn,也有可能是dns的解析除了问题
3:还有一种情况:就是登录和验证都正常,但就是访问不了页面
这种情况我碰到很多次,但我至今没找到确切的问题所在,我初步也是怀疑iptables的转发没能正常工作
大家不妨多看看log日志分析一下