新睿云

> 弹性云服务器ECS > Linux云服务器是否能搭建vpn?

Linux云服务器是否能搭建vpn?

作者/来源:新睿云小编 发布时间:2020-03-12

郑重申明:本文用于记录、总结、分享云服务器自行搭建VPN的过程及方法。如将其作用于违反法律法规的事情,与本人无关。

1、查看当前系统版本,安装相应的软件包(此方法只在centos中测试通过)

#查看系统版本

cat /etc/redhat-release

a)centos版本小于7,安装以下软件

yum -y install ppp pptpd iptables

b)centos版本大于7,还需额外安装一下软件

yum update iptables

yum -y install iptables iptables-services

2、配置pptpd服务

a)配置pptpd服务ip,取消默认文件localip、remoteip前的#,也可自行设置。主要用于服务地址及客户端地址配置,客户端地址在后面配置防火墙策略至关重要

vi /etc/pptpd.conf

修改后(此处只截取了部分)

# (Recommended)

localip 192.168.0.1

remoteip 192.168.0.100-109,192.168.0.245

# or

#localip 192.168.0.234-238,192.168.0.245

#remoteip 192.168.1.234-238,192.168.1.245

b)配置ppp中DNS,增加8.8.8.8、8.8.4.4 GoogleDNS

vi /etc/ppp/options.pptpd

修改后(此处只截取了部分)

#ms-dns 10.0.0.1

#ms-dns 10.0.0.2

ms-dns 8.8.8.8

ms-dns 8.8.4.4

c)配置客户端用户

vi /etc/ppp/chap-secrets

修改后,分别为用户名、服务、密码、ip。(ip为 " * " 则代表所有ip均可访问)

# Secrets for authentication using CHAP

# client server secret IP addresses

root pptpd root *

3、开启内核转发

#查看内核配置(此处主要作用于修改内核转发)

cat /etc/sysctl.conf

#修改为允许转发(默认=0),如果没有自行添加即可

net.ipv4.ip_forward=1

#生效

sysctl -p

4、配置防火墙策略

#查看防火墙当前配置

iptables -L -n

#允许所有请i去

iptables -P INPUT ACCEPT

# 清空默认所有规则

iptables -F

# 清空自定义所有规则

iptables -X

# 计数器置0

iptables -Z

# 允许127.0.0.1访问本地服务

iptables -A INPUT -i lo -j ACCEPT

# 允许访问外部服务

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

# 允许 ping

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# 开启 ssh 端口

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 开启 pptpd 端口

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

#配置转发策略 192.168.0.* 到 MASQUERADE(会自动判断公网IP)

iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth0 -j MASQUERADE

#此处需要注意,我购置的ECS为专有网络,开通了公网弹性IP,但是ifconfig下是只有一块内网网卡显示。网上很多教程会有说明新睿云的服务器是双网卡,要修改成eth1,经过翻来覆去测试均已失败告终。此处我用了内网网卡eth0,搭建成功。

5、保存并测试

#保存iptables配置

service iptables save 或者 /etc/init.d/iptables save

#重启iptables服务

service iptables restart 或者 /etc/init.d/iptables restart

#重启pptpd服务,如果提示需要restart-kill,执行即可

service pptpd restart 或者 /etc/init.d/pptpd restart

6、设置开机自启

# 开机启动 iptables

chkconfig iptables on

# 开机启动 pptpd

chkconfig pptpd on

在架设VPN之前参考了网上大量的搭建教程,但是实际操作时还是遇到很多问题,在此把安装的步骤和问题都列出来,希望能帮到各位。

一、环境

服务器提供商:新睿云ECS云服务器

操作系统: CentOS 7.2 64位

1、先看看你的主机是否支持pptp,返回结果为yes就表示通过。

modprobe ppp-compress-18 && echo yes

2 、是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过。

cat /dev/net/tun

二、架设VPN

1、.安装ppp , pptpd

注意: 很多教程会要求安装 iptables 但centos7 已不再使用 iptables,所以这里不用安装 。

a.可以先更新一下再安装。

yum install update

b.安装ppp和pptpd

yum -y install ppp pptpd

2、配置pptpd.conf。

vim /etc/pptpd.conf # 找到localip,去掉开始的那个 # 符号

localip 192.168.0.1

remoteip 192.168.0.234-238,192.168.0.245

#这些是默认的,一般不需要去修改,分配给客户端的ip就是234到238之间,你也可以往大了写,看你的客户端有多少。

自动分配IP 

自动分配IP

3、配置options.pptpd

vim /etc/ppp/options.pptpd # 在末尾添加dns

ms-dns 8.8.8.8 #这是谷歌的,你也可以改成阿里巴巴的或者其它

ms-dns 8.8.4.4

配置options.pptpd 

配置options.pptpd

4、配置连接VPN客户端要用到的帐号密码。

vim /etc/ppp/chap-secrets #格式很通俗易懂。

# client为帐号,server是pptpd服务,secret是密码,*表示是分配任意的ip

# Secrets for authentication using CHAP

# client server secret IP addresses

count pptpd 771297972 *

5、配置sysctl.conf

vim /etc/sysctl.conf

# 添加一行 net.ipv4.ip_forward = 1 到末尾即可,然后保存

配置账号密码 

配置账号密码

sysctl -p # 运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效

内核生效 

内核生效

6、重启一下pptpd服务生效。

systemctl restart pptpd

7、检查是否启动

$ ps aux|grep pptpd

$ netstat -ntlp|grep pptpd

重启一下pptpd服务 

重启一下pptpd服务

8、到这里的话,如果centos7.2防火墙关闭(自己配置的防火墙好像是不起作用的,需要设置可自行百度),就应该能连接VPN成功了。可是新睿云服务器比较特殊,需要在云服务器管理后台配置安全策略。

步骤:登录新睿云管理后台 > 云服务器ECS > 安全组 > 防火墙规则。 pptpd 服务端口为 1723

创建策略安全组 

创建策略安全组

9、至于很多其他教程上,需要配置的 iptables 和 firewall 这里都不需要配置,只要配置安全规则就可以了。 ps:一直在这里跌坑,怎么都连接不上,最后终于找到问题所在了。

10、最后可以将pptp设置为开机启动

systemctl enable pptpd.service

11、附 window10 连接配置

Windows客户端配置 

Windows客户端配置

new year
在线客服   
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待