blog/source/_posts/2024/10/safeline-waf-tengine.md

55 lines
2.9 KiB
Markdown
Raw Normal View History

2024-11-16 11:34:10 +08:00
---
title: 解决长亭雷池WAF tengine容器 无限重启的问题
tags:
- linux
- Safeline WAF
- IPv6
categories:
- 学习笔记
index_img: /img/2024/safeline-waf-tengine/CF752E194B1FF5AA96EC2CFD9A59C18B.webp
banner_img: /img/2024/safeline-waf-tengine/CF752E194B1FF5AA96EC2CFD9A59C18B.webp
permalink: /articles/2024/safeline-waf-tengine/index.html
date: 2024-10-07 10:00:55
---
最近在折腾虚拟机的时候,把安装了雷池WAF的虚拟机重启了一下,结果重启后发现套了雷池网站全部502了
根据之前折腾 Harbor 的经验,这大概率是哪个容器启动不正常了,看了一下,果然,tengine容器在不断的重启,同样根据之前折腾 Harbor 的经验,这种情况手动把容器停止然后开启就行,如果不行就把所有的容器一起重启一下一般就好了,但是这次没有成功,做完后 tengine容器 还是在不断重启
于是我去雷池文档里搜了一下,找到了一个[解决方案](https://docs.waf-ce.chaitin.cn/zh/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5),下面是原文:
*问题表现:重启或升级后编辑任何站点配置都报错,后台 tengine 一直在重启。*
*一般原因是 tengine 配置在当前设备环境上不合法,导致 tengine 无法以原配置启动,例如重启过程中网站端口被其他进程所占用、网站 dns 配置异常导致解析不到 IP 等。*
*解决方案:可以通过查看 tengine 容器的日志,排查问题,也可以使用安装目录下的 reset_tengine.sh 脚本重置 tengine 容器配置。*
```
# 执行时间根据网站数量和配置情况而定, 请耐心等待
cd /data/safeline && bash reset_tengine.sh
```
*执行成功后会有如下输出,此时可以尝试重新编辑站点配置,观察是否正常。*
```
[SafeLine] 是否重新生成 tengine 的所有配置 (Y/n)
重新生成 tengine 配置完成
```
### 老阴逼
然而按照官方文档的说明执行后并无卵用,等了好久都不见成功,于是去看了 tengine 容器的日志,发现了这一行:
```log
nginx: [emerg] invalid IPv6 address in resolver "[fe80::1%eth0]" in /etc/nginx/nginx.conf:132
```
里面有一个熟悉的东西`fe80::1%eth0`,安装雷池的时候就报过提醒,这种格式的 Nameserver 配置不合法,我也改了,不过雷池安装脚本也没有提醒这玩意重启之后会重置为默认值
**解决方案**:
1. 安装 `resolvconf`
```shell
sudo apt-get install resolvconf
```
1. 创建一个包含所需 DNS 服务器的头文件,例如:
```shell
sudo sh -c 'echo "nameserver 223.5.5.5" > /etc/resolvconf/resolv.conf.d/head'
sudo sh -c 'echo "nameserver 223.6.6.6" >> /etc/resolvconf/resolv.conf.d/head'
```
1. 更新 `/etc/resolv.conf`
```shell
sudo resolvconf -u
```
### 参考资料
[常见问题排查 | 雷池 SafeLine](https://docs.waf-ce.chaitin.cn/zh/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5)