Centos7单ip流量控制
时间: 2025-07-04 14:50:08 浏览: 11
### CentOS 7 中基于单个 IP 的流量控制配置
#### 使用 `iptables` 实现单 IP 流量控制
在 CentOS 7 系统中,可以通过 `iptables` 来实现针对特定 IP 地址的访问控制。以下是具体的配置方法:
1. **安装并启动 `iptables`**
如果尚未安装 `iptables` 及其服务组件,则需要先执行以下命令完成安装和启动操作:
```bash
yum -y install iptables iptables-services
systemctl start iptables.service
```
2. **设置规则以阻止或允许来自某个 IP 的流量**
假设目标是阻止来自 IP 地址 `192.168.1.100` 的所有入站流量,可以使用如下命令创建一条拒绝规则:
```bash
iptables -A INPUT -s 192.168.1.100 -j DROP
```
若要允许该 IP 访问某些端口(例如 HTTP/HTTPS),则可添加例外规则:
```bash
iptables -I INPUT -p tcp --dport 80 -s 192.168.1.100 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -s 192.168.1.100 -j ACCEPT
```
3. **保存规则以便重启后生效**
执行以下命令保存当前的 `iptables` 配置:
```bash
service iptables save
```
以上过程展示了如何利用 `iptables` 对单一 IP 进行基本的流量过滤[^1]。
---
#### 使用 `tc` (Traffic Control) 实现更精细的带宽管理
如果需求不仅限于简单的阻断或放行,而是希望进一步限制某 IP 的上传下载速度,则需要用到 Linux 提供的强大工具——`tc`。
1. **加载必要的模块**
开始之前需确认内核已支持 QoS 功能,并加载相关模块:
```bash
modprobe sch_htb
```
2. **定义根队列及其子类**
下面的例子演示了如何为接口 eth0 设置总出口带宽上限为 1Mbps 并分配两个优先级不同的子类别用于不同类型的流量处理。
```bash
tc qdisc add dev eth0 root handle 1: htb default 12
# 创建父节点,默认速率设定为 1Mbit/s
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
# 子分类之一:高优级数据包(如 VoIP),最大可用速率为整个链路容量的一半即 512Kbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 0
# 子分类之二:常规互联网浏览等低敏感度业务,剩余部分全部留给它
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 488kbit ceil 512kbit prio 1
```
3. **绑定具体源地址到相应类别下**
接下来把指定来源 IP 映射至刚才建立好的某一等级里去。这里假设我们要约束的是那个先前提到过的主机 `192.168.1.100` ,将其归入较低级别的组别当中。
```bash
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src 192.168.1.100 flowid 1:11
```
这样就完成了对该设备上网行为的具体调控工作[^2]^。
---
### 总结
通过上述两种方式分别介绍了怎样借助 `iptables` 达成基础层面的安全防护目的以及运用高级别的 `tc` 技术手段达成精细化的服务质量调节效果。两者各有侧重,在实际部署过程中可根据具体情况灵活选用或者组合起来共同发挥作用。
阅读全文
相关推荐


















