Ubuntu16.04搭建PPTP服务

出处:https://blog.csdn.net/qq_26651063/article/details/90239671

检测服务器是否支持MPPE模块
sudo modprobe ppp-compress-18 && echo MPPE is ok

如果输出:MPPE is ok,则说明服务器的linux内核支持MPPE模块,否则请升级linux内核到2.6.15以上版本

安装PPTP

sudo apt-get update

sudo apt-get install pptpd

配置PPTP

编辑pptpd.conf文件(以下操作基本都需要sudo,建议sudo -s临时取得管理员权限后操作)

sudo vim /etc/pptpd.conf

找到下图的内容,取消注释,修改ip(或者直接参照下面的说明在末尾直接添加)

这一步的作用是配置VPN虚拟网络的主机ip(网关)和这个虚拟主机分配给其他设备的虚拟ip 段。

注意这个VPN虚拟ip主机和我们的服务器的ip没有关系,可以任意设置,ABC三类的内网地址都可以。而且最好避免和服务器所在网段内的其他设备ip冲突。

里面有两个参数:localip 和 remoteip

localip 192.168.88.1 ---(要填内网ip)表示分配给服务器的内部网关地址。

Remoteip 192.168.88.2-255 ----当客户机通过pptp连接到vpn后所能 拿到的ip地址范围,默认从第一个开始分配给客户

修改chap-secrets文件,添加可以登录的用户

sudo vim /etc/ppp/chap-secrets

client server secret IPaddresses ---标题
name pptpd password * ---如果不指定ip,用*表示

红色字根据自己喜好填写。分别是指用户名和密码。在登录vpn账号时要用到

下面是一个测试的示例

设置DNS解析

sudo vim /etc/ppp/pptpd-options

找到ms-dns,取消注释,并修改相应的dns(南京电信dns:218.2.135.1)

ms-dns 218.2.135.1

开启转发功能(必须,否则无法连接外网)

sudo vim /etc/sysctl.conf

取消以下内容的注释(打开内核ip转发)

net.ipv4.ip_forward=1

更新配置

sudo sysctl -p

安装iptable

sudo apt-get install iptables

开启gre协议并打开服务器47,1723号端口

sudo iptables -A INPUT -p gre -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT

开启NAT转发(请先看红色注意部分)

sudo iptables -t nat -A POSTROUTING -s 192.168.88.1/24 -o eno1 -j MASQUERADE

注意:上面指令中ip要填写部署pptp步骤中设置的localip,也就是虚拟vpn的主机的ip,上面设置的是192.168.2.1,192.168.2.1/24和192.168.2.1-255等价

eno1表示当前服务器的网卡,这里不同机器可能不一样,可以通过ifconfig指令进行查询,之后修改成对应的设备名称即可

POSTROUTING参数表示,指定当数据包离开服务器的时候,对数据包进行处理

MASQUERADE这个参数的意思就是即将从服务器封包出去(-o)的那块网卡上的IP

iptables永久生效

sudo iptables-save

重启服务生效

service pptpd restart

添加开机自启

sudo vim /etc/rc.local

在exit 0 之前添加service pptpd restart

文档更新时间: 2021-02-17 20:10   作者:admin