Centos7如何搭建VPN服务器?(教程)
1、 先看看你的主机是否支持pptp,返回结果为yes就表示通过。
modprobe ppp-compress-18 && echo ok #返回OK
2、 是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过。
cat /dev/net/tun
3、 安装ppp , pptpd 和 iptables。
先更新一下再安装。
yum update
安装ppp。
yum -y install ppp
pptpd有可能安装不成功好多没有,所以先添加EPEL源,如果有直接跳过此步
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm
注意此链接一般不会失效,但假如不能用,可在此页下载后自行上传
检查是否添加到了源列表中
yum repolist
安装PPTPD
yum -y install pptpd
安装iptables。这是自带的,如果没有的话就安装。有跳过此步
yum install iptables-services yum install iptables
4、 配置pptpd.conf。
vi /etc/pptpd.conf #找到localip,去掉开始的那个#符号 localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245 #这些是默认的,一般不需要去修改,但如果云,可能本地IP要修改成云的内网IP remoteip分配给客户端的ip就是234到238之间,你也可以往大了写,看你的客户端有多少。
5、 配置options.pptpd。
vi /etc/ppp/options.pptpd #在末尾添加 ms-dns 8.8.8.8 #这是谷歌的,你也可以改成阿里巴巴的或者其它 ms-dns 114.114.114.114 #修改日志记录 nologfd logfile /var/log/pptpd.log
6、 配置连接VPN客户端要用到的帐号密码。
vi /etc/ppp/chap-secrets #格式很通俗易懂。 # client为帐号,server是pptpd服务,secret是密码,*表示是分配任意的ip # Secrets for authentication using CHAP # client server secret IP addresses count pptpd love0312com *
7、 配置sysctl.conf修改内核参数支持内核转发
vi /etc/sysctl.conf #添加一行 net.ipv4.ip_forward = 1 到末尾即可,然后保存 sysctl -p #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效
8、 修改防火墙设置
创建规则文件: touch /usr/lib/firewalld/services/pptpd.xml 创建后用vi编辑 vi /usr/lib/firewalld/services/pptpd.xml 输入以下内容并保存 <?xml version="1.0" encoding="utf-8"?> <service> <short>pptpd</short> <description>PPTP</description> <port protocol="tcp" port="1723"/> </service>
9、启动或重启防火墙
systemctl start firewalld.service 或firewall-cmd --reload
10、 添加服务
firewall-cmd --permanent --zone=public --add-service=pptpd
11、允许防火墙伪装IP
firewall-cmd --add-masquerade
12、开启47及1723端口
firewall-cmd --permanent --zone=public --add-port=47/tcp firewall-cmd --permanent --zone=public --add-port=1723/tcp
13、允许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
14、设置规则允许数据包由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
15、设置转发规则,从源地址发出的所有包都进行伪装,改变地址,由eth0发出
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.0/24
这时候是应该是可以连接了,但只能上服务器内网,外网应该会速度很慢,填加如下
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356
#注意这里网段和上面配置文件网段一致,eth0和本机网卡名称一致(本机只有eth0和lo) [root@VM_centos ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE #保存规则 [root@VM_centos ~]# service iptables save #重启生效 [root@VM_centos ~]# systemctl restart iptables #修改MTU默认值1396为1500,在exit 0前面加一句 [root@VM_centos ~]# vim /etc/ppp/ip-up ....... ifconfig $1 mtu 1500 exit 0 #重启下pptpd服务 [root@VM_centos ~]# systemctl restart pptpd
16、重启
systemctl restart pptpd
【结束】到此,VPN服务器搭建完成。
#停止和禁用firewalld [root@VM_centos ~]# systemctl stop firewalld [root@VM_centos ~]# systemctl disable firewalld #增加epel yum源 [root@VM_centos ~]# yum install epel-release -y #安装需要的包 [root@VM_centos ~]# yum install ppp ppp-devel pptpd iptables iptables-services -y
以下是查询和关闭防火墙的命令
1、命令行界面输入命令“systemctl status firewalld.service”并按下回车键。 2、然后在下方可以查看得到“active(running)”,此时说明防火墙已经被打开了。 3、在命令行中输入systemctl stop firewalld.service命令,进行关闭防火墙。 4、然后再使用命令systemctl status firewalld.service,在下方出现disavtive(dead),这权样就说明防火墙已经关闭。 5、再在命令行中输入命令“systemctl disable firewalld.service”命令,即可永久关闭防火墙。
声明
源码下载不顺利,比如源码在百度网盘的有时会被无故取消等,请联系QQ:46667551
本站大部分下载资源收集于网络,但除特别说明之外,基本全部亲自测试可用!
但由于某些源码的更新迭代,比如微信小程序官方接口的变动等原因,
如时间过长,可能会造成本可以使用的代码出现问题,下载前请斟酌!
本站资源仅供学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。
原文链接:https://www.love0312.com/685.html,转载请注明出处
上一篇:建站的准备工作