CentOS7使用脚本统计特定端口流量

本文介绍了一种通过自编脚本实时统计特定端口流量的方法,并提供了详细的脚本实现步骤。该脚本利用iftop工具进行流量监控,通过一系列shell命令处理输出结果,最终将统计到的数据汇总并可以选择输出为直观的网页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在网上找了一圈,大多都是在讲如何实时查看端口流量,无法得出统计的具体值。遂自己编了一个脚本,现在分享给大家,供大家参考。

我们需要安装iftop,而nginx为可选安装项,取决于你是否想将其输出为直观的网页。

yum install iftop

接下来是脚本部分。

#!/bin/bash
cd /tmp
while true
do
cat /usr/share/nginx/html/index.html | cut -d M -f1 > portsum	#加载数据并释放存储空间
iftop -nNtP -s 60 2>/dev/null | grep [你想监听的端口号] | cut -d b -f4 | sed 's/ //g' | grep B | sed -e '/Cumulative/d' > port
cat port | sed -e '/KB/d' | sed -e '/MB/d' | cut -d B -f1 | awk '{sum+=$1};END {print sum/1000000}' >> portsum
cat port | grep KB | cut -d K -f1 | awk '{sum += $1};END {print sum/1000}' >> portsum
cat port | grep MB | cut -d M -f1 | awk '{sum += $1};END {print sum}' >> portsum
cat portsum | awk '{sum+=$1};END {print sum "MB"}' > /usr/share/nginx/html/index.html	#简单示范一下
done

如果你不想输出为html,将其改为任意文件即可。

我们在使用时,只需要将脚本存入任意文件,然后在/etc/rc.local中添加以下条目,重启即可。

nohup [脚本存放位置] &
### 回答1: 在CentOS 7上,设置防火墙端口通常需要root用户权限,因此需要输入系统内密码。这是因为设置防火墙端口需要更改系统级别的配置文件和服务,这些操作需要具有管理员权限的用户来执行。输入系统密码是一种安全机制,可以确保只有授权用户才能进行系统级别的更改和操作。 通过输入系统密码,CentOS 7可以验证用户的身份,并确保只有管理员才能进行修改防火墙端口的操作。这样可以防止未经授权的用户或恶意攻击者对系统进行任意更改,提高了系统的安全性。 要设置防火墙端口,可以使用“firewall-cmd”命令,该命令可以通过命令行界面或脚本执行。在执行命令时,会要求输入系统密码,以确认当前用户是具有管理员权限的用户。只有在输入正确的密码后,系统才会执行相应的命令并修改防火墙配置。 总而言之,设置防火墙端口CentOS 7上一般需要输入系统密码,以确保操作的合法性和管理员权限。这是保障系统安全的重要一环。 ### 回答2: 在CentOS 7中,如果您以root用户身份运行命令来设置防火墙端口,则不需要再输入系统内密码。root用户具有超级用户权限,可以执行系统级别的操作。此外,CentOS 7还提供了sudo命令,允许其他用户以root权限运行特定命令,但需要输入其自己的密码。因此,如果您是以普通用户身份使用sudo命令来设置防火墙端口,则需要输入系统内普通用户的密码。 一般来说,使用CentOS 7设置防火墙端口的一般流程如下: 1. 用root用户登录系统或使用sudo命令切换到root权限。 2. 打开终端,并运行以下命令来安装必要的工具(如果尚未安装): ``` yum install firewalld ``` 3. 启动firewalld服务(如果尚未启动): ``` systemctl start firewalld ``` 4. 检查防火墙状态: ``` firewall-cmd --state ``` 5. 添加要打开的端口: ``` firewall-cmd --zone=public --add-port=端口号/协议 --permanent ``` 例如,要打开80端口的TCP流量,命令如下: ``` firewall-cmd --zone=public --add-port=80/tcp --permanent ``` 如果您设置了其他zone(如dmz、work、home等),请相应地更改--zone参数。 6. 重新加载防火墙规则以使更改生效: ``` firewall-cmd --reload ``` 此时,防火墙将允许通过选择的端口传输流量。 请注意,这仅适用于默认配置。如果有其它安全策略,如SELinux或其他额外的安全层,可能还需要进行其他配置并提供相关权限密码。 ### 回答3: 在CentOS 7中,设置防火墙端口时,通常不需要输入系统内密码。防火墙规则的配置分为两部分:添加规则到防火墙、保存规则到永久配置。 当通过命令行(如iptables)或使用Firewalld设置防火墙规则时,不需要输入系统密码。这是因为默认情况下,CentOS 7允许普通用户对防火墙规则进行修改。 然而,若通过system-config-firewall-tui等管理工具设置防火墙规则,可能需要在Ubuntu系统中输入管理员密码(如sudo密码)来进行授权。这是因为这些工具涉及到对系统配置文件的修改,需要管理员权限。 请注意,如果您未使用管理员权限运行这些命令或工具,则可能无法成功设置防火墙规则。因此,在执行任何更改或操作之前,请确保您具备适当的权限。 总之,在CentOS 7中,通过命令行或Firewalld设置防火墙端口规则时,通常不需要输入系统密码。但使用一些特定的图形界面工具进行设置可能需要输入管理员密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值