对于从事互联网行业的工作者来说,Windows系统或者安卓苹果手机使用PPTP/L2TP设置切换IP地址是最常用的也都会设置。那么如果是作为企业客户使用Centos系统做数据抓取想要实现动态地址又如何设置PPTP么?下面的教程值得大家看一看。
1、准备一个CentOS7服务器
2、检查是否支持PPTP
modprobe ppp-compress-18 && echo ok #返回OKzgrep MPPE /proc/config.gz #返回CONFIG_PPP_MPPE=y 或 =mcat /dev/net/tun #返回cat: /dev/net/tun: File descriptor in bad state
以上三条命令满足一条即为支持PPTP
3、安装PPP
4、安装PPTPD
4.1、添加EPEL源:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
4.2、安装EPEL源:
rpm -ivh epel-release-latest-7.noarch.rpm
4.3、检查是否已添加到源列表中:
4.4、更新源列表:
4.5、安装PPTPD:
5、编辑/etc/pptpd.conf设置内网IP段
最后IP设置改为:
localip 192.168.0.1remoteip 192.168.0.214,192.168.0.245
6、编辑/etc/ppp/options.pptpd
6.1、更改DNS项:
ms-dns 8.8.8.8 ms-dns 8.8.4.4
6.2、修改日志记录:
nologfdlogfile /var/log/pptpd.log
7 、编辑/etc/ppp/chap-secrets设置PPTP账号密码
用户名 pptpd 密码 *//每个字段之间用tab键隔开 *表示用任意IP连接PPTP都可以
样例:登录账号为root 密码为123 这样写:
8 、编辑/etc/sysctl.conf修改内核参数支持内核转发
net.ipv4.ip_forward=1输入命令生效:sysctl -p
9、修改防火墙设置:
9.1、创建规则文件:touch /usr/lib/firewalld/services/pptpd.xml
9.2、修改规则文件
<?xml version="1.0" encoding="utf-8"?><service> <short>pptpd</short> <description>PPTP</description> <port protocol="tcp" port="1723"/></service>
9.3 、启动或重启防火墙:
systemctl start firewalld.service或firewall-cmd --reload
9.4、添加服务:
firewall-cmd --permanent --zone=public --add-service=pptpd
9.5、允许防火墙伪装IP:
firewall-cmd --add-masquerade
9.6、开启47及1723端口:
firewall-cmd --permanent --zone=public --add-port=47/tcpfirewall-cmd --permanent --zone=public --add-port=1723/tcp
9.7、允许gre协议:
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPTfirewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT
9.8、设置规则允许数据包由eth0和ppp+接口中进出
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPTfirewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
9.9 、设置转发规则,从源地址发出的所有包都进行伪装,改变地址,由eth0发出:
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.0/24
10、重启服务器:
firewall-cmd --reloadsystemctl restart pptpd