- 一个简单的命令行工具,用于监控服务器的网络流量,并提供交互式菜单进行流量查看和系统管理
- 仅本人因为AWS没有很明确的流量监控,所以自己写了一个,方便自用的目的,欢迎使用和贡献
使用以下命令一键安装此系统:
bash <(wget -qO- https://raw.githubusercontent.com/kk8bit/traffic-monitor-system/main/install.sh)
- 安装过程中需要root权限,请确保以sudo权限运行命令。
- 如果之前已经安装了此系统,建议先运行卸载脚本以确保安装环境干净:
sudo /usr/local/bin/uninstall.sh
安装完成后,你可以使用以下命令来调用流量监控菜单:
monitor
程序所显示的时间以服务器设置的时区为准,请确保你的服务器时区设置正确。如果你发现你的时间不正确,你可以使用以下命令来同步系统时间:
- 查看系统时区:
timedatectl
- 如果时区不正确,使用以下命令设置正确的时区:(这里以
Asia/Shanghai
为例):
sudo timedatectl set-timezone Asia/Shanghai
- 重启/重装本脚本(过往日志不会丢失)
- 查看当前流量 :显示当前服务器的进出站流量
- 查看小时流量统计 :查看过去一小时的流量统计数据
- 查看月度流量统计 :查看本月的流量统计数据
- 实时监控网络流量 :实时监控网络接口的流量
- 实时监控网络连接 :查看实时的网络连接和流量
- 启动监控服务 :启动流量监控服务
- 停止监控服务 :停止流量监控服务
- 重启监控服务 :重启流量监控服务
- 查看监控服务状态 :检查监控服务的运行状态
- 卸载流量监控系统 :卸载此系统
- 退出 :退出菜单
如果你想卸载此系统,可以在菜单中选择选项10,或者直接运行卸载脚本:
sudo /usr/local/bin/uninstall.sh
- 这段脚本需要以
root
权限运行,所以我们使用了sudo bash <<'EOF' - 该脚本假定
iptables
规则、systemd
服务、脚本文件和日志目录的位置是按照之前的安装脚本设置的 iptables
规则的删除可能需要手动干预,因为如果链不存在,删除操作会失败- 这个卸载脚本不包含任何错误检查或确认步骤,所以请确保你确实想卸载系统再执行
- 如果你的服务器上的配置有所不同(比如网络接口名称或文件路径),你可能需要相应地调整这些命令
sudo bash <<'EOF'
# 停止并禁用服务
systemctl stop monitor-traffic
systemctl disable monitor-traffic
# 删除systemd服务文件
rm /etc/systemd/system/monitor-traffic.service
# 删除自定义iptables规则
if iptables -L INPUT | grep -q ALL_TRAFFIC; then
iptables -D INPUT -j ALL_TRAFFIC
fi
if iptables -L OUTPUT | grep -q ALL_TRAFFIC; then
iptables -D OUTPUT -j ALL_TRAFFIC
fi
iptables -F ALL_TRAFFIC || echo "无法清空ALL_TRAFFIC链。"
iptables -X ALL_TRAFFIC || echo "无法删除ALL_TRAFFIC链。"
# 停止并禁用vnstat
systemctl stop vnstat
systemctl disable vnstat
# 删除安装的脚本
rm /usr/local/bin/monitor_traffic.sh
rm /usr/local/bin/menu.sh
rm /usr/local/bin/uninstall.sh
# 删除菜单的软链接
rm /usr/local/bin/monitor
# 删除日志目录
rm -r /var/log/traffic_monitor
echo "流量监控系统已成功卸载。"
EOF
- 此系统依赖于
iptables
、vnstat
、nload
和iftop
。这些工具必须在系统上可用 - 流量监控服务每小时记录一次数据,日志存储在
/var/log/traffic_monitor/traffic.log
- 确保你的服务器有足够的权限来执行
iptables
和systemd
相关命令 - 安装过程中会创建一个
monitor-traffic
的systemd服务,用于定时记录流量
此软件使用不可修改许可证(No Modification License)。你可以免费分发此软件,但不得对源代码进行任何修改
欢迎贡献!如果有任何问题或改进建议,请在GitHub上创建Issue或Pull Request