安装相应的包
sudo apt-get install pptpd
修改配置文件pptpd.conf
sudo vim /etc/pptpd.conf
设置对应的VPN网络,localip是服务器的,remote是拨入的客户端ip
localip 192.168.0.1
remoteip 192.168.0.100-200
编辑配置文件
sudo vim /etc/ppp/pptpd-options
在配置中设置DNS服务器
ms-dns 8.8.8.8
ms-dns 8.8.4.4
修改用户配置文件chap-secrets
sudo vim /etc/ppp/chap-secrets
配置文件中格式,其中最后一项ip地址,若不设定,则由服务器分配
# client server secret IP addresses
$username pptp $password *
重启服务
sudo service pptpd restart
设置ip转发
sudo vim /etc/sysctl.conf
将转发设置为以下
net.ipv4.ip_forward=1
重新加载配置
sudo sysctl -p
设置iptables转发
sudo vim /etc/rc.local
将以下代码加在 exit 0 之前
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356
如果需要禁止同一用户同时多处登录,请编辑ip-up文件
sudo vim /etc/ppp/ip-up
加入以下代码
sleep 2
PID=$(cat /var/run/$PPP_IFACE.pid)
if [ $PID ]; then
PROCCESS="$(last | grep ppp | grep still | grep $PPP_IFACE)"
NAME=$(echo $PROCCESS |cut -d' ' -f1)
NUMLOGINS="$(last | grep ppp | grep still | grep -c $NAME' ')"
if [ $NUMLOGINS -gt 1 ]; then
kill $PID
fi
fi