原文参考:
https://cloud.tencent.com/developer/article/1446826
https://me.jinchuang.org/archives/517.html
安装检查
1. 在安装之前查看系统是否支持PPTP V**
modprobe ppp-compress-18 && echo success
应该输出”success”,如果不支持尝试安装:
yum install kernel-devel
2. 是否开启TUN/TAP:
cat /dev/net/tun
应该输出:
cat: /dev/net/tun: File descriptor in bad state
3. 是否开启ppp:
cat /dev/ppp
应该输出:
cat: /dev/ppp: No such device or address
确保满足上面3个条件,如果不满足,表示不能安装PPTP V。**
安装步骤
pptpd在epel仓库中,首先安装epel仓库:
yum install epel-release
安装需要的软件包:
yum install ppp pptpd net-tools iptables-services -y
配置pptpd
vim /etc/pptpd.conf
将里面的内容修改为:
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.0.6 # 设置pptp虚拟网卡接口IP地址(注意:不是服务器的公共IP)
remoteip 10.0.0.6-254 # 为拨入V**的用户动态分配的IP地址池,一般分配当前ip之后的即可
localip一般选用云服务器内网ip,查看方法为 输入如下命令:
ip addr
接着修改options.pptpd:
vim /etc/ppp/options.pptpd
内容修改为如下(很多注释可以选择删除或保留):
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8 #这里是设置windows连接时候的DNS首地址
ms-dns 8.8.4.4 #这里是设置windows连接时候的DNS备用地址
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
编辑用户名和密码
vim /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
user_test1 * 123456 *
注意:最后一个* 可以输入上面分配的地址池中的ip地址,这样每次就会固定
4. 开启IP转发
打开系统ipv4转发 sysctl.conf
vim /etc/sysctl.conf
将 net.ipv4.ip_forward = 0 修改为 net.ipv4.ip_forward = 1
然后运行命令:
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
sysctl -p # 使生效
配置防火墙:
systemctl stop firewalld
systemctl disable firewalld # 如果使用firewallid
service iptables save
service iptables stop
chkconfig iptables off
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
加入开机启动
echo "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
启动并加入开机启动
service pptpd restart
chkconfig pptpd on
2、禁用firewalld防火墙和安装需要的包
停止和禁用firewalld
systemctl stop firewalld
systemctl disable firewalld
增加epel yum源
yum install epel-release -y
安装需要的包
yum install ppp ppp-devel pptpd iptables iptables-services -y
3、修改配置文件pptpd.conf option.pptpd
vim /etc/pptpd.conf
找到此处去掉前面注释
localip xxx.xxx.xxx.xxx #自定义一个ip或者内网ip地址
remoteip 192.168.0.10-20 #自定义分配给客户端的网段和地址池
vim /etc/ppp/options.pptpd
修改下ms-dns,和添加一个日志文件,其他默认都开启的不用动即可
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 114.114.114.114
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
logfile /var/log/pptpd.log
4、修改用户认证配置文件chap-secrets
vim /etc/ppp/chap-secrets
添加用户格式:用户名 pptpd 密码 *
密码有特殊字符混合的需要用""引起来
Secrets for authentication using CHAP
#client server secret IP addresses
test * 123456 *
用户密码组合复杂性例子
feifei * “!QAZxsw2#EDC” *
Tx2022 * “TX@xxx66” *
5、打开系统ipv4转发 sysctl.conf
vim /etc/sysctl.conf
有此项的话修改数值为1 没有的新添加一条
net.ipv4.ip_forward=1
应用生效
sysctl -p
6、启动pptpd服务
systemctl start pptpd
7、开放需要的端口(iptables和云服务器的安全组),此步操作完就可以先测试下是否可以连接了
iptables添加入站规则,1723端口和gre协议(默认INPUT是允许所有的,可以不加)
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
保存规则
service iptables save
重启生效
systemctl restart iptables
8、增加转发规则,和修改mtu的大小,为了可以连上后上网
注意这里网段和上面配置文件(/etc/pptpd.conf)网段子网一致,eth0和本机网卡名称一致(本机只有eth0和lo)
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
保存规则
service iptables save
重启生效
systemctl restart iptables
修改MTU默认值1396为1500,在exit 0前面加一句
vim /etc/ppp/ip-up
#重启下pptpd服务
systemctl restart pptpd