Chinaunix首页 | 论坛 | 博客
  • 博客访问: 258833
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 277
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-09 10:57
文章分类

全部博文(52)

文章存档

2016年(52)

我的朋友

分类: 网络与安全

2016-12-16 16:11:56

    

摘要:比来公司的vpn速度非常低下,两个办公地址传数据的时间,每秒仅为10k摆布,如果往失落vpn减稀/解稀的功效,却是能够晋升面,也便是能到20k,偶然倏忽迸发,也只是到50k,但同时其他的工]

   最近公司的vpn速率很是低下,两个办公地点传数据的时候,每秒仅为10k左右,若是去掉vpn加密/解密的功能,倒是可以提升点,也就是能到20k,有时突然爆发,也只是到50k,但同时其他的工作做不了,而且同时互ping的话,ping值高达10000多毫秒!

    百思不得其解下,就上网查了下,发现openvpn其性能问题,也找了下相关openvpn性能的优化资料,但是都解决不了我的问题,有的还实现不了,后来我突然想起,我公司的曾经一位大牛写过一篇关于openvpn的文章,里面提到过用autossh承载OpenVPN流量的方法,于是就按照他的做法,用autossh神器来承载vpn流量。但给力的现象出现了,我做好后,然后做速率的测试,发现两端互传数据达到每秒90k左右,而且ping值也在5-6百期间,真爆发了!!!

不过博主欢喜下,也不忘各位广大同胞哦,由于我公司大牛的博文都是写在外国的论坛上,所以不好找,因此我就转载了下,为国内多出现些精华文章做些贡献,好了就不自夸了,现将文章奉献出:


网络现状如下:

 图片请看附件-------------------

1. 一端有固定的IP,另一端是ADSL拨号上网,没有固定IP

2. 路由器不带有VPN功能,或者说不利用路由器的VPN功能。

使用工具:

大名鼎鼎的 << OpenVPN >>

在两端的局域网,分别有两个服务器,用于安装OpenVPN。左侧:10.0.0.5,   右侧:192.168.111.205

路由器配置:

首先,我们需要在路由做一些设置,通常路由器都支持静态路由表的功能,设置如下:

 图片请看附件-------------------

先不用管 192.168.110.0/24 这个网段,这是预留给PPTP拨号用户的IP段。

通过设置路由器的静态路由表,让左侧子网用户访问192.168.111.0/24这个网段的时候,IP包Forward到安装了OpenVPN的10.0.0.5这台服务器。

让右侧的用户访问10.0.0.0/8这个网段的时候,IP包Forward到192.168.111.205这台安装了OpenVPN的服务器。
好,基本的路由规则现在设置完成,剩下的就是OpenVPN的配置了。 

不知道什么原因,ADSL的openvpn数据包会莫名奇妙的被干扰,过一段时间后就会被强制降速,这时候又需要autossh这个利器了。 (北京联通ADSL)

在右端client上建立1194端口的SSH隧道:

#cat /etc/rc.local
/usr/local/bin/autossh -M 20010 -f -N -c blowfish -m hmac-md5-96 -L 1194:localhost:1194 root@服务器IP -p 22
将1194端口用ssh tunnel 互通


以下为最简单的openvpn配置方法:

STEP 1. 生成静态key

openvpn --genkey --secret static.key
将这个static.key 分别复制到两端的 /etc/openvpn/目录下

注意:可以选择openvpn不加密,而让ssh tunnel完成加密,如同本文下面描述,不过为了完整性,还是配置了 secret参数。读者要知道此参数实际并没有用处。


STEP 2. 配置文件

右端ADSL, openvpn server

#cat /etc/openvpn/server.conf
local 127.0.0.1 
dev tun
ifconfig 172.8.8.2 172.8.8.1 
proto tcp-server 
secret static.key 
cipher none       // 关闭加密 
auth none         // 关闭MAC 
persist-key 
persist-tun
user nobody
group nobody
keepalive 10 120
comp-lzo
script-security 2
up "up.sh"              // 这里up,down两个脚本,用来配置路由
down "down.sh"          //



#cat /etc/openvpn/up.sh
#!/bin/sh
ip route add to 10.0.0.1/8 via 172.8.8.2 dev tun0


#cat /etc/openvpn/down.sh
#!/bin/sh
ip route delete to 10.0.0.1/8 via 172.8.8.2 dev tun0

右端 openvpn client


#cat /etc/openvpn/client.conf
dev tun
remote 127.0.0.1  1194       // 只需绑定127.0.0.1:1194
ifconfig 172.8.8.1 172.8.8.2
proto tcp-client
secret static.key
cipher none                // 关闭加密
auth none                // 关闭MAC
persist-key
persist-tun
user nobody
group nobody
keepalive 10 120
comp-lzo
up "up.sh"             // 这里up,down两个脚本,用来配置路由
down "down.sh"         //

#cat /etc/openvpn/up.sh
#!/bin/sh
ip route add to 192.168.110.0/24 via 172.8.8.1 dev tun0
ip route add to 192.168.111.0/24 via 172.8.8.1 dev tun0

#cat /etc/openvpn/down.sh
#!/bin/sh
ip route delete to 192.168.110.0/24 via 172.8.8.1 dev tun0
ip route delete to 192.168.111.0/24 via 172.8.8.1 dev tun0

up down脚本记得chmod +x

注:通过传统方法配置的OpenVPN,虽然很适用,但在性能上要差的多。但若通过autossh承载openvpn流量,发现速率提升了好几倍,这比网上的其他OpenVPN性能提升要来的简单,并高效!

阅读(6938) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~