hwdsl2 / setup-ipsec-vpn

Scripts to build your own IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2
Other
25.41k stars 6.34k forks source link

编译报错 #1237

Closed gpsim closed 2 years ago

gpsim commented 2 years ago

任务列表

问题描述 安装过程报错

重现步骤 重现该 bug 的步骤: 安装过程报错

期待的正确结果 希望调整脚本,对系统的兼容性更好

日志 检查日志及 VPN 状态,并添加错误日志以帮助解释该问题(如果适用)。

服务器信息(请填写以下信息)

客户端信息(请填写以下信息)

其它信息

+ wget -t 3 -T 30 -q -O /tmp/vpn.IZO9Y/vpn.sh https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup_centos.sh
## VPN credentials not set by user. Generating random PSK and password...
## VPN setup in progress... Please be patient.
## Installing packages required for setup...
+ yum -y -q install wget bind-utils openssl tar iptables iproute gawk grep sed net-tools
## Trying to auto discover IP of this server...
## Adding the EPEL repository...
+ yum -y -q install epel-release
## Installing packages required for the VPN...
+ yum -y -q install nss-devel nspr-devel pkgconfig pam-devel libcap-ng-devel libselinux-devel curl-devel nss-tools flex bison gcc make util-linux ppp
+ yum --enablerepo=epel -y -q install xl2tpd
+ yum '--enablerepo=*server-*optional*' '--enablerepo=*releases-optional*' -y -q install systemd-devel libevent-devel fipscheck-devel iptables-services
## Installing Fail2Ban to protect SSH...
+ yum --enablerepo=epel -y -q install fail2ban
## Downloading helper scripts...
+ ikev2.sh addvpnuser.sh delvpnuser.sh 
## Downloading Libreswan...
+ wget -t 3 -T 30 -q -O libreswan-4.7.tar.gz https://github.com/libreswan/libreswan/archive/v4.7.tar.gz
## Compiling and installing Libreswan, please wait...
+ make -j2 -s base
/opt/src/libreswan-4.7/lib/libswan/addr_lookup.c: In function ‘resolve_defaultroute_one’:
/opt/src/libreswan-4.7/lib/libswan/addr_lookup.c:471:9: error: ‘RTA_PREF’ undeclared (first use in this function)
    case RTA_PREF:
         ^
/opt/src/libreswan-4.7/lib/libswan/addr_lookup.c:471:9: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [addr_lookup.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [base] Error 2
make[1]: *** [recursive-base] Error 2
make: *** [recursive-base] Error 2
Error: Libreswan 4.7 failed to build.
hwdsl2 commented 2 years ago

@gpsim 你好!这个很可能是 Aliyun CentOS 7 特有的问题,因为 CentOS 7 系统之前在其它的提供商测试过多次,没有发现问题。

你的系统的内核版本是什么?可以用 uname -a 检查。请尝试 yum update 并重启,以升级到最新 Linux 内核版本,然后尝试重新安装 VPN。也可以尝试更换为 CentOS 自带的 Linux 内核,如果你的服务器使用自定义内核。另外请确保你的系统的日期和时间正确。

建议你换用比如 Ubuntu 或 Debian 系统安装。对于解决这个具体的编译错误,这里有一些参考信息(不是针对 Libreswan)[1]。

如果你有更多信息可以继续在这里回复。

[1] https://ml01.01.org/hyperkitty/list/ell@lists.01.org/thread/TOJ5XEY7X6WMOMJHX4KWI5LFEOX2QTBQ/

gpsim commented 2 years ago

系统内核是 Linux izj6c3eu9vdrjrl7h0tt5qz 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux, yum update 执行过 并重启,但是并没有解决问题。系统的日期事件正确的。
目前不太方便更换系统。有什么办法码? 我在issues 里面翻了一圈,找到一个类似的问题。https://github.com/hwdsl2/setup-ipsec-vpn/issues/1138

hwdsl2 commented 2 years ago

@gpsim 你的 CentOS 7 系统的内核版本较旧(2017年),应该是导致该问题的原因。解决方法为使用 yum update 更新到最新的内核并重启。目前 CentOS 7 最新内核版本为 3.10.0-1160.76.1.el7.x86_64。如果 yum update 不能更新内核,有可能是你的系统的 yum 配置有问题。你可以尝试手动安装 kernel-3.10.0-1160.76.1.el7.x86_64.rpm