登录
  • 人们都希望被别人需要 却往往事与愿违
  • 只有偏执狂才能生存!@Andy Grove (英特尔创始人之一, 前任 CEO)

SoftEther VPN Server 100% CPU 高负载解决方案

IT Benny 小土豆 16237 次浏览 1136 字 9 个评论
这篇文章在 2016 年 08 月 16 日 19:28:49 更新了哦~

 


自从搭建好 UDP 53 OpenVPN 服务器之后,一直发现一个很奇怪的问题:

  • CPU 满载,vpnserver 程序占用接近 100% 的 CPU
  • 客户端的 Bytes in 会以 1Mbps 的速度涨流量(服务器出网 1Mbps)
  • 重启 vpnserver,情况可能会缓解(大部分情况下是缓解了),也可能不会。
  • eth0 的 RX(下载)、TX(上传)存在大量流量,即使我并没使用服务器

我一直以为是 SoftEther VPN Server 设计上的 bug,更新了最新版本的也依旧存在;开始考虑到 OpenVPN 性能问题,好像也没有这么严重的…

直到今天实在忍不了,问了万能的 Google,看了官方论坛的讨论、troubleshooting

最后,在一个歪果仁的博客中找到了这么一句话

DO NOT enable both local bridge and SecureNAT at the same time. Packets will loop infinitly and make your server 100% CPU usage.

同时在官网的 TroubleShooting 中的 11.1.6、11.1.7 得到了 High CPU load 的解释,

3.7.4 也有 Virtual NAT 的使用要点

所以问题就是,丫的别把本地桥和 SecureNAT 一起开启了。 :!: 客户端程序的记录里一直以 1Mbps 的带宽涨流量、ifconfig 的网卡有流量计数也同样得到了解释。 :roll:

删了本地桥就好了。就是这么简单的办法...

原先错误的教程《SoftEther VPN Server 安装手记 + 福利》已经修改了,对某些读者可能造成的困惑或者是损失,深表歉意。

注:本地桥性能上要略好于 SecureNAT

在没找到真正原因之前,我甚至写了个脚本来监测 15 分钟平均负载来重启 vpn 服务,简直啦!不能浪费,贴出来,或许以后会用到呢!

  1. #!/bin/bash
  2. #15m average load
  3. aload=0
  4. aload=`uptime | awk '{print $11}'`
  5. echo 15m load is $aload
  6. if [ `expr 1 \> $aload` -eq 0 ]
  7. then
  8. echo !!!!!! >> /home/vpnload.log
  9. echo `date` high load,restarting now >> /home/vpnload.log
  10. /root/vpnserver/vpnserver stop >> /home/vpnload.log
  11. /root/vpnserver/vpnserver start >> /home/vpnload.log
  12. echo !!!!!! >> /home/vpnload.log
  13. else
  14. echo `date` 15m average load is $aload, keep it up
  15. fi

文章版权归原作者所有丨本站默认采用 CC-BY-NC-SA 4.0 协议进行授权 |
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/highload-softether.html
喜欢 (12)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(9) 个小伙伴在吐槽
  1. 保存数据包日志会给 cpu 和硬盘带来很大的负担(默认安装是开启的) ,所以我把管理 HUA-> 日志保持设置里的安全日志和数据包日志都去掉打勾,以观后效
    光辉岁月 2017-11-28 21:34 回复
    • 是的,没错,后来硬盘都满了……
      Benny 小土豆 2017-11-28 22:33 回复
  2. 哈哈,今天才看到你的文章,我也是上个月才租的 vps 的(用来 ssr 的),请问豆大,vultr 的 vps 会不会被禁 53 端口?我在一些网站上看说国外的 vps 无法用来免流,如果可以的话,我就不选用阿里的学生机了,毕竟才 50g 流量,感觉太不够用了 233333333 :grin: 签到成功!签到时间:2017-11-27 23:23:05,每日打卡,生活更精彩哦~
    鸡蛋君 2017-11-27 23:29 回复
    • vultr 不禁 53。根据官方文档的说明
      We block several ports that are commonly abused for DDOS attacks. This includes TCP and UDP ports 17, 19, 1900. These blocks are permanent, and cannot be removed. Depending on your account, outbound 53413 UDP and SMTP (port 25) may also be blocked
      Benny 小土豆 2017-11-28 09:10 回复
      • 豆大,今天用你教程终于搭成功了,寝室网不是 web 认证,明天去教室试试,可惜没有看仔细,还是把本地网桥打开了 2333,请问在哪里能把它关了啊 5555
        鸡蛋君 2017-11-29 00:39 回复
        • 删掉就关了~
          Benny 小土豆 2017-11-29 09:29
      • 哈哈 懂了,不过没用了 2333,学校的开放 wifi 不登录的情况下只能上那几个网页,走不了流量
        鸡蛋君 2017-11-30 17:43 回复
        • 是不是连接后用 netstat -tunlp 查看然后用 kill 命令关掉 VPNserver 的进程?本地桥就关掉了?
          酷乐猫 2019-05-21 21:23
        • 不是的哦,要改配置的,用图形和命令行都可以关
          Benny 小土豆 2019-05-22 12:55
您直接访问了本站! 莫非您记住了我的域名. 厉害~ 我倍感荣幸啊 嘿嘿