OpenVZ 单网卡假设 VPN 服务器
OpenVZ 单网卡假设 VPN 服务器
1.首先检查你的vps主机的 TUN-TAP/PPP 有没有启用
cat /dev/net/tun
启用的话输出可能5花八门,反正不止一种啦,比如下面算正常
cat: /dev/net/tun: File descriptor in bad state
没启用的话显示权限不够,被拒绝,没启用显示如下
cat: /dev/net/tun: Permission denied
ppp用下面命令看
cat /dev/ppp
有下面输出就是可以!如果没有显示没有请不要惊慌,查看步骤11
cat: /dev/ppp: No such device or address
如果没有启用请向你的主机商提交一个ticket要求开通这两个服务
Hello
Could you enabled TUN-TAP and PPP for me? I want run pptp-vpn on my VPS.
Thank you.
开启后确认下可以开始正式安装
2.升级系统包
yum update -y
3.检查是否安装ppp iptables没有的话进行安装(CentOS是默认安装并开启防火墙的,第2行大可不必执行!)
yum install -y ppp
yum install -y iptables
4.安装pptpd
pptpd包自己找最新的哈 目录http://poptop.sourceforge.net/yum/stable/packages/,省事就直接复制下面的吧
rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
5.配置pptp
首先我们要编辑/etc/pptpd.conf文件:
vim /etc/pptpd.conf
把下面字段前面的#去掉即可:
localip 10.8.0.1
remoteip 10.8.0.234-238,10.8.0.245
接下来再编辑/etc/ppp/options.pptpd:
vim /etc/ppp/options.pptpd
去掉ms-dns前面的#,并修改成如下字段:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
找到require-mppe-128这行在前面加#
6.设置VPN帐号
我们需要编辑/etc/ppp/chap-secrets这个文件:
vim /etc/ppp/chap-secrets
直接输入如下字段,username,password可以换成其他字段:
username pptpd password *
7.修改内核设置,支持转发
编辑/etc/sysctl.conf文件:
vim /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
8.添加iptables防火墙转发(to-source前面的是两个半角减号!)
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -j SNAT –to-source 你的VPS主机ip
保存iptables转发规则:
/etc/init.d/iptables save
重启iptables:
/etc/init.d/iptables restart
9.重启pptp并设置自启动
/etc/init.d/pptpd start
chkconfig pptpd on
chkconfig iptables on
10.客户端数据加密选择无/可选加密,请两种都试一下。
11.发现619错误,解决如下
(1)如果执行cat /dev/ppp没有不存在,就执行下面,否则不执行
rm -r /dev/ppp
(2)执行
mknod /dev/ppp c 108 0
嫌麻烦的就复制下面命令一键执行吧,注意该替换的要替换注意红色是双减号,连不上的解决方案参照步骤11。
VPN_IP=1.2.3.4
VPN_SERVER_NO=1
yum update -y
yum install -y ppp
yum install -y iptables
rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
echo “localip 10.$VPN_SERVER_NO.0.1″ >> “/etc/pptpd.conf”
echo “remoteip 10.$VPN_SERVER_NO.0.151-200,10.$VPN_SERVER_NO.0.245″ >> “/etc/pptpd.conf”
sed -i ‘s#require-mppe-128#\#require-mppe-128#’ /etc/ppp/options.pptpd
sed -i ‘s#\#ms-dns 10.0.0.1#ms-dns 8.8.8.8#’ /etc/ppp/options.pptpd
sed -i ‘s#\#ms-dns 10.0.0.2#ms-dns 8.8.4.4#’ /etc/ppp/options.pptpd
echo “username pptpd password *” >> /etc/ppp/chap-secrets
sed -i ‘s#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#’ /etc/sysctl.conf
sed -i ‘s#net.ipv4.tcp_syncookies = 1#\#net.ipv4.tcp_syncookies = 1#’ /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 10.$VPN_SERVER_NO.0.0/16 -j SNAT –to-source $VPN_IP
/etc/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/pptpd start
chkconfig pptpd on
chkconfig iptables on
修改日志
V1.2 加入命令一键复制执行
(全文完,欲知与Freeradius 2 和Mysql集成的请点击这里 )