专栏名称: 运维帮
互联网技术分享平台,分享的力量。帮主一直坚信技术可以改变世界,从毕业到现在干了15年运维,有许多话要和你说。
目录
相关文章推荐
运维  ·  再见,CDN 巨头:Akamai 宣布 ... ·  3 天前  
51好读  ›  专栏  ›  运维帮

一个多线程的OpenVPN客户端frivpn

运维帮  · 公众号  · 运维  · 2018-06-05 08:45

正文

官网:https://github.com/znuh/frivpn


随着树莓派Pis, ODROIDs和APUs 等便宜设备变得无处不在,他们经常被用做互联网的VPN网关。OpenVPN无法使用这些设备的全部流量,因为OpenVPN是单线程在运行,并且缺乏硬件加速的AES加密技术,所以经常会把一个CPU跑满。frivpn是一个多线程的、可以在多个(所有)CPU核心上运行的程序,从而实现了最大化的VPN带宽和吞吐量。

下表是一些设备上的数据对比:

Device OpenVPN frivpn Comment
APU.1D ~30 Mbit/s ~60 Mbit/s DualCore 1GHz AMD G series T40E
ODROID XU4 ~24 Mbit/s ~80 Mbit/s QuadCore 2GHz Cortex-A15
Raspberry Pi 3 ~20 Mbit/s ~?? Mbit/s QuadCore 1.2GHz Cortex-A53
Raspberry Pi 2 ~15 Mbit/s ~?? Mbit/s QuadCore 900MHz Cortex-A7

软件包安装

ArchLinux

# yaourt -S frivpn-git


源代码安装


安装依赖包


Debian (stretch)

# apt install build-essential cmake lua5.2 lua5.2-dev lua-posix lua-luaossl \
              lua-cqueues lua-socket libssl-dev liblzo2-dev


Ubuntu 17.10 (artful)

# apt install build-essential cmake lua liblua5.2-dev lua-posix lua-luaossl \
              lua-cqueues libssl-dev liblzo2-dev


ArchLinux

# yaourt -S cmake lua lua-posix lua-luaossl lua-cqueues openssl lzo


编译

$ git clone https://github.com/znuh/frivpn.git
$ mkdir frivpn/build
$ cd frivpn/build
$ cmake ..
$ make


运行


frivpn客户端需要一个配置文件作为第一个参数,有关配置参考configs目录的例子。

$ ./frivpn_client.lua configs/ipredatorTroubleshooting & Caveats


常见问题和注意事项


虽然frivpn通常与任何OpenVPN服务器都兼容,但它(当前)要求以下列方式配置服务器:

  1. TCP协议(截至目前不支持UDP)

  2. 服务器证书,但没有客户端证书

  3. 用户名和密码验证

  4. 启用tls-auth

  5. 启用comp-lzo

  6. 密码AES-256-CBC

  7. 验证SHA1


如果你发现一个不支持frivpn的OpenVPN兼容服务?请在网站提交issue,让我们知道!


点击「 阅读原文 」直达官网




运维帮提供购买云主机大优惠

主流云厂商都已和运维帮达成战略合作,







请到「今天看啥」查看全文