阿里云ECS架设VPN过程总结

原文地址: http://blog.csdn.net/johnnycode/article/details/45543157

最近开发移动项目,数据库服务是架设在电信服务器上,可怜我的联通网络本地调试直接x碎了一地!!

度娘相关资料后,最终决定在阿里云ECS上架设VPN作为跳板来访问电信服务器!

一.原理

1.阿里云ECS上架设VPN.

2.本地连接使用VPN拨号到阿里云ECS.

3.使用阿里云ECS网络访问电信服务器.

使用VPN前效果

64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2505 ttl=115 time=257.393 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2506 ttl=115 time=254.470 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2507 ttl=115 time=254.939 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2508 ttl=115 time=247.348 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2509 ttl=115 time=263.706 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2510 ttl=115 time=246.666 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2511 ttl=115 time=245.548 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2512 ttl=115 time=243.927 ms

使用VPN后效果

64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2834 ttl=115 time=40.660 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2835 ttl=115 time=41.702 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2836 ttl=115 time=41.329 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2837 ttl=115 time=143.046 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2838 ttl=115 time=42.002 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2839 ttl=115 time=41.551 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2840 ttl=115 time=42.558 ms

效果还是相当明显地,使用前平均Ping 250ms 使用后平均Ping 40ms !!!

二.架设VPN

1.安装 ppp pptpd iptables

ppp 数据链路层协议

pptpd VPN服务类型之一

iptables 防火墙,用来消息转发

$ sudo yum install ppp pptpd iptables

安装后版本信息

$ lsb_release -a
LSB Version:	:base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID:	CentOS
Description:	CentOS release 6.6 (Final)
Release:	6.6
Codename:	Final
$ pptpd --version
pptpd v1.4.0
$ iptables --version
iptables v1.4.7

2.配置 ppp DNS信息

a.编辑 options.pptpd 配置文件

$ sudo vim /etc/ppp/options.pptpd

b.找到66和67行进行修改

#ms-dns 10.0.0.1
#ms-dns 10.0.0.2

c.配置后结果如下:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

3.配置 ppp VPN账号信息

a.编辑 chap-secrets 配置文件,这个文件默认只有两行注释,在注释下配置VPN账号信息

$ sudo vim /etc/ppp/chap-secrets

b.设置规则为 VPN账号 服务类型 VPN密码 IP,若IP为*则代表所有IP都可以使用该账号密码,配置后结果如下:

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
wangjijun   pptpd   wangjijun       *
本例中账号密码都为 wangjijun

4.配置 pptpd

a.编辑 options.pptpd 配置文件

$ sudo vim /etc/pptpd.conf

b.修改如下内容,其实就是将注释配置项取消注释即可,这里配置地址很是纠结,其实个人理解为DHCP,跟服务器实际网卡无任何关系!

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

5.配置内核支持转发

a.编辑 sysctl.conf 配置文件

$ sudo vim /etc/sysctl.conf

b.找到第7行进行修改

net.ipv4.ip_forward = 0

c,配置后结果如下:

net.ipv4.ip_forward = 1

d.重新加载内核配置项

$ sudo sysctl -p

6.配置 iptables

a.首次运行 iptables

查看iptabls运行状态

$ sudo service iptables status
iptables: Firewall is not running.

有一个很有意思的现象,若首次启动 iptables ,使用如下 start 命令是无法启动的!

$ sudo service iptables start

但可以通过查看配置规则命令启动,不知道是不是我理解的有问题!如果你知道请指教,谢谢!

$ sudo iptables -L -n

清空防火墙配置

$ sudo iptables -P INPUT ACCEPT #改成 ACCEPT 标示接收一切请求
$ sudo iptables -F #清空默认所有规则
$ sudo iptables -X #清空自定义所有规则
$ sudo iptables -Z #计数器置0

配置规则

$ sudo iptables -A INPUT -i lo -j ACCEPT #允许127.0.0.1访问本地服务
$ sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT #允许访问外部服务
$ sudo iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT #允许 ping
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开启 ssh 端口

若需要配置其他端口,比如 80 3306 8080 参考 ssh 端口配置方式

b.已配置过 iptables

设置转发策略,由于阿里云是双网卡,内网eth0,外网eth1,所以这块特别容易误写为eth0

$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -jMASQUERADE

c.设置VPN端口策略

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

d.保存 iptabls 选项并重启 iptables

$ sudo service iptables save

7.收尾工作

$ sudo service iptables restart #重新启动 iptables
$ sudo service pptpd restart #重新启动 pptpd
$ sudo chkconfig iptables on #开机启动 iptables
$ sudo chkconfig pptpd on #开机启动 pptpd
$ sudo iptables -P INPUT DROP #加载防火墙策略

感谢以下作者

[教程]阿里云服务器配置VPN详解

阿里云centos配置VPN(PPTPD服务)

已解决,结帖Re阿里云Centos6.3搭了VPN内网通,但无法访问外网,折腾3天。

阿里云Centos配置iptables防火墙

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。