Linux下使用openvpn连接hack the box的VPN失败的解决方案
背景
今天创建了一台Ubuntu 20.04 LTS的虚拟机,当我用它连接hack the box的VPN时,出现了这个错误:Options error: Unrecognized option or missing or extra parameter(s) in lab:12: data-ciphers-fallback (2.4.7)
定位问题
我在Google上花了大量精力,找了很多资料,但都文不对症。
后来发现,在docker下的某个container里可以成功运行,但宿主机就不能运行。
于是我对比了两个openvpn命令的版本后,终于找到了原因:宿主机的openvpn版本太低。
解决方案1: apt更新openvpn
首先,我尝试用apt
来进行更新:
apt install --only-upgrade openvpn
但结果却返回:当前已经是最新的版本了。
Reading package lists... Done
Building dependency tree
Reading state information... Done
openvpn is already the newest version (2.4.7-1ubuntu2.20.04.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
因此,只能手工编译最新的openvpn
了。
解决方案2: 手工编译
第一步,卸载现有的openvpn:
apt remove openvpn
第二步,下载最新版openvpn的源码:
wget https://swupdate.openvpn.org/community/releases/openvpn-2.5.7.zip
unzip openvpn-2.5.7.zip
cd openvpn-2.5.7
第三步,编译。
在编译之前,确保安装了gcc
:
apt install gcc
然后执行./configure
./configure
在这一步,很有可能会提示openssl版本过低,那么就需要重新编译openssl,可以参考:Linux下手工更新openssl至最新版本
在这一步,也很有可能会提示:OpenVPN configure: error: lzo enabled but missing
错误,此时需要执行以下命令:
sudo apt-get install libssl-dev liblzo2-dev libpam0g-dev
当配置完成后,会看到这样的信息:checking that generated files are newer than configure... done
。
最后一步,编译并且安装:
make
make install
完成!