本协议属于VPN,因此如果您部署的是云服务器,请确保服务商是否允许搭建或提前咨询服务商说明用途,避免产生误解。本文章只提供搭建此VPN教程。
支持开放TCP:1723端口(必须)
支持CentOS 7 系统(必须)
终端输入指令
yum install -y ppp pptpd
回显如下图所示,表示PPTP服务端安装成功。
执行vi /etc/pptpd.conf
命令, 编辑配置文件,删除命令前面的“#”,使下列两行命令可以执行。输入:wq
命令保存退出。
vi /etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
localip和remoteip分别是VPN的网关地址和VPN拨号时获取的地址段。;请确保修改符合规定,注意网关和分配地址应当处于同一个IP端
执行vi /etc/ppp/options.pptpd
命令,找到ms-dns并修改为223.5.5.5
和223.6.6.6
。删除命令前面的“#”。输入:wq
命令保存退出。
vi /etc/ppp/options.pptpd
IP地址223.5.5.5和223.6.6.6是阿里云的公共DNS服务器地址,您可以根据需要调整为其它公共DNS服务地址。
执行vi /etc/ppp/chap-secrets
命令,设置pptpd的用户名和密码。根据需要添加账号,一行只添加一个用户账号。按照用户名 pptpd 密码 IP地址
格式输入,每一项用空格隔开。输入:wq
命令保存退出。
vi /etc/ppp/chap-secrets
“*”代表分此用户的IP,如果需要固定此用户IP可以输入。否则将代表自动分配,并且支持多用户同时连接,请注意如果自动分配的IP可能会随时变动。
本人测试如果不设置MTU也能正常打开网页,但是为了不出其它情况建议进行设置。
执行vi /etc/ppp/ip-up
命令,设置最大传输单元MTU。在命令符[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@”
下方添加ifconfig ppp0 mtu 1472
。
1.终端输入
vi /etc/ppp/ip-up
2.添加命令
ifconfig ppp0 mtu 1472
执行vi /etc/sysctl.conf
命令,编辑配置文件,添加net.ipv4.ip_forward = 1
配置,输入:wq
命令保存退出。
1.终端输入
vi /etc/sysctl.conf
2.添加命令
net.ipv4.ip_forward = 1
执行sysctl -p
命令,使修改后的参数生效。
3.终端输入
sysctl -p
yum install iptables-services
以下命令中的IP,如果修改过地址段,也需要同步修改
2.1 终端输入
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
2.2 终端输入(可选)
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source <外网网卡IP>
外网网卡IP可以输入 ifconfig 查看 大部分云服务器采用VPC网络,一般服务器网卡显示的为内网IP,同时这条规则就是将VPN网址转发至外网网卡以确保VPN用户可以联网
2.3 执行如下命令,保存设置。
service iptables save
2.4 客户端之间互相通信(可选)
终端输入
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT
如果对PPTP配置文件做修改包括增加用户,必须重启才可以生效,绝大部分用户后期连不上都是因为没有重启PPTP。
终端输入
systemctl restart pptpd
依次执行如下命令,设置pptpd和iptables自启动。
systemctl enable pptpd.service systemctl enable iptables.service
1.安装iptables服务
yum -y install iptables-services
2.将相关模块加载到内核中(永久添加)
cat >>/etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
EOF
3.检查是否启动完成
lsmod |egrep 'filter|nat|ipt'
必须有:iptable_nat 和 iptable_filter
4.关闭firewalld防火墙 --- cenos6好像默认没有这个服务,这一步就可以省略
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld --- 检查一下
5.开启iptables服务
systemctl start iptables.service
systemctl enable iptables.service
systemctl status iptables.service --- 检查一下
7.添加端口映射
固定公网IP映射,分两个步骤,举例:公网IP:10.10.10.1 服务器内网IP:192.168.7.1,PPTP拨号IP:192.168.0.1
第一步首先将服务器内网网卡的IP地址进行端口映射,
第二步将PPTP拨号获取到的IP地址映射到服务器内网网卡IP上
先将192.168.0.1端口映射到服务器内网192.168.7.1上,然后将192.168.7.1上的端口映射到公网IP10.10.10.1,以下为映射命令
iptables -t nat -A PREROUTING -d <公网固定> -p tcp --dport <对外端口> -j DNAT --to-destination 服务器内部IP:内部端口
iptables -t nat -A PREROUTING -d <服务器内部IP> -p tcp --dport <对外端口> -j DNAT --to-destination PPTP拨号IP:内部端口