openvpn 网络速率优化,解决客户端网络慢的问题

in linux with 0 comment

公司这边业务需要,在公网服务器部署了一台openvpn 服务器,之前一直没留意,也没接到反馈,最近频繁反馈网络很卡,我的服务端是部署在CentOS6上面的,独立带宽为100Mb。客户端也是linux客户端。每次出现网络卡的时候,这边检查带宽大概就跑到10M-20M,服务端的cpu毫无压力,负载也很低,带宽确一直跑不上去。各种百度,谷歌,终于发现了一个帖子,提到了类似情况的解决办法。

以下是我原来的服务端配置:

local 0.0.0.0
port 1194        #指定端口
proto tcp            #指定协议
dev tun             #采用路由隧道模式
ca ca.crt            #ca证书位置,相对路径,表示ca.crt和server.conf要在同一目录
cert server.crt      #服务端证书
key server.key       #服务端key
dh dh.pem             #dh密钥
server 10.8.0.0 255.255.255.0        #给客户端分配的地址池
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"     #客户端网关使用openvpn服务器网关
push "dhcp-option DNS 8.8.8.8"               #指定dns
push "dhcp-option DNS 114.114.114.114"
keepalive 10 300              #心跳检测,10秒检测一次,2分钟内没有回应则视为断线
tls-auth ta.key 0             #服务端值为0,客户端为1
cipher AES-256-CBC
comp-lzo            #传输数据压缩
persist-key
persist-tun
duplicate-cn
status openvpn-status.log
verb 3
log-append /var/log/openvpn/openvpn.log
client-config-dir /etc/openvpn/ccd

原客户端配置文件

[root@caiwuvpn ~]# cat /etc/openvpn/client.ovpn 
client
dev tun 
proto tcp
remote xxxx 1194 
resolv-retry infinite 
nobind
persist-key 
persist-tun
ca ca.crt
cert client.crt 
key client.key 
remote-cert-tls server
tls-auth ta.key 1
comp-lzo
verb 3
cipher AES-256-CBC
#auth-user-pass

解决方法

优化后的服务端配置文件server.conf

local 0.0.0.0
port 1194       
proto udp            #优化项,udp
dev tun             #采用路由隧道模式
ca ca.crt            #ca证书位置,相对路径,表示ca.crt和server.conf要在同一目录
cert server.crt      #服务端证书
key server.key       #服务端key
dh dh.pem             #dh密钥
server 10.8.0.0 255.255.255.0        
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"     #客户端网关使用openvpn服务器网关
push "dhcp-option DNS 223.5.5.5"               #指定dns
push "dhcp-option DNS 114.114.114.114"
keepalive 10 300              
tls-auth ta.key 0             #服务端值为0,客户端为1
cipher AES-256-CBC
#comp-lzo            #取消传输数据压缩
persist-key
persist-tun
duplicate-cn
status openvpn-status.log
verb 3
log-append /var/log/openvpn/openvpn.log
client-config-dir /etc/openvpn/ccd 
sndbuf 0    ##优化项
rcvbuf 0    ##优化项

客户端配置文件

[root@caiwuvpn ~]# cat /etc/openvpn/client.ovpn 
client
dev tun 
proto udp  #优化项
remote xxxx 1194 
resolv-retry infinite 
nobind
persist-key 
persist-tun
ca ca.crt
cert client.crt 
key client.key 
remote-cert-tls server
tls-auth ta.key 1
#comp-lzo   #取消数据传输压缩,减小服务器压力
verb 3
cipher AES-256-CBC
sndbuf 0  #新增优化项
rcvbuf 0   #新增优化项

文章参考:
https://qastack.cn/server/686286/very-low-tcp-openvpn-throughput-100mbit-port-low-cpu-utilization ##此篇比较详细
https://www.cnbeining.com/2015/01/why-openvpn-so-slow-historical-version/

Responses