pptp

Install pptpd service

yum install ppp iptables pptpd -y

configure pptpd

  • configure /etc/pptpd.conf
vim /etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

configure dns

vim /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

configure user and password

vim /etc/ppp/chap-secrets
#Username  Server  Secret  Hosts
"user1" "*" "password1" "*"
"user2" "*" "password2" "*"

configure /etc/sysctl.conf

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p

startup pptpd service

systemctl start pptpd
systemctl enable pptpd

打开防火墙

firewall-cmd --add-port=1723/tcp --permanent
firewall-cmd --reload

additional fuction

如果你需要连接这台服务器的vpn客户端可以通过这台服务器来访问外网,那么你需要做如下设置

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source $公网IP

在阿里云的服务器上,公网IP是直接就在服务器里的一张网卡上了的,所以直接用上面的方法是可以的,但是如果环境不在阿里云,比如在AWS上,公网IP是没有直接出现在服务器的网卡上的,所以在AWS上,后面的那个IP不能写公网IP,而要写内网IP,写公网IP就不行,在aws上我写的是iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT –to-source 172.31.24.107 ,而后面这个IP,就是我服务器上的内网IP,也是除了127.0.0.1外唯一的IP。

使用的端口是tcp 1723, 如果有使用防火墙,注意防火墙的设置。

firewalld设置

如果使用了firewalld防火墙,可以参考进行如下设置

启动或重启防火墙:

systemctl start firewalld.service
firewall-cmd --reload

允许防火墙伪装IP:

firewall-cmd --add-masquerade

开启1723端口:

firewall-cmd --permanent --zone=public --add-port=1723/tcp

允许gre协议:

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT

设置规则允许数据包由eth0和ppp+接口中进出

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT

设置转发规则,从源地址发出的所有包都进行伪装,改变地址,由eth0发出:

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.0/24

重启服务器:

firewall-cmd --reload
systemctl restart pptpd

pptp客户端

pptp ubuntu 客户端

安装软件

sudo apt-get install pptp-linux

连接服务

pptpsetup -create vpn -server 47.75.0.56 -username alvinguest -password bemyguest -encrypt -start
route add -net 0.0.0.0 dev ppp0

以后的启动可以使用下面的命令:

pppd call vpn

其他:

pon vpntovps #连接
poff #断开VPN

centos 客户端

安装软件

yum install pptp-setup

连接服务器

pptpsetup -create vpn -server diana.alv.pub -username alvinguest -password bemyguest -encrypt -start

以后的启动可以使用:

pppd call vpn
route add -net 0.0.0.0 dev ppp0

其他:

pon vpntovps #连接
poff #断开VPN