1
清理log
sudo truncate -s 0 /opt/roceos/apps/asterisk/log/messages.log
- 查看磁盘空间和目录占用
查看各分区使用情况
df -h
查看根目录下各目录的占用(不跨文件系统)
du -xhd1 /
查看 /storage 下各目录占用
du -h --max-depth=1 /storage
查看 Docker 数据目录
du -h --max-depth=1 /storage/docker_data
查看 containerd 数据目录
du -h --max-depth=1 /storage/docker_data/containerd
查看最大的 containerd 快照目录
du -h --max-depth=1 /storage/docker_data/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots | sort -h | tail -n 10
查看 Docker 镜像、容器和卷占用
docker system df -v
- 定位 Asterisk 日志文件
查看 Asterisk 相关目录占用
du -h --max-depth=1 /opt/roceos/apps/asterisk
查看 Asterisk 日志目录占用
du -ah /opt/roceos/apps/asterisk/log | sort -h | tail -n 10
查看 messages.log 的大小和修改时间
ls -lh --time-style=long-iso /opt/roceos/apps/asterisk/log/messages.log
查看日志最后 30 行
tail -n 30 /opt/roceos/apps/asterisk/log/messages.log
清空日志文件
刚才实际执行过:
sudo truncate -s 0 /opt/roceos/apps/asterisk/log/messages.log
注意: 这会删除该文件中的全部历史日志内容,但保留文件本身,Asterisk 后续仍可继续写日志。清空前应确认不再需要旧日志作为故障排查证据。
3. 查看 Fail2Ban 状态
查看所有 jail
sudo fail2ban-client status
查看 Asterisk jail 的状态、失败计数和封禁 IP
sudo fail2ban-client status asterisk
查看 Asterisk jail 当前封禁的 IP
sudo fail2ban-client get asterisk banip
查看 Asterisk jail 使用的封禁动作
sudo fail2ban-client get asterisk actions
刚才还尝试过:
sudo fail2ban-client get asterisk port
当前版本返回 Invalid command,因此这条命令不能用于查询端口配置。
4. 查看 Asterisk 实际监听端口
sudo ss -lunp | grep asterisk
刚才的输出确认 Asterisk 正在监听:
0.0.0.0:5060
也就是 UDP 5060。
5. 查看 Fail2Ban 的防火墙规则
查看 Asterisk 封禁链及每个 IP 的规则计数
sudo iptables -L f2b-asterisk -n -v --line-numbers
查看 INPUT 链的规则及匹配计数
sudo iptables -L INPUT -n -v --line-numbers
这两条分别用于确认:
- f2b-asterisk 中有没有被封禁 IP 的 REJECT 规则。
- INPUT 链是否将指定端口的流量导入封禁链。
- 查看 Fail2Ban 配置
查看相关 jail 配置中的端口、日志路径和封禁动作
sudo grep -RniE '\s*[asterisk]|\s(port|logpath|banaction)\s=' /etc/fail2ban/jail.local /etc/fail2ban/jail.d/
查看 Asterisk jail 的完整配置
sudo cat /etc/fail2ban/jail.d/asterisk.local
原来的关键配置是:
[asterisk]
enabled = true
filter = asterisk
logpath = /opt/roceos/apps/asterisk/log/messages.log
maxretry = 5
findtime = 600
bantime = -1
action = iptables-multiport[name=asterisk, port="6060", protocol=udp]
其中:
- maxretry = 5:在规定时间内达到失败次数阈值后触发封禁。
- findtime = 600:统计窗口为 600 秒。
- bantime = -1:永久封禁,直到手动解封或状态被清理。
- port="6060":旧配置中的端口错误。
- 修正端口并重载配置
修改配置文件
sudo sed -i 's/port="6060"/port="5060"/' /etc/fail2ban/jail.d/asterisk.local
重载 Asterisk jail
sudo fail2ban-client reload asterisk
刚才重载返回 OK。
删除遗留的 6060 跳转规则
sudo iptables -D INPUT -p udp -m multiport --dports 6060 -j f2b-asterisk
执行后再次检查:
sudo iptables -L INPUT -n -v --line-numbers
最后一次检查结果显示,INPUT 链只剩下 UDP 5060 的封禁链入口规则。
最终需要记住的几条命令
如果以后又遇到 SIP 扫描或日志暴涨,通常先执行这几条就够了:
-
查看磁盘空间
df -h -
查看日志大小
ls -lh /opt/roceos/apps/asterisk/log/messages.log -
查看 Fail2Ban 状态
sudo fail2ban-client status asterisk -
查看封禁规则
sudo iptables -L f2b-asterisk -n -v --line-numbers -
查看端口入口规则
sudo iptables -L INPUT -n -v --line-numbers -
查看实际监听端口
sudo ss -lunp | grep asterisk
当前已确认的修复结果: Fail2Ban 的持久配置已改为 UDP 5060,jail 重载成功,旧的 UDP 6060 INPUT 跳转已删除。最后一次检查显示 INPUT 链只剩 5060 入口规则。
还没有最终确认的是:修改后封禁 IP 是否仍保留,以及清空日志后 messages.log 是否还会异常增长。

浙公网安备 33010602011771号