CentOS6建立VPN脚本,centos安装pptp

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日志分析一下

打赏